はじめに
こんにちは、クラウド事業部の山路です。
今回も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種類のパラメーターです。
※上記画像は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のどちらかを選択できます。
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がない等の場合はエラーになります。
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
変更後に新規に登録されたソースサーバーのみとなります。
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 template
の Instance type right-sizing
を変更し、自動的にインスタンスタイプを選択するようにします。
上記変更後にソースサーバーを追加すると、選択されたインスタンスタイプが c5.large
となり、 EC2 launch template
を上書きしていることがわかります。
この状態でインスタンスを起動すると、想定通り c5.large
で立ち上がりました。
参考
最後に
弊社はAWSアドバンスドティアサービスパートナー認定を受けております。また以下のようにAWSの活用を支援するサービスも行っているので、何かご相談したいことがあればお気軽にご連絡ください。