【画像付き手順】:
EC2インスタンスを別のAWSアカウントに移行する

あるAWSアカウントで作成したEC2インスタンスを別のAWSアカウントに移行する際の手順です。

LinuxベースのEC2はEC2のイメージ(AMI)を移行すればそこから起動して完了しますが、
WindowsベースのEC2は移行後、Windowsサーバ特有のSysprepの操作が必要になります。

今回はLinuxs、Windowsそれぞれどのように移行すればよいか、移行手順を具体的に紹介します。

移行の流れ

LinuxベースのEC2の場合

LinuxベースのEC2の移行の流れは以下のようになります。
AWSのEC2イメージ共有機能を使うだけなので非常にシンプルです。

LinuxベースのEC2の移行の流れ
  1. 移行元】のAWSアカウントで、EC2のイメージ(AMI)を作成する
  2. 移行元のAWSアカウントで、AMIを移行先のAWSアカウントに共有する
  3. 移行先のAWSアカウントで、共有されたAMIからEC2を作成する

WindowsベースのEC2の場合

WindowsベースのEC2の移行の流れは以下のようになります。
Linuxの移行手順に追加で「パスワード再設定用にSysprepによる操作」、「AMIの再作成」、「EC2の再作成」が必要になります。

LinuxベースのEC2の移行の流れ
  1. 移行元のAWSアカウントで、EC2のイメージ(AMI)を作成する
  2. 移行元のAWSアカウントで、AMIを移行先のAWSアカウントに共有する
  3. 移行先のAWSアカウントで、共有されたAMIからEC2を作成する
  4. 移行先のAWSアカウントで、作成したEC2にログインしてSysprepを実行する
  5. 移行先のAWSアカウントで、Sysprepを実行したEC2のAMIを作成する
  6. 【移行先のAWSアカウントで、作成したAMIから再度EC2を作成する

LinuxベースのEC2の移行手順

それでは、それぞれの詳細な手順を紹介します。

それぞれの作業ごとに記事を折りたたんであるため、各作業をクリックして手順を参照してみてください。

移行するEC2のイメージを作成していきます。
対象のEC2は「停止」した状態にしてください。

EC2コンソールの「インスタンス」タブで対象のEC2を選択し、「アクション」の「イメージとテンプレート」から「イメージの作成」をクリックします。

AMIの作成1/3
(クリックすると画像が拡大されます。)

イメージを作成画面では「イメージ名」「イメージの説明」を入力し、「イメージの作成」をクリックします。
ボリュームのサイズなどは元の情報が入力されているので特に変更する必要はありません。

AMIの作成2/3
(クリックすると画像が拡大されます。)

EC2コンソールの「AMI」タブからAMIの作成状況を確認します。
ステータスが「pending」から「avarable」になればAMIの作成が完了です。

AMIの作成3/3
(クリックすると画像が拡大されます。)

作成したAMIを移行先のAWSアカウントに共有します。

EC2コンソールの「AMI」タブで作成したAMIを選択し、「アクション」の「イメージパーミッションの変更」をクリックします。

イメージパーミッションの変更では、移行先のAWSアカウント番号を調べて入力します。

移行先のAWSアカウント番号はAWSコンソールに右上に出ているアカウント名をクリックすると、マイアカウントの横に表示されています。

移行先のAWSアカウント番号を調べて入力したのち、「アクセス許可の追加」をクリックし、「パーミッションを作成するときは関連付けられるスナップショットに”ボリューム作成”パーミッションを追加する」にチェックをつけ、「保存」をクリックします。

AMIの共有
(クリックすると画像が拡大されます。)

ここまでで、移行先にAMIが共有できているので、共有されたAMIを確認していきます。

EC2コンソールの「AMI」タブで「プライベートイメージ」を選択すると、共有されたAMIが確認できるはずです。

確認出来たら、共有されたAMIを選択し、「起動」ボタンをクリックします。

起動ボタンを押した後は通常のEC2と同じようにインスタンスを作成すれば問題ありません。

EC2の作成
(クリックすると画像が拡大されます。)

以上でLinuxベースのインスタンスについては、アカウント間の移行が完了となります。

移行したEC2を立ち上げて、「ログイン」したり「内部のデータを確認」するなどして、無事移行ができているか確認してみてください。

確認後は、移行元のEC2を削除してよいかと思います。

WindowsベースのEC2の移行手順

WindowsベースのEC2についても移行手順を紹介していきます。

【移行元】のAWSアカウントで、EC2のイメージ(AMI)を作成する」、「【移行元】のAWSアカウントで、AMIを移行先のAWSアカウントに共有する」、「【移行先】のAWSアカウントで、共有されたAMIからEC2を作成する」については上記のLinuxベースの手順と全く同じです。

