こんにちは。SCSKの石原です。
皆様、Elastic Beanstalk使っていますか?
アプリケーション環境を用意する際に、いい感じにインフラを抽象化してくれて便利ですよね。デフォルト値でもそれなりに動きますし、細かい設定もコンソールや設定ファイルにより定義できるので、痒い所に手が届くサービスかと思います。
ただ、今回変更するALBタイムアウト値はElastic Beanstalkのコンソールから設定することができません(2022年4月現在)。
Application Load Balancer の設定 - AWS Elastic Beanstalk
Application Load Balancer を使用して、アプリケーションレイヤートラフィックを HTTP パスに基づいて環境インスタンスの別のポートにルーティングします。
では、設定方法を解説していきます。
設定方法
今回はEbextensionsを利用してオプション設定をしていきます。
アプリケーションのソースコードが格納されているリポジトリに「.ebextensions」を作成して、その配下にオプション設定を記載したファイルを格納します。
設定ファイル (.ebextensions) による高度な環境のカスタマイズ - AWS Elastic Beanstalk
設定オプションを設定する設定ファイル(.ebextensions)を使用し、環境内の EC2 インスタンスをカスタマイズし、追加リソースを作成します。
ファイル名は任意です。今回は「alb-setting.config」として作成しました。このファイルの拡張子は「.config」としてください。
設定内容は下記の通りです。タイムアウト値は10分としています。
option_settings: - namespace: aws:elbv2:loadbalancer option_name: IdleTimeout value: 600
あとは、パイプラインがあれば自動デプロイしても良いですし、Elastic Beanstalkのコンソールから手動でデプロイしてもOKです。
補足
Classic Load Balancerを利用されている場合は下記の設定になります。ご注意ください。
option_settings: - namespace: aws:elb:policies option_name: ConnectionSettingIdleTimeout value: 600
おわりに
今回はALBのタイムアウト値を変更しましたが、様々なパラメータを変更することができます。
インフラ視点でも痒い所に手が届くかと思います。
すべての環境に対する汎用オプション - AWS Elastic Beanstalk
Elastic Beanstalk 環境でグローバルに利用可能なオプションを設定します。
どなたかの参考になれば幸いです。