メニュー
AWS Elastic Beanstalk
開発者ガイド (API Version 2010-12-01)

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

アプリケーションが大きくなり、複雑化するにつれて、異なる開発性と運用のライフサイクルのコンポーネント別に分割することが必要になる場合があります。 これによって、それぞれのコンポーネントを個別に管理・スケーリングでき、さらなる俊敏性を享受できます。 この手法における課題の 1 つとして、コンポーネント間の接続情報を共有するための要件があります。 この課題は、AWS 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を使用する場合、CreateApplicationVersion を呼び出す際に process フラグを設定します。

$ 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