実現したいこと
AというAWSアカウントで作成したEC2インスタンス(以下、旧EC2)を、BというAWSアカウント(以下、新EC2)でも複製利用したい
どんなメリットがあるのか
今回の複製とは、簡単に言うとその中身までまるっとコピーされた状態になります。
例えば、旧EC2にあるソースコードが、そのまま新EC2にも反映されています!
開発環境用のEC2を作成して、それをもとに本番環境用のEC2を作成するときなどは便利かなと思います。
Aアカウントでの作業
まず、AアカウントのAWSマネジメントコンソールにログインします!
イメージを作成する
コピーしたいインスタンスを選択した状態で、
アクション > イメージとテンプレート > 「イメージを作成」 をクリックします。
イメージの名前などを記入します。
下記の画像のように「再起動しない」を「有効化」しないと、EC2が再起動されてしまうので、基本的にはチェックを入れるのが良いのかなと思います。
「イメージを作成」をクリックすると、EC2 > イメージ > AMI に反映されます。
イメージ作成に少し時間がかかりますが、ステータスが利用可能(available)になるまで待ちます。
イメージを共有する
利用可能になったら、イメージを選択した状態で、 アクション > AMI 許可を編集 をクリックします。
設定は以下にしました。
- AMIの可用性 > 「プライベート」にチェック
- 共有アカウント > アカウントIDを追加 > アカウントBのAWSアカウント番号を入力
- 「アカウント許可を作成するときに、関連付けられたスナップショットに [ボリュームを作成] の許可を追加します」にチェック
保存すると、AアカウントのEC2のイメージはBアカウントへ共有された状態になります!
Bアカウントでの作業
BアカウントのAWSマネジメントコンソールにログインします
イメージをコピーする
今のままだと、イメージの所有者がAアカウントになっているので、共有されたイメージをもとに、Bアカウントが所有者となるようにします。
EC2 > イメージ > AMI から
自己所有ではなく、「プライベートイメージ」を選択します。
Aアカウントから共有されているイメージを選択し、「アクション」から「AMIのコピー」を選択します。
- リージョンを選択
- AMIコピー名を入力
ができたら、「AMIをコピー」をクリックします。
所有者の確認
EC2 > イメージ > AMI から
自己所有 を選択して、コピーされたイメージが表示されていればOKです
インスタンスを起動
コピーしたイメージからインスタンスを起動します。
EC2 > イメージ > AMI で、「AMIからインスタンスを起動」を選択します。
※旧EC2で使用しているキーペアがあれば、キーペアを新規作成する必要はありません。
EC2が起動できていれば成功です!!
おわりに
調べたところAMI自体は料金はかかりませんが、一緒に作成されるスナップショットに料金がかかるようです。
一連の作業が終わって大丈夫そうだったら、AMIの共有を解除したり、削除した方が良いかも知れません。