ENGINEER BLOG

ENGINEER BLOG

AWSの別アカウントにWindowsServerをお引越しする

こんにちは。ささのです。

EC2で動いているWindowsServer(EBS暗号化済み)をコピーして、別のアカウントで立ち上げたいときってありますよね?

ありますよね!?(私はありました。そして2~3ハマりました。)

「AMIつくって、AMI共有して、AMIから起動すればきっといけるでしょ!余裕だな!」とか思ってたらそう簡単にはいかなかったので、実施した方法を説明していきます。

ちなみにWindowsでない場合はこちらをどうぞ。

AWS Solutions Architect ブログ: 暗号化されたEBSスナップショットを持つAMIを作成し他のアカウントやリージョンで共有する方法

Note: この記事は、Windows AMIやbillingProduct codeを持つAWS マーケットプレイスからの他のAMIには適用できません。

TL;DR

fig_001

source account(共有元)

  • EBSからスナップショットを作成する
  • カスタマー管理型の鍵を作成する
  • 作成した鍵に変更してスナップショットのコピーを作成する
  • 鍵を変更したスナップショットを共有する

target account(共有先)

  • カスタマー管理型の鍵を作成する
  • 作成した鍵に変更して共有されたスナップショットのコピーを作成する
  • 鍵を変更したスナップショットからボリュームをつくる
  • 新規WindowsServerを作成して、ボリュームを入れ替える

環境

今回は下記の環境で行いました。

  • 東京リージョン
  • Windows Server 2012 R2 on EC2
    • 暗号化されたEBSを使用
    • 暗号化の鍵はデフォルトの aws/ebs

fig_002

手順

こちらの図(再掲)に沿って手順を説明します。

fig_001

source account

まずは共有元アカウントでの作業となります。

1. 共有したいサーバのEBSのスナップショットを作成する

ボリュームを選択して右クリックからスナップショットの作成を選択します。

fig_003

必要に応じて説明タグを入力して、スナップショットの作成を選択します。

fig_004

ステータスがCompletedになれば作成完了です。

fig_005

2. KMSで data encryption key #1 を新規作成する

Key Management Serviceに移動して、キーの作成を選択します。

fig_006

エイリアス説明を入力して、Nextを選択します。

fig_007

タグを設定します。今回はNameを指定しておきました。
入力が完了したらNextを選択します。

fig_008

キーの管理者を指定します。
今回は自分を指定しておきましたが、必要に応じて他のユーザを指定してください。
指定したらNextを選択します。

fig_009

キーの使用者を指定します。
こちらも今回は自分を指定しておきました。必要に応じて他のユーザを指定してください。

ここで、別のAWSアカウントに共有先のアカウントの追加を行います。

fig_010

共有先のアカウントを追加しておかないと、コピー作成時にerrorとなり、コピーを作成することができません。

fig_011

ポリシーが表示されるので、そのまま完了を選択します。

fig_012

カスタマーキーが作成され、一覧に表示されればOKです。

fig_013

3. 新規作成した data encryption key #1 を使って、手順1で作成したsnapshotのコピーを作成する

スナップショットを選択して右クリックからコピーを選択します。

fig_014

マスターキーを先ほど作成したdata-encryption-key-1に変更して、コピーを選択します。

fig_015

ステータスがCompletedになれば作成完了です。

fig_016

4. 手順3で作成したsnapshotを、共有先アカウントに共有する

スナップショットを選択して右クリックから権限の変更を選択します。

fig_017

共有先のAWSアカウント番号を入力して、アクセス許可の追加保存と選択します。

fig_018

target account

ここから先は共有先のアカウントでの作業となります。

5. KMSで data encryption key #2 を新規作成する

2. KMSで data encryption key #1 を新規作成すると同様の手順で作成します。
また、別のAWSアカウントを追加する必要はありません。

fig_019

6. 手順5で作成した data encryption key #2 を使用して、手順4で共有されたsnapshotのコピーを作成する

3. 新規作成した data encryption key #1 を使って、手順1で作成したsnapshotのコピーを作成すると同様の手順で作成します。
このとき、マスターキーを先ほど作成したdata-encryption-key-2に変更します。

fig_020

7. 手順6で作成したスナップショットから、EBSボリュームを作成する

スナップショットを選択して右クリックからボリュームの作成を選択します。

fig_021

iikanjiに設定して、ボリュームの作成を選択します。

fig_022

下記画面に遷移するので、ボリュームIDクリックして移動します。

fig_023

作成したボリュームの状態がavailableになればOKです。

fig_024

8. 移行したいインスタンスと同じOSでEC2インスタンスを起動する

移行元のインスタンスと同じAMIでインスタンスを新規に起動します。

fig_025

9. インスタンスを停止し、EBSボリュームをデタッチする

起動したインスタンスを一度停止させます。

fig_026

停止させたインスタンスにアタッチされているボリュームを選択し、Detach Volumeをクリックしてデタッチします。

fig_027

確認画面が表示されるので、デタッチするを選択します。

fig_028

10. インスタンスに、手順7で作成したEBSボリュームをアタッチする

手順7で作成したボリュームを選択して右クリックからボリュームのアタッチを選択します。

fig_029

アタッチするインスタンスを指定します。
また、デバイスはルートデバイスとしてアタッチするので/dev/sda1にする必要があります。

fig_030

11. インスタンスを起動する

停止しているインスタンスを起動させます。
右クリックからインスタンスの状態開始を選択します。

fig_031

fig_032

12. 動作確認する

インスタンスが起動したらパプリックIPアドレスもしくはパブリックDNSを確認して、リモートデスクトップできればお引越し完了です!

(イメージ)

fig_033

その他・Tipsとか

  • ログインID/PWはコピー元インスタンスと同じものになります。AWSのコンソールからPWの確認しても正しいPWは表示されないので注意です。
  • McAfee Agentなど外部と通信するものには注意しましょう。うっかり通信できてしまうと…
  • ちなみにAMIを共有して起動したら接続できませんでした。
    • このときプラットフォームがOtherLinuxになっていましたが、詳しくはわからないです。。。

fig_034

さいごに

「LinuxだったらAMIつくってサッと共有できるのに…」とか「暗号化されてなけば…」とか思いながら
AWSの別アカウント間でWindowsServerをお引越しすることができました。

本番環境→本番環境での引っ越しとかだとPW変わったりしちゃってややイケてないですが、
今回は本番環境で動いているサーバを開発検証用のアカウントでちょこっと検証したかっただけなので良しとしました。

おわり。