MGN の起動後設定で CloudWatch Agent をインストールする

記事タイトルとURLをコピーする

こんにちは、やまぐちです。

概要

今回は、AWS Application Migration Service (以降 MGN) の起動後設定を利用して、移行後のインスタンスに SSM Agent と CloudWatch Agent がインストールされるまでを確認したいと思います。
※今回は、テストインスタンスの起動までしか実施しないのでカットオーバーは行いません。
起動後設定は、テストインスタンスとカットオーバーインスタンスのいずれかまたは両方に対して適用ができます。


構成図は以下になります。

構成のちょっとした説明

本来であれば、移行元サーバ(ソースサーバ)があるセグメントは閉ざされた空間だと思いますが今回は検証ということでパブリックサブネットにあるインスタンス(Linux)を移行することにします。
そのため、ソースサーバはインターネットを経由して MGN Agent のインストーラを取得したり、MGN へ接続することとなります。

対して移行先のサブネットはプライベートサブネットとするので、必要な VPC エンドポイントは作成しておきます。(構成図では、Gateway と Interface を一緒くたんにまとめて記載してますがご了承ください。)
インターフェイス型の VPC エンドポイントについては プライベート DNS 名を有効にしておきます。

早速やってみる

レプリケーションテンプレートの設定

MGN Agent のインストール・実行前にテストインスタンスの起動設定を行っていきます。

MGN に移動します。

「レプリケーションテンプレート」に移動します。

「編集」を押して、サブネットの指定と「データレプリケーションにプライベート IP を使用 (VPN、DirectConnect、VPC ピア接続など)」にチェックを入れて保存します。

サブネットの指定
データレプリケーションにプライベート IP を使用 (VPN、DirectConnect、VPC ピア接続など)を指定

起動設定

レプリケーションテンプレート同様に「起動設定」の設定も行います。
テストインスタンス/カットオーバーインスタンスの設定値に関する設定です。

サブネットとセキュリティグループを選択して「テンプレートを保存」を押下します。

設定が反映されたことを確認します。

起動後設定

今回のメインディッシュとなる設定となります。

「起動後テンプレート」に移動して「編集」を押します。

「Systems Manager エージェントをインストールし、起動したサーバでのアクションの実行を許可する」をオンにします。

「デプロイ」の箇所で、どのインスタンスに起動後設定を適用するかを選択できます。
今回はカットオーバーまでしませんが、「テストインスタンスとカットオーバーインスタンス (推奨)」を選択しておきます。

テンプレートを保存すると以下のような画面が出てきます。
※テンプレートを編集した時に設定したように SSM Agent のインストールは必須となっています。

CloudWatch Agent のインストール設定

では、起動後に CloudWatch Agent をインストールする設定を行います。

アクション一覧から「CloudWatch agent installation」を選択し、「編集」を押します。

編集画面に移ると「Systems Manager ドキュメント名」と書かれているのがわかります。

そうです。この起動後アクションはインスタンス起動後に「AWSEC2-ApplicationInsightsCloudwatchAgentInstallAndConfigure」を SSM の RunCommand で実行している形となります。
なので SSM Agent のインストールが必須だったんですね~

「このアクションをアクティブ化する」にチェックを入れます。

パラメータは、CloudWatch Agent 設定ファイルを格納したパラメータストア名(ARN ではないので注意してください)を入力します。
※パラメータストアは事前に作成をお願いします。

その他値はデフォルトで「アクションを保存」を押下します。
「CloudWatch agent installation」がアクティブになっていることを確認します。

これで MGN 側の下準備は完了です!

MGN Agent のインストールと実行

それでは次は、サーバに MGN Agent のインストールと実行をします。

まずは、「mgn01-post-launch-actions」にログインして MGN Agent をインストールします。
curl コマンドを実行してインストーラを取得します。

$ curl -O https://aws-application-migration-service-ap-northeast-1.s3.ap-northeast-1.amazonaws.com/latest/linux/aws-replication-installer-init

aws-replication-installer-init がダウンロードできたことを確認します。

$ ls
aws-replication-installer-init

インストーラを取得できたら、インストーラを実行します。
※MGN 実行用の IAM ユーザのクレデンシャル情報を入力します。

$ sudo chmod +x aws-replication-installer-init; sudo ./aws-replication-installer-init --region ap-northeast-1 \
--aws-access-key-id xxxxxx \
--aws-secret-access-key xxxxxx

実行すると移行するデバイス名を問われるので回答します。
基本的には、まるごとお引越しするケースがほとんどだと思うのでその場合は何も入力せずに Enter で進めます。

The installation of the AWS Replication Agent has started.
Identifying volumes for replication.
Choose the disks you want to replicate. Your disks are: デバイス名
To replicate some of the disks, type the path of the disks, separated with a comma (for example, /dev/sda,/dev/sdb). To replicate all disks, press Enter:

以下が表示されるので、そのまま待機します。

Identified volume for replication: デバイス名 of size ボリュームサイズ GiB
All volumes for replication were successfully identified.
Downloading the AWS Replication Agent onto the source server...
Finished.
Installing the AWS Replication Agent onto the source server...

しばらくすると以下が表示され処理が完了します。

Installing the AWS Replication Agent onto the source server...
Finished.
Syncing the source server with the Application Migration Service Console...
Finished.
The following is the source server ID: s-6f7b804bbd786bb7d.
You now have 1 active source server out of a total quota of 150.
Learn more about increasing source servers limit at https://docs.aws.amazon.com/mgn/latest/ug/MGN-service-limits.html
The AWS Replication Agent was successfully installed.

MGN の画面を見るとソースサーバが表示されました!

しばらくしてからソースサーバの詳細を見るとレプリケーションが開始されているのがわかります。

レプリケーションサーバも立ち上がっているのが確認できます。

移行ダッシュボードで「テストの準備完了」のステータスになっていることを確認できたら完了です!

テストインスタンスの起動

いよいよテストインスタンスを起動して、SSM Agent と CloudWatch Agent がインストールされるかを確認します!
(お待たせしましたw)

テストインスタンスを起動させます。

「テストインスタンスを起動」を選択する

「起動」を押下する

テスト進行中となっていることを確認します。

「起動済み」となったら完了です!


「起動後のアクション」で SSM Agent と CloudWatch Agent のインストールもステータスが「成功」になっているのが確認できます。
ちなみに、移行後サーバが SSM へ到達できないと「成功」にはならないので注意です。
今回は、プライベートサブネットに配置しますが SSM の VPC エンドポイントを VPC 内に配置しておいたので SSM への経路は確保されている形となります。

CloudWatch Agent がインストールされているか確認する

テストインスタンスにセッションマネージャーでログインして、CloudWatch Agent がインストールされているかを確認します。

以下コマンドを実行して CloudWatch Agent のステータスを確認してみます。

$ sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a status

status が running になっていて CloudWatch Agent が起動している(= CloudWatch Agent がインストールされている)のが確認できました!

CloudWatch メトリクスにカスタムメトリクスが出力されているかも確認してみます。
※パラメータストアに格納した CloudWatch Agent の Json ファイル内にメモリとディスクの使用率を出力する記載をしておきました。

カスタムメトリクスも出力されていました!

まとめ

MGN の起動後設定で CloudWatch Agent を入れてみました!
起動後設定のアクションは色々と用意されているので、移行後に行う作業が短縮されそうですね! docs.aws.amazon.com

それでは、またどこかで~

やまぐち まさる (記事一覧)

CS部・CS2課

AWS の構築・運用をやってます

3度の飯より野球が好き

2024 Japan AWS All Certifications Engineers