移行するEC2のイメージを作成していきます。
対象のEC2は「停止」した状態にしてください。

EC2コンソールの「インスタンス」タブで対象のEC2を選択し、「アクション」の「イメージとテンプレート」から「イメージの作成」をクリックします。

AMIの作成1/3
(クリックすると画像が拡大されます。)

イメージを作成画面では「イメージ名」「イメージの説明」を入力し、「イメージの作成」をクリックします。
ボリュームのサイズなどは元の情報が入力されているので特に変更する必要はありません。

AMIの作成2/3
(クリックすると画像が拡大されます。)

EC2コンソールの「AMI」タブからAMIの作成状況を確認します。
ステータスが「pending」から「avarable」になればAMIの作成が完了です。

AMIの作成3/3
(クリックすると画像が拡大されます。)

作成したAMIを移行先のAWSアカウントに共有します。

EC2コンソールの「AMI」タブで作成したAMIを選択し、「アクション」の「イメージパーミッションの変更」をクリックします。

イメージパーミッションの変更では、移行先のAWSアカウント番号を調べて入力します。

移行先のAWSアカウント番号はAWSコンソールに右上に出ているアカウント名をクリックすると、マイアカウントの横に表示されています。

移行先のAWSアカウント番号を調べて入力したのち、「アクセス許可の追加」をクリックし、「パーミッションを作成するときは関連付けられるスナップショットに”ボリューム作成”パーミッションを追加する」にチェックをつけ、「保存」をクリックします。

AMIの共有
(クリックすると画像が拡大されます。)

ここまでで、移行先にAMIが共有できているので、共有されたAMIを確認していきます。

EC2コンソールの「AMI」タブで「プライベートイメージ」を選択すると、共有されたAMIが確認できるはずです。

確認出来たら、共有されたAMIを選択し、「起動」ボタンをクリックします。

起動ボタンを押した後は通常のEC2と同じようにインスタンスを作成すれば問題ありません。

EC2の作成
(クリックすると画像が拡大されます。)

ここまでで、移行先のAWSアカウントでEC2インスタンスを動かすところまで行ったのですが、このままではパスワードが依然のEC2に依存している状態となっています。

どういうことかと言うと、以下のようにEC2にリモートデスクトップで接続するために、「パスワードの取得」ボタンを押すと「パスワードは使用できません。」と表示されてしまうのです。

実は、リモートデスクトップで接続するためのパスワードは移行前と全く同じになっており【移行元】のコンソール画面からしか取得できない状態なのです。

パスワードの確認
(クリックすると画像が拡大されます。)

このような状況を修正し、コンソール画面で上記の流れでパスワードを取得できるようにするために、以下の手順を実施します。

【移行元】のアカウントでEC2へのログイン情報を確認し、以下のようにリモートデスクトップで接続します。

  • 【移行先】のIPアドレス
  • 【移行元】のWindowsアカウント、パスワード

リモートデスクトップで接続出来たら、「Windows」マークをクリックし、「Ec2LaunchSettings」を実行します。

Ec2LaunchSettingsではAdministrator Passwordを「Random」にして「Shutdown with Sysprep」をクリックします。

Sysprep Comfirmationが表示されますが、「Yes」をクリックすれば大丈夫です。すると、Sysprep is working…となり数分後インスタンスが停止します。

Sysprepの実行
(クリックすると画像が拡大されます。)

Sysprepを実行したので、このままEC2を立ち上げればいいと思いきや、このまま立ち上げても以下のように状況は変わっていません。
(起動しようとしてもうまく起動しない場合もあります。)

起動しただけではパスワードの状況は変わっていない
(クリックすると画像が拡大されます。)

Sysprepを実行したEC2イメージから新しいEC2インスタンスを立ち上げる必要があるのです。

ということで「【移行元】のAWSアカウントで、EC2のイメージ(AMI)を作成する」と同様の手順で、Sysprepを実行したEC2のAMIを作成します。

【移行先】のAWSアカウントで、共有されたAMIからEC2を作成する」と同様の手順でSysprepを実行したAMIからEC2を立ち上げます。

ここまで実施したら、パスワードが取得できるようになっているか確認してみます。
EC2コンソールで対象のEC2インスタンスを選択し「接続」の「RDPクライアント」から「パスワードを取得」をクリックしてみると、今度はキーペアからパスワードを取得できるようになっていることがわかります

パスワードが取得できるようになっている
(クリックすると画像が拡大されます。)

以上でWindowsベースのインスタンスについては、アカウント間の移行が完了となります。

移行したEC2を立ち上げて、「ログイン」したり「内部のデータを確認」するなどして、無事移行ができているか確認してみてください。

確認後は、移行元のEC2を削除してよいかと思います。

Spread the love