AWS Elastic Beanstalk 環境を、ある AWS アカウントから別の AWS アカウントに移行したいと考えています。
簡単な説明
AWS アカウント間で Elastic Beanstalk 環境を移行するには、保存された構成 を使用する必要があります。
保存された構成は、Elastic Beanstalk がある Amazon Simple Storage Service (Amazon S3) バケットにおいて、アプリケーションの名前がついたフォルダに保存されています。たとえば、us-east-1 の AWS リージョンにある、アカウント 01234567890 の my-app という名前のついたアプリケーションの場合であれば、保存された構成の保存場所は次のようになります。
s3://elasticbeanstalk-us-east-1-01234567890/resources/templates/my-app/
解決方法
次に示すステップでは、アカウント A は Elastic Beanstalk 環境があるアカウントです。アカウント B は、Elastic Beanstalk 環境の移行先となるアカウントです。
注: この例では、アカウント A とアカウント B の両方に Elastic Beanstalk 環境が既に作成されています。保存された設定は、環境を作成したときに Elastic Beanstalk によって作成されます。この環境はアカウント B の Amazon S3 バケットにアップロードされます。
アカウント A で保存された設定を作成する
1. アカウント Aで 保存された構成 を作成します。
2. 次に示す場所から、保存された設定をローカルマシンにダウンロードします。
s3://elasticbeanstalk-us-east-1-account-a-id/resources/templates/application-a-name/
注: ここでの保存された設定では、us-east-1 が、アカウント A 内の Elastic Beanstalk 環境が配置された AWS リージョンです。account-a-id は、アカウント A のアカウント ID です。application-a-name は、アカウント A にある Elastic Beanstalk アプリケーションのアプリケーション名です。
3. ダウンロードした構成ファイルでアカウントに関連するパラメータを変更し、ファイルを保存します。たとえば、キーペア名、サブネット ID、またはアプリケーション名を (application-b-nameなどに) 変更します。
保存された構成を使用し、アカウント B に Elastic Beanstalk 環境を作成する
1. アカウント B にログインします。
2. ローカルマシンからアカウント B の S3 バケットに、保存された構成をアップロードします。
この S3 へのパスは次のようになります。
s3://elasticbeanstalk-us-east-2-account-b-id/resources/templates/application-b-name/
3. Elastic Beanstalk コンソールを開きます。
4. [リージョン] 一覧から、使用している AWS リージョンを選択します。
5. ナビゲーションペインで、[ アプリケーション ]、[ 新しいアプリケーションの作成 ] の順にクリックします。
6. [アプリケーション名] に、新しいアプリケーションの名前を入力します (例: application-b-name)。
7. 左側ナビゲーションペインの新しいアプリケーションのセクションで、[Saved configurations] (保存された設定) を選択します。
これで、アカウント内の指定したリージョンに置かれた S3 バケットにある、保存された設定がすべて表示されます。
8. 次のアカウント内で、S3 バケットに対しアップロード済みとなっている、保存された構成を選択します。
s3://elasticbeanstalk-us-east-2-account-b-id/resources/templates/application-b-name/
9. Elastic Beanstalk 環境を起動します。