ElasticBeanstalkで管理されているALBのアイドルタイムアウト値を変更する

こんにちは。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 環境でグローバルに利用可能なオプションを設定します。

どなたかの参考になれば幸いです。

タイトルとURLをコピーしました