Elastic Beanstalk 環境間のリンクの作成 - AWS Elastic Beanstalk

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Elastic Beanstalk 環境間のリンクの作成

アプリケーションが大きくなり、複雑化するにつれて、異なる開発性と運用のライフサイクルのコンポーネント別に分割することが必要になる場合があります。明確に定義されたインターフェイスを介して相互に対話する小規模なサービスを実行することで、各チームは独立して作業を進めることができ、デプロイのリスクを軽減できます。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 です。フロントエンドアプリケーションは環境変数と同様にこのプロパティを読み取ることができます。詳細については、「マニフェスト環境 (env.yaml)」を参照してください。

環境リンクを使用するには、環境マニフェストをアプリケーションソースに追加して 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="DOC-EXAMPLE-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