atlax blogs
  • re:Invent 2022 新機能で実現する
    快適なマルチアカウントマイグレーション

    ~ AWS MGN Post-launch custom actions を試してみた ~

    - 2023/01/05

    大石 将士 - 2022 APN AWS Top Engineer




はじめに

こんにちは。APN AWS Top Engineer の 大石 将士 です。

2022年11月28日 ~ 12月2日に、AWS 最大のカンファレンスイベントである「AWS re:Invent 2022」が、アメリカの ラスベガスで開催されました。100 以上の サービスアップデートが発表された中で、今回はマイグレーション分野で 唯一発表された AWS Application Migration Service (AWS MGN)の新機能から、Post-launch custom actions をご紹介します。

AWS への マイグレーションを検討されている方、推進している方の ご参考になれば 幸いです。



AWS MGN とは

AWS Application Migration Service (AWS MGN)とは、物理・仮想・クラウド上のサーバを EC2 インスタンスに コンバートしてくれる 移行サービスです。2021年5月に 一般提供されて以来、AWS マイグレーションの 推奨サービスに位置づけられています。

ソースサーバに エージェントを インストールすると、レプリケーションサーバに ディスクイメージが吸い出され、EC2 (Amazon Elastic Compute Cloud)および EBS (Amazon Elastic Block Store)に コンバートしてくれます。流量制限機能もあり、レプリケーションサーバに流れる ネットワーク転送量を制御できます。

マルチアカウントで AWS を運用している場合、移行先が複数の AWS アカウントに またがることがあります。その際、各 AWS アカウントに MGN をセットアップするのは面倒ですし、全てのデータ複製に対して流量制限したいので、MGN 用に AWS アカウントを 1つ用意し、クロスアカウントで移行したくなります。つまり、次のような構成です。

AWS Application Migration Service (AWS MGN) - MGN 用に AWS アカウントを 1つ用意し、クロスアカウントで移行する場合の構成

残念ながら 2022年12月現在、MGN に それを実現する機能はありません。実現するには、次のステップを踏む
必要があります。

- 1. MGN 用アカウント上に EC2 インスタンスを移行する。
- 2. EC2 インスタンスから AMI(Amazon マシンイメージ)を作成する。
- 3. AMI を クロスアカウントで共有する。
- 4. システム用アカウントで AMI からサーバを復元する。

* MGN による マルチアカウントマイグレーションを実現するには、「AWS RAM (AWS Resource Access Manager)を使って アカウント間で サブネットを共有する」という方法もあります。

・Amazon Web Services ブログ / AWS MGN と AWS RAM を使って、AWS への大規模なマイグレーションを
統制する ※外部サイトへ

re:Invent 2022 で発表された AWS MGN Post-launch custom actions を使って、このステップを自動化して
みます。



Post-launch custom actions とは

AWS MGN が EC2 インスタンスを起動した後、AWS Systems Manager (SSM)ドキュメントで定義された処理を自動実行してくれる機能です。SSM ドキュメントで定義できる操作であれば 任意の処理を実行できるので、移行プロセスにおける手作業の 大幅な削減が期待できます。



試してみた

では、Post-launch custom actions を使った マルチアカウントマイグレーションを試してみます。構成の概略は、次のとおりです。

AWS Application Migration Service (AWS MGN) - Post-launch custom actions を使った マルチアカウントマイグレーションの構成

MGN が ターゲット VPC に EC2 インスタンスを移行した後、Post-launch custom actions で AMI 作成 ~ AMI 共有まで、自動実行させます。

まず、SSM ドキュメントです。「AWS-CreateImage」という デフォルトで用意されているドキュメントは、インスタンス ID を指定する必要があります。今回は、MGN が インスタンスを起動するまで ID が 特定できないので、このドキュメントは使えません。MGN は サーバのホスト名を インスタンスの Name タグに設定するため、

- 1. Name タグ(= ホスト名)から インスタンス ID を取得。
- 2. インスタンス ID を指定して AMI を作成。
- 3. AMI を クロスアカウントで共有。

