目次
ハイブリッドクラウドコンサルティング部の榊原です。 先日の記事ではAWS MGNを利用するための基礎知識(基本単語と移行手順概要)について説明しました。今回はそれらに肉付けする形で移行手順の詳細について述べていきます。前回記事を読んでいない方はこちらからどうぞ。
移行の詳細手順
オンプレミスからAWS基盤へサーバ移行を行うと仮定します。各項目は前回記事とリンクしています。記事内のスクショについて一点注意です。移行先は都合により東京でなくバージニア北部となっております。ご注意ください。
初期状態
オンプレミス上のサーバをAWSへ移行すると仮定して説明します。
ソースサーバにMGNエージェントをインストール
➀MGNエージェントインストール用のIAMユーザ作成(@IAMコンソール)
表題通りです。IAMユーザにはAWSApplicationMigrationAgentInstallationPolicyをアタッチし、プログラム用のアクセスキーを発行しておきます。
➁レプリケーションテンプレート作成(@MGNコンソール)
この後起動するレプリケーションインスタンスの設定について記載された、レプリケーションテンプレートを作成します。設定項目は以下の通りです。
- インスタンスをたてるサブネット
- インスタンスタイプ
- EBSボリュームタイプと暗号化の有無
- セキュリティグループ(特に要件が無ければデフォルト設定のままでよい)
- データ転送時のプライベートIPの有無
- ネットワーク帯域幅(移行元の通信を圧迫しないよう制限をかけたい場合設定)
ここまでの流れを図示します。
➂ソースサーバにMGNエージェントをインストール(@ソースサーバ)
MGNエージェントのインストール前にネットワーク面でいくつか注意点があります。
■ソースサーバから、AWS MGN、Amazon S3のサービスAPIエンドポイントに対してHTTPSプロトコル(TCP ポート443番)を介したアクセスが必要
■ソースサーバからステージングサブネットへのアウトバウンドが必要(TCP ポート1500番)
■ステージングサブネットから、AWS MGN、Amazon S3、Amazon EC2のサービスAPIエンドポイントに対してHTTPSプロトコル(TCP ポート443番)を介したアクセスが必要
■ソースサーバからレプリケーションサーバへのアクセスが必要(TCP 1500番ポート)
以上の準備が整ったら、ソースサーバにMGNエージェントのインストーラを用いてMGNエージェントをインストールします。移行元のサーバで操作する際、➀で作成したIAMの認証情報(アクセスキー)を使用します。OSがLinuxの場合、ソースサーバで以下のようにコマンドを入力します。
$ cd /tmp
# インストーラのダウンロード(たとえば移行先リージョンが東京の場合)
$ sudo wget -O ./aws-replication-installer-init.py https://aws-application-migration-service-ap-northeast-1.s3.ap-northeast-1.amazonaws.com/latest/linux/aws-replication-installer-init.py
# MGNエージェントのインストール(アクセスキー、シークレットアクセスキー部分は書き換え)
$ aws-replication-installer-init.py --region ap-northeast-1 --aws-access-key-id <アクセスキー> --aws-secret-access-key <シークレットアクセスキー>
下記のように「The AWS Replication Agent was successfully installed.」と表示されれば、エージェントインストールは完了です。
ここまでの流れを図示します。
➃MGNのソースサーバ項目に移行作業中のサーバが表示されることを確認(@MGNコンソール)
ソースサーバへのエージェントインストールが正常に完了したら、下のようにMGNのコンソール画面にソースサーバが表示されます。
また、移行先のリージョンにレプリケーションインスタンスもたちます。
なお、レプリケーションしたデータの実体は暗号化したEBSスナップショットです。気になる方は、移行先リージョンのEBSスナップショットの項目を見てください。
ここまでの流れを図示します。
レプリケーション完了には時間がかかるので、このタイミングでテストインスタンスの起動設定を編集しましょう。次の項目に進みます。
テストインスタンスの起動と検証
前準備
➄起動設定の編集(@MGNコンソール)
テストインスタンスの起動時の設定ができます。ソースサーバを選択し、起動設定、一般的な起動設定の編集の順に選択します。ここで「起動時にインスタンスを開始」という項目がありますが、これは「いいえ」がおすすめで、テストインスタンスが「停止済み」の状態で作成されます。テストインスタンス起動後、本当に既存環境に影響を与えないか等の最終チェックが可能になります。ネットワーク設定やセキュリティグループ等を確認しましょう。ちなみにカットオーバーインスタンス起動時もこちらで設定した値が反映されます。
➅EC2起動テンプレートを編集(@MGNコンソール)
テストインスタンスのインスタンスタイプやネットワーク、ストレージ等の設定を行います。編集した起動テンプレートはそのままだと適用されないので、この後の➆で設定を行います。
遷移先の画面でインスタンスタイプやキーペアの設定をします。
完了したら「テンプレートのバージョンを作成」を押します。
➆起動テンプレートのデフォルトバージョン設定(@MGNコンソール)
起動テンプレートの編集後、「テンプレートのバージョンを作成」→「デフォルトバージョンとして設定」を押します。すると下のような画面に遷移するので表示された起動テンプレートを選択し、「アクション」、「デフォルトバージョンを設定」、「テンプレートバージョンを最新のものに設定」、「デフォルトバージョンとして設定」と選択します。
MGNコンソールのソースサーバの画面に戻りましょう。ソースサーバの起動設定タブのEC2起動テンプレートの値が変わって入れば設定完了です。僕の場合はインスタンスタイプを変更しました。
ここまでの流れを図示します。
構築
➇テストインスタンスの構築(@MGNコンソール)
MGNコンソールからレプリケーションが完了しているか確認します。対象のソースサーバを選択して次のアクションが「テストインスタンスを起動」、データレプリケーションのステータスが「正常」になっていれば準備OKです。
「テストおよびカットオーバー」から「テストインスタンスを起動」を選択し、「起動」を押します。
しばらくするとテストインスタンスが起動します。EC2コンソールから確認してみてください。⑤の起動設定のところで「起動時にインスタンスを開始」を「いいえ」に設定した方は、停止済みになります。起動して問題ないか確認したら起動してください。
テストインスタンスを起動したら、ここで移行して問題ないか色々検証します。検証については移行するシステムによって内容が変わってくるため本記事では省略します。
ここまでの流れを図示します。
カットオーバー
➈カットオーバーインスタンスを起動する(@MGNコンソール)
テストインスタンスを用いた検証が完了したら、本番用のインスタンス(カットオーバーインスタンス)を起動します。まずMGNコンソールから「カットオーバーインスタンスを準備完了としてマーク」を選択します。ここでテストインスタンスを終了させるか否か選択できます。終了が推奨されますが、後工程で終了させることもできます。ただしいずれにせよ、テストインスタンスは最終的に削除されますのでご注意ください。テストインスタンスをそのまま本番用に使いたい場合の操作は最後に補足で述べます。
「サーバがカットオーバーの準備完了としてマークされました」、次のアクションが「カットオーバーインスタンスを起動」と表示されればOKです。
「カットオーバーインスタンスを起動」を選択します。
しばらくするとカットオーバーインスタンスが起動します。テストインスタンスのとき同様、⑤の起動設定で「起動後にインスタンスを開始」を「いいえ」に設定している方は手動で起動が必要です。EC2コンソールから起動しましょう。
カットオーバーインスタンスが起動するまで待ちます。
➉カットオーバーの最終処理(@MGNコンソール)
「カットオーバーを最終処理」を選択します。
するとレプリケーションサーバが終了されます。
⑪「アーカイブ済みとしてマーク」を選択(@MGNコンソール)
「アクション」→「アーカイブ済みとしてマーク」→「アーカイブ」を選択します。
以上で全工程が終了です。移行処理が完了したものはMGNコンソールの「ソースサーバ」、「アーカイブされたソースサーバ」を選択すると確認できます。
ここまでの流れを図示します。これで移行完了です!
(補足)テストインスタンスを本番用に使いたい場合
テストインスタンスに検証を加えていく中で、「これをそのまま本番用に使いたい!」と思うケースが出てくることでしょう。その際はMGNコンソールから「アクション」、「サービスから切断」を選択します。
MGNとしての処理はもう完了したことを記録するため、「アクション」、「アーカイブ済みとしてマーク」、「アーカイブ」を選択します。
これでテストインスタンスをそのまま本番運用に使うことができます。移行処理が完了したものはMGNコンソールの「ソースサーバ」、「アーカイブされたソースサーバ」を選択すると確認できますが、以降ライフサイクルは「切断済み」となりますのでご注意ください。
手を動かしてMGNの理解を深めたい方へ
実際に自分でもMGNを触ってみたいよという方は複数いらっしゃるかと思いますので、最後にAWSから出ているハンズオンのURLを共有します。MGNの一連の動かし方がわかるので非常におすすめです。
もう一つ、記事を書いている中で他にいい感じのをもう一つ見つけたのでついでに紹介します。
さいごに
今回はMGNを用いた移行の詳細手順についてお話ししました。記事だけだとイメージしにくい部分もあると思いますので、上のハンズオンは是非ともお試しください。ここまでお読みいただきありがとうございました。