AWS Elastic Beanstalk アプリケーションをデプロイする際、ロードバランサーに独自のセキュリティグループを使用するにはどうすればよいですか?

最終更新日: 2020 年 10 月 8 日

AWS Elastic Beanstalk アプリケーション用に負荷分散された Auto Scaling の環境タイプを作成したいと考えています。また、ロードバランサーに独自のセキュリティグループを指定したいと考えています。

簡単な説明

Elastic Beanstalk は、ロードバランサー用のデフォルトセキュリティグループを作成します。ロードバランサーにアタッチする既存のセキュリティグループ ( ManagedSecurityGroup とも呼ばれる) がある場合、このデフォルトの動作をオーバーライドできます。Elastic Beanstalk にデフォルトのセキュリティグループを作成させないようにするには、アプリケーションデプロイパッケージ内の .ebextensions ディレクトリに 1 つ以上の設定ファイルを追加する必要があります。

重要: 次の手順は、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/ ディレクトリを作成します。

注意: 詳細については、設定ファイル (.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:elb:loadbalancer:
  ManagedSecurityGroup: "sg-123456"
  SecurityGroups: "sg-123456"

注: 上記の例では、 sg-123456 をセキュリティグループとマネージドセキュリティグループに置き換えます。上記の .ebextensions は YAML 形式です。YAML 形式を必ず検証してください。

6.    コードと新しい .ebextensions/ ディレクトリをともに、新しいアプリケーションバージョンとして Elastic Beanstalk 環境にデプロイします。

デプロイ後、セキュリティグループがロードバランサーにアタッチされます。環境およびロードバランサーが、デフォルトのロードバランサーセキュリティグループではなく、既存のセキュリティグループを正常に使用しているはずです。


この記事はお役に立ちましたか?


請求に関するサポートまたは技術サポートが必要ですか?