という ステップを持つドキュメントを、事前に作成しておきます。

次に、MGN 側の設定です。

Post-launch template タブの Add custom action ボタン - AWS Application Migration Service (AWS MGN)の Post-launch custom actions を使った マルチアカウントマイグレーション

MGN コンソールから Settings の Post-launch template タブに移動し、画面最下部の Add custom action ボタンをクリックします。


Systems Manager document name に SSM ドキュメントを指定 - AWS Application Migration Service (AWS MGN)の Post-launch custom actions を使った マルチアカウントマイグレーション

「Systems Manager document name」に 事前作成しておいた SSM ドキュメントを指定します。今回は 単一アクションのみ指定しますが、複数指定した場合は「Order」に指定する数値で 実行するアクションの順番を定義できます。


Action parameters で SSMドキュメントの パラメータ指定 - AWS Application Migration Service (AWS MGN)の Post-launch custom actions を使った マルチアカウントマイグレーション

Action parameters では、SSM ドキュメントの パラメータを指定します。今回は、対象サーバの Name タグ(= ホスト名)と、AMI の共有先アカウント ID を入力し、Add action ボタンで 準備完了です。

では、MGN で サーバ移行を開始します。詳細な手順は 割愛しますが、オンプレミスのサーバに エージェントをインストールし、データ同期は完了した状態で「Launch test instances」から テストサーバを起動します。

Launch test instances から テストサーバを起動 - AWS Application Migration Service (AWS MGN)の Post-launch custom actions を使った マルチアカウントマイグレーション

しばらくすると、ターゲット VPC に インスタンスが起動され、Post-launch actions が実行されたことが確認できました。

Post-launch actions 実行確認 - AWS Application Migration Service (AWS MGN)の Post-launch custom actions を使った マルチアカウントマイグレーション

また、共有先アカウントを確認すると AMI が共有されていました。あとは この AMI から インスタンスを復元すれば、マルチアカウントのサーバ移行は完了です。

Amazon マシンイメージ(AMI) - AWS Application Migration Service (AWS MGN)の Post-launch custom actions を使った マルチアカウントマイグレーション



終わりに

re:Invent 2022 で発表された、AWS MGN の新機能である Post-launch custom actions をご紹介しました。機械学習、IoT といったサービスと比べると 地味ではありますが、実際の移行プロジェクトでは とても有益な機能だと思います。

さらに AWS MGN には、他にも いくつかの新機能が、併せて発表されています。

・Amazon Web Services ブログ / AWS Application Migration Service (AWS MGN)の 主な更新 - 新しい移行サーバの グループ化、起動テンプレート および 起動後テンプレートの更新 - ※外部サイトへ

これらの機能も活用しながら、より快適な AWS マイグレーションを実現していきたいですね。

本記事を最後までお読みいただき、ありがとうございました。



関連リンク・トピックス

・atlax / クラウドの取り組み / AWS(Amazon Web Services) ※カテゴリーTOPページ

・2022/09/28 野村総合研究所、最上位の「AWS プレミアティアサービスパートナー」に 10年連続で認定 
- コンサルティング、システム開発・運用、アナリティクスといった 幅広い分野で AWS を活用し お客様を支援 -

・2022/05/26 「2022 Japan AWS Partner Ambassadors」および「2022 APN AWS Top Engineers」に、NRI社員が選出されました - AWS の技術力を発揮した活動・成果を通じて、クラウドの知識や技術スキルを研鑽する NRIのプロフェッショナル -

・2022/03/23 野村総合研究所、「AWS DevOps コンピテンシー」認定を取得 - ビジネス戦略から実現までのアジリティを高めるため、アジャイル手法や DevOps 環境を導入したシステム開発を支援 -



※ 記載された会社名 および ロゴ、製品名などは、該当する各社の登録商標または商標です。
※ アマゾン ウェブ サービス、Amazon Web Services、AWS および ロゴは、米国その他の諸国における、Amazon.com, Inc.またはその関連会社の商標です。