AWS Elastic Beanstalk アプリケーション用に、スケーラブルで負荷分散された環境を作成しようと考えています。また、ロードバランサーに独自のセキュリティグループを指定することも考えています。
簡単な説明
Elastic Beanstalk は、ロードバランサーのデフォルトのセキュリティグループを作成します。既存のセキュリティグループ (ManagedSecurityGroup) をロードバランサーにアタッチする場合は、デフォルトの動作をオーバーライドします。設定ファイルを .ebextensions/ ディレクトリに追加して、Elastic Beanstalk がデフォルトのセキュリティグループを作成しないようにします。このディレクトリはアプリケーションデプロイパッケージにあります。
重要: 以下の手順は、Application Load Balancer と Classic Load Balancer にのみ適用されます。Network Load Balancer には、関連付けられたセキュリティグループはありません。
解決策
.ebextensions を使用して、既存のセキュリティグループをロードバランサーにアタッチするよう Elastic Beanstalk サービスに指示します。次に、Elastic Beanstalk が作成したデフォルトのセキュリティグループを削除します。
1. Elastic Beanstalk で使用する既存のセキュリティグループがあることを確認します。または、Elastic Beanstalk 環境のロードバランサー用の新しいセキュリティグループを作成します。
2. セキュリティグループの ID を書き留めておきます。例えば、sg-123456 です。
3. ローカルのアプリケーションコードディレクトリに .ebextensions/ ディレクトリを作成します。
4. .ebextensions/ ディレクトリに、elbsg.config という名前のファイルを作成します。例:
~/workspace/my-app/├── .ebextensions
│ ├── elbsg.config
├── helloworld
注: 詳細については、「設定ファイル (.ebextensions) による高度な環境のカスタマイズ」を参照してください。
5. 現在の Elastic Beanstalk 環境のロードバランサータイプに基づいて、elbsg.config ファイルを更新します。
新しい環境を作成するか、Classic Load Balancer を使用して既存の環境を更新する場合は、SecurityGroups 設定を使用してデフォルトのセキュリティグループをオーバーライドします。例:
option\_settings: aws:elb:loadbalancer:
ManagedSecurityGroup: "sg-123456"
SecurityGroups: "sg-123456"
新しい環境を作成するか、Application Load Balancer を使用して既存の環境を更新する場合は、SecurityGroups 設定を使用してデフォルトのセキュリティグループをオーバーライドします。例:
option\_settings: aws:elbv2:loadbalancer:
ManagedSecurityGroup: "sg-123456"
SecurityGroups: "sg-123456"
注: 上記の例では、sg-123456 を自分のセキュリティグループとマネージドセキュリティグループ ID に置き換えます。前述の .ebextensions は YAML 形式です。YAML 形式を検証してください。
6. コードと新しい .ebextensions/ ディレクトリを一緒に、新しいアプリケーションバージョンとして Elastic Beanstalk 環境にデプロイします。
関連情報
Elastic Beanstalk 環境の設定
aws:elb:loadbalancer
aws:elbv2:loadbalancer