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

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

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

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

注記

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

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

例えば、アプリケーションが E メールアドレスを収集するフロントエンドと、フロントエンドによって収集された E メールアドレスにウェルカム E メールを送信するワーカーで構成されている場合、フロントエンドでワーカーへのリンクを作成し、フロントエンドでワーカーのエンドポイント (キュー URL) を自動的に検出させることができます。

環境マニフェスト 内の他の環境へのリンクを定義します。これは、アプリケーションソースのルートenv.yamlに YAML という名前のフォーマットされたファイルです。次のマニフェストはワーカーという環境へのリンクを定義します。

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

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

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

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