【AWS EC2】EC2インスタンスを別のAWSアカウントに移行
移行ステップ
次の STEP に沿って、実際に EC2 のアカウント移行を行ってみます。
STEP 1 : 移行元アカウントで AMI を作成します
STEP 2 : STEP 1 で作成した移行元アカウントの AMI を移行先アカウントに共有します
STEP 3 : 移行元アカウントから共有された AMI を用いて移行先アカウントで EC2 インスタンスを起動します
STEP 4: キーペアの移行
STEP 5 : 移行先アカウントで AMI を作成します
STEP 6: 移行元アカウントで AMI の共有を解除します
STEP 1
移行元アカウントで EC2 を停止し、AMI を作成します。
AMI には必要な EBS ボリュームをすべて含めるようにします。
STEP 2
移行元アカウントにおいて、AMI の「アクション」→「イメージパーミッションの変更」を選択した後に、「AWS アカウント番号」に移行先アカウント(Account-B)のアカウント ID を入力して「保存」します。
移行先アカウントから共有された AMI を確認します。確認の際は「プライベートイメージ」を選択する必要があります。「所有者」には移行元アカウント(Account-A)のアカウント ID が表示されます。
STEP 3
移行元アカウントから共有されている AMI を選択し、「アクション」→「起動」を実行して EC2 インスタンスを作成します。
今回のシナリオでは、EC2 のインスタンスタイプとストレージサイズは移行元 EC2 インスタンスと合わせています。
移行元アカウント同様に、作成した EC2 インスタンスには Elastic IP アドレスを割り当てます。
STEP 4
ローカル環境において、移行元アカウントで作成したキーペアのプライベートキー(.pem)からパブリックキーを作成します。
$ ssh-keygen -y -f test-transfer-keypair.pem > test-transfer-keypair.pub
ssh-keygen コマンド実行時にパーミッションに関する WARNING が出ることがあります。
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for 'test-transfer-keypair.pem' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "test-transfer-keypair.pem": bad permissions
WARNING への対処法としては、不要な読み取り権限を削除するために chmod コマンドで権限を変更します。
$ chmod 0600 test-transfer-keypair.pem
次に、移行先アカウントにおいて、EC2 のキーペア画面から「アクション」→「キーペアをインポート」を選択します。
先ほどローカルで作成したパブリックキーを選択して「インポート」します。
以上で移行は完了です。
STEP 5
現状では移行元アカウントの AMI を利用しており、移行先アカウントには AMI が無い状況なので、移行先アカウントにおいても EC2 インスタンスを停止して AMI を作成します。
作成した AMI を確認します。「プライベートイメージ」で確認した場合に、移行元アカウントから共有されている AMI と移行先アカウントで作成した AMI の両方が表示されますが、移行先アカウントで作成した AMI 名「test-ami-b」の「所有者」を確認すると、移行先アカウントのアカウント ID が表示されていることが確認できます。