はじめに
こんにちは、Gakken LEAP のバックエンドエンジニアの mizuno です。
今回、EC2上でPayara Server上で動作していたSpring BootアプリケーションをECS上でSpring Boot単体として実行する移行作業を行いました。
移行の過程で、Payara側で管理されていた一部の設定をSpring Boot側に移す必要があり、application.yml
の設定追加や起動コマンドのオプション指定が必要でした。
同様の移行を検討している方の参考になるよう、設定変更のポイントを備忘録として記録します。
Payara から Spring Boot 単体実行で必要だった設定変更
PayaraからECSでのSpring Boot単体実行への移行で、以下の設定を移し替える必要がありました。
1. データベース接続プール設定
Payara側の設定: Initial and Minimum Pool Size
/ Maximum Pool Size
Spring Boot側の対応: application.yml
にHikariCP設定を追加
spring:
datasource:
hikari:
maximum-pool-size: 20 # データベース接続プールの最大接続数(デフォルト: 10)
minimum-idle: 10 # データベース接続プールの最小アイドル接続数(デフォルト: 10)
2. JVMヒープサイズ設定
Payara側の設定: JVMオプションでヒープサイズを管理
Spring Boot側の対応: 起動時にJVMオプションを指定
java -Xms5600m -Xmx5600m -jar app.jar
-
-Xms5600m
: JVM起動時の初期ヒープサイズを5.6GBに設定 -
-Xmx5600m
: JVMの最大ヒープサイズを5.6GBに設定
ヒープサイズはアプリケーションのメモリ使用量とサーバーの物理メモリに応じて調整してください。
一般的には、サーバーの物理メモリの70-80%程度を上限とするのが推奨されます。
まとめ
設定項目 | Payara | Spring Boot | 注意点 |
---|---|---|---|
DB接続プール | AdminConsole設定 | application.yml |
デフォルト値(10)では負荷時にパフォーマンス低下の可能性 |
ヒープサイズ | AdminConsole設定 | 起動時JVMオプション | 物理メモリの70-80%程度を上限とする |
Payara上で動作していたSpring Bootアプリケーションを単体で動かす際は、これらの設定を忘れずに移行することが重要です。
エンジニア募集中
Gakken LEAPは日々、教育のアップデートに取り組んでいます。
興味をお持ちいただいた方は、採用サイトをチェックしてみてください。