AWS Elastic Beanstalk
開発者ガイド

AWS Elastic Beanstalk 環境間のリンクを作成する

アプリケーションが大きくなり、複雑化するにつれて、異なる開発性と運用のライフサイクルのコンポーネント別に分割することが必要になる場合があります。明確に定義されたインターフェイスを介して相互に対話する小規模なサービスを実行することで、チームは独立して作業を進めることができ、デプロイのリスクを軽減できます。Elastic Beanstalk では、相互に依存するコンポーネント間で情報を共有するために環境をリンクできます。

注記

Elastic Beanstalk は現在、Multicontainer Docker を除くすべてプラットフォームの環境リンクをサポートしています。

環境リンクを使用すると、アプリケーションのコンポーネント環境間の接続を名前を付けたリファレンスとして指定できます。リンクを定義する環境を作成する場合、Elastic Beanstalk はリンクと同じ名前の環境変数を設定します。この変数の値は、ウェブサーバーあるいはワーカー環境といったその他のコンポーネントに接続するための使用できるエンドポイントです。

たとえば、アプリケーションが、フロントエンドによって収集された電子メールアドレスにウェルカムメールを送付するためにその電子メールアドレスとワーカーを収集するフロントエンドである場合、お手持ちのフロントエンドでワーカーへのリンクを作成すると、フロントエンドが自動的にワーカーのエンドポイント(キュー URL)を検出するようにできます。

アプリケーションソースのルートの env.yaml 名の YAML 形式のファイルで、ほかの環境へのリンクを環境マニフェストで定義します。次のマニフェストはワーカーという環境へのリンクを定義します。

~/workspace/my-app/frontend/env.yaml

AWSConfigurationTemplateVersion: 1.1.0.0 EnvironmentLinks: "WORKERQUEUE": "worker"

上記の環境マニフェストを含むアプリケーションバージョンで環境を作成すると、Elastic Beanstalk は、同じアプリケーションに属する worker という名前の環境を探します。その環境が存在する場合、Elastic Beanstalk は WORKERQUEUE という環境プロパティを作成します。WORKERQUEUE の値は、Amazon SQS キュー URL です。フロントエンドアプリケーションは環境変数と同様にこのプロパティを読み取ることができます。詳細については、「Elastic Beanstalk の保存された設定を使用する」を参照してください。

環境リンクを使用するには、マニフェスト環境をアプリケーションソースに追加して EB CLI、AWS CLI または SDK にアップロードします。AWS CLI または SDKを使用する場合、process を呼び出す際に CreateApplicationVersion フラグを設定します。

$ aws elasticbeanstalk create-application-version --process --application-name my-app --version-label frontend-v1 --source-bundle S3Bucket="my-bucket",S3Key="front-v1.zip"

このオプションは、アプリケーションバージョンを作成する際に、ソースバンドルの環境マニフェストと設定ファイルが Elastic Beanstalk によって有効化されていることを示します。プロジェクトディレクトリに環境マニフェストがある場合には、EB CLI はこのフラグを自動的に設定します。

いずれかのクライアントを使用して環境を通常通りに作成します。環境を終了する必要があるときは、リンクがある環境を最初に終了します。環境がその他の環境によってにリンクされている場合、Elastic Beanstalk はリンクされた環境の終了を防ぎます。この保護を無効にするには、ForceTerminate フラグを使用します。このパラメータは、AWS CLI で --force-terminate として利用できます。

$ aws elasticbeanstalk terminate-environment --force-terminate --environment-name worker