APC 技術ブログ

株式会社エーピーコミュニケーションズの技術ブログです。

株式会社 エーピーコミュニケーションズの技術ブログです。

AWS Application Migration ServiceのLaunch templateを利用する

はじめに

こんにちは、クラウド事業部の山路です。

今回もAWS Application Migration Service (以降AWS MGN) の機能を紹介します。

AWS MGNは移行対象のサーバーを起動する時、各ソースサーバーごとに生成される EC2 launch template の設定を利用します。ただしAWS MGNはこれ以外に起動時の設定を決める設定項目があり、それらを組み合わせて最終的な起動設定を決定します。

今回はAWS MGNでインスタンスを起動するときの設定が、どのように決定されるかを知るため、Launch templateの内容を紹介します。

AWS MGNがインスタンス起動時に利用する機能

AWS MGNは、大きく2種類の機能を利用して、テスト・カットオーバーインスタンスの設定を決定します。

General launch settings

この設定は、ソースサーバーの起動時に使用するデフォルト設定を構成します。ここで設定できるのは以下の6種類のパラメーターです。

https://docs.aws.amazon.com/images/mgn/latest/ug/images/launchsettings-new-tab2.png

※上記画像はAWS Documentより引用

  • Instance type right-sizing: このパラメーターが有効になっている場合、ソースサーバーの設定から最適なインスタンスタイプを、AWS側で自動的に設定します。またこの設定が有効になっていると、後述するEC2 launch templateに設定されたインスタンスタイプを上書きし、Instance type right-sizingで選択されたものが優先されます
  • Start instance upon launch: テスト・カットオーバーインスタンスを作成する時、インスタンスを自動的に起動するか否か選択できます。
  • Copy private IP: ソースサーバーと同じプライベートIPを使うか否かを選択できます。このパラメーターを有効にする場合、起動するサブネットのCIDRが適切であるか、事前に確認が必要です。
  • Transfer server tags: ソースサーバーからテスト・カットオーバーインスタンスに、ユーザー設定のカスタムタグを転送するか否か設定します。なお、後述の EC2 launch template でもタグを設定できますが、そちらはこのオプションで転送されたタグより優先度が高くなります。
  • Operating system licensing: ソースサーバーからテスト・カットオーバーインスタンスに対し、ソースサーバーのライセンスを引き継ぐか (BYOL)、AWSの提供するライセンスを利用するか (Use default) 選択します。
  • Boot mode: ソースサーバーがWindows OSの場合、Windwos boot modeを Legacy BIOS と UEFIのどちらかを選択できます。

docs.aws.amazon.com

EC2 launch template

EC2 launch template はEC2インスタンスの起動に関する以下のような項目を設定することができます。AWS MGNだけでなく、EC2 Auto Scalingなどでも利用するため、なじみのある方も多いかと思います。

  • AMI
  • インスタンスタイプ
  • キーペア
  • ネットワーク: サブネット、セキュリティグループ、ENI
  • ストレージ: EBSボリューム
  • リソースタグ
  • 高度な詳細: 購入オプション、ユーザーデータなど

ただし、AWS MGNで EC2 launch template を利用する場合、いくつか追加で気を付けておくべき事項があります。

  • AWS MGNで使用するtemplateは、デフォルトバージョンのtemplateです。EC2 launch template を修正した場合、新しいバージョンとして保存されるので、変更を反映するために作成したバージョンをデフォルトに設定しなおす必要があります。
  • AWS MGNが利用するtemplateは、ユーザーが変更しない限りサブネット指定が空欄です。指定がないときはdefault VPC内のサブネットを使用しますが、default VPCがない等の場合はエラーになります。

docs.aws.amazon.com

AWS MGN共通のLaunch template

前述の General launch setting / EC2 launch template はソースサーバーごとに設定できますが、AWS MGNはソースサーバーに共通で利用するLaunch templateを提供します。


※2つのlaunch templateが出てきてわかりにくいですが、ここではソースサーバー個別のものを Launch template 、AWS MGNで共通で利用するものを AWS MGN共通のLaunch template としています。


AWS MGN共通のLaunch templateは、ソースサーバーの新規登録時に生成する Launch template のひな形として機能します

AWS MGN共通のLaunch template昨年追加された機能ですが、それ以前はソースサーバーごとに個別で起動時のインスタンス設定をする必要がありました。AWS MGN共通のLaunch template を利用することで、ソースサーバー登録前に、利用するネットワークやインスタンスタイプを設定し、サーバー個別に起動設定を加える手間を少なくできます。

なお AWS MGN共通のLaunch template では、前述した General launch setting / EC2 launch template を設定できますが、設定変更が反映されるのは、AWS MGN共通のLaunch template 変更後に新規に登録されたソースサーバーのみとなります。

docs.aws.amazon.com

Launch templateを検証する

ここから簡単な検証をします。今回はインスタンスタイプを変更しながら起動テンプレートの動きを確認しました。

Launch template変更前

まずはソースサーバーを1台用意します。この時に用意される起動テンプレートは、あらかじめ設定された AWS MGN共通のLaunch template をベースに設定されます。

この時点で AWS MGN共通のLaunch template は以下のように設定しており、インスタンスタイプは t3.medium です。

このままテストインスタンスを起動すると、インスタンスタイプは上記の設定のとおり t3.medium で起動します。

Launch templateの修正: インスタンスタイプの変更

次に AWS MGN共通のLaunch template を修正します。ここでは EC2 launch template を修正し、インスタンスタイプを m5.large に変更しました。

共通のLaunch templateを修正後、ソースサーバーを追加します。すると、追加したサーバーの EC2 launch template のインスタンスタイプが m5.large に代わっていることを確認できます。

テストインスタンスを起動すると、想定通り m5.large で立ち上がります。

Launch template: Instance type right-sizing の変更

最後に、AWS MGN共通のLaunch templateInstance type right-sizing を変更し、自動的にインスタンスタイプを選択するようにします。

上記変更後にソースサーバーを追加すると、選択されたインスタンスタイプが c5.large となり、 EC2 launch template を上書きしていることがわかります。

この状態でインスタンスを起動すると、想定通り c5.large で立ち上がりました。

参考

最後に

弊社はAWSアドバンスドティアサービスパートナー認定を受けております。また以下のようにAWSの活用を支援するサービスも行っているので、何かご相談したいことがあればお気軽にご連絡ください。

www.ap-com.co.jp