AWS移行 現行IT資産情報を自動収集して活用しよう

移行のディスカバリープロセスを助けるサービスの紹介です
2020.01.22

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは。
ご機嫌いかがでしょうか。
クラウドシフトしてますか~? 吉井 亮です。

「段取り八分仕事二分」という名言があります。
クラウドへの移行もやはり同じで十分な準備をしてから臨みたいものです。

クラウド移行の初期段階では DISCOVERY というプロセスがあります。
現行 IT 資産の情報を収集し、移行計画の役立てたり、
移行ステータスの追跡に使用します。

今回は DISCOVERY プロセスに活躍する AWS サービスを紹介します。

AWS Application Discovery Service

AWS には Application Discovery Service (以下、ADS と略します) というサービスがあります。
これを使うとオンプレミスサーバーの使用状況と設定データを収集することが可能です。

ADS は Migration Hub に統合されており
一連の移行プロセス (DISCOVERY~MIGRATE~TRACK) の可視化に貢献します。

データ収集

ADS には2種類のデータ収集方法があります。

エージェントレス検出

VMware 基盤に ADS 用の VM をデプロイします。
VMware メタデータを収集するので
ゲスト OS を問わない、動作に影響しないなどの利点があります。

収集するデータは以下です。

  • サーバーのホスト名
  • IP アドレス
  • MAC アドレス
  • ディスクリソースの割り当て
  • CPU、RAM、ディスク I/O などのメトリクスの平均とピークの使用率 (ハイパーバイザー観点)

エージェントベース検出

物理サーバーや仮想サーバーにエージェントをインストールするタイプです。
サポートされている OS は こちら に記載があります。
Windows Server と有名どころの Linux に対応しています。

  • サーバーのホスト名
  • IP アドレス
  • MAC アドレス
  • ディスクリソースの割り当て
  • CPU、RAM、ディスク I/O などのメトリクスの平均とピークの使用率 (OS 観点)
  • 着信/発信のネットワーク接続
  • および実行中のプロセス

調査したい情報に合わせて何れか、または、両方の収集方法を選択ください。

セットアップ

ADS をセットアップしていきます。
手元の VMware 環境が無いので今回はエージェントベース検出です。

Migration Hub

ADS で収集した情報は Migration Hub に集約されます。
執筆日時点では Migration Hub を使えるリージョンは
US West (Oregon) か Europe (Frankfurt) です。
どちらかに決めておきます。
※実際に EC2 が動作するリージョンとは無関係なので安心ください

IAM ユーザー

エージェントが使うクレデンシャルを発行します。
ADS 専用の IAM ユーザーを作成します。

IAM ユーザーを作成する際の アクセスの種類プログラムによるアクセス にしておきます。

ポリシーは AWSApplicationDiscoveryAgentAccess を割り当てます。

クレデンシャル情報が記載された CSV ファイルは必ずダウンロードしてきます。

インターネットアクセス

エージェントはインターネットアクセスが必要です。
Migration Hub を使うリージョンに合わせて以下のアクセスが可能な状態にします。

  • Oregon
    • https://arsenal.us-west-2.amazonaws.com:443
  • Frankfurt
    • https://arsenal-discovery.eu-central-1.amazonaws.com:443

NTP

エージェントをインストールするオンプレミスのサーバーは
NTP を介して時刻同期を行います。
時刻が正しくないとエージェント登録コールが失敗します。

ADS エージェント インストール

エージェントをインストールします。

Linux

以下のコマンドを実行します。
Your_Home_Region は Migration Hub のリージョンを指定します。
aws_key_id と aws_key_secret は前の手順で作成した IAM ユーザーのクレデンシャルを指定します。

curl -o ./aws-discovery-agent.tar.gz https://s3-us-west-2.amazonaws.com/aws-discovery-agent.us-west-2/linux/latest/aws-discovery-agent.tar.gz
curl -o ./agent.sig https://s3-us-west-2.amazonaws.com/aws-discovery-agent.us-west-2/linux/latest/aws-discovery-agent.tar.gz.sig
curl -o ./discovery.gpg https://s3-us-west-2.amazonaws.com/aws-discovery-agent.us-west-2/linux/latest/discovery.gpg
gpg --no-default-keyring --keyring ./discovery.gpg --verify agent.sig aws-discovery-agent.tar.gz

tar -xzf aws-discovery-agent.tar.gz

sudo bash install -r Your_Home_Region -k aws_key_id -s aws_key_secret

Windows Server

必要に応じて vc_redist.x86.exe をインストールします。
Microsoft Download Center

エージェントインストーラー をダウンロードします。
※ダウンロードのみです。実行はしません。

コマンドプロンプトで以下を実行します。
Your_Home_Region は Migration Hub のリージョンを指定します。
aws_key_id と aws_key_secret は前の手順で作成した IAM ユーザーのクレデンシャルを指定します。

msiexec.exe /i AWSDiscoveryAgentInstaller.msi REGION="Your_Home_Region" KEY_ID="aws_key_id" KEY_SECRET="aws_key_secret" /q

データ収集

マネジメントコンソールから Migration Hub を開きます。

左ペインの Data Collectors をクリックします。

Agents タブをクリックします。

以下のようにエージェントがリストされていると思います。
黒塗りされているセルにはホスト名が入っています。

任意のエージェント列にチェックを入れて
Start data collection ボタンをクリックします。

エージェントは15分間隔のポーリングなので15分以上待ちましょう。

データ表示

Migration Hub 画面の左ペイン Servers をクリックします。
ここにもエージェントがリストされています。
前の順で収集したエージェントをクリックしてみます。

情報が収集されています。
(都合により Windows 10 です)

パフォーマンス

パフォーマンス情報も取れています。
平均と最大が分かるので EC2 のサイジングに活用できます。

エクスポート

Export server datails ボタンをクリックすると
収集したデータをファイルで出力することが可能です。

EC2 instance recommendations

収集したデータを基に EC2 インスタンスタイプの推奨を示してくれます。
最終的なマシンスペックは AWS 上でテストをしながら決定しますが
リフト直後の仮決めの判断材料になる素晴らしい機能です。

Migration Hub 画面の左ペイン EC2 instance recommendations をクリックします。

推奨を出力するための条件を指定していきます。

Sizing preferences

CPU とメモリーサイズの基準を決めます。

Current server specification

「Direct match」 と 「Custom match」から選択します。

「Direct match」は収集されたデータをそのまま使用して推奨を導き出します。

「Custom match」は収集されたスペックをご自身でスケールさせます。
例えば CPU・メモリーを 50% に設定すれば現行スペックの半分程度の EC2 インスタンスタイプが推奨されます。

Maximum utilization

収集されたデータのメトリクスをみて
CPU・メモリー使用率の最大値から判断して EC2 インスタンスタイプが推奨されます。

Average utilization

収集されたデータのメトリクスをみて
CPU・メモリー使用率の平均値から判断して EC2 インスタンスタイプが推奨されます。

Percentile of utilization

収集されたデータのメトリクスをみて
指定したパーセンタイル値の CPU・メモリー使用率から判断して EC2 インスタンスタイプが推奨されます。

Instance type preferences

リージョン、テナンシー、価格モデルの基準を決めます。
推奨には EC2 の時間あたりの料金も含まれて出力されます。

Region

最終的に EC2 を稼働させるリージョンを指定します。
リージョンによって EC2 価格が変わります。

Tenancy

テナンシーを指定します。
Shared か Dedicated です。
目的に応じて指定ください。

Pricing Model

価格モデルを指定します。
オンデマンドかリザーブドインスタンスかの指定です。
この時点でインスタンスタイプが確定されるわけではないので
参考程度の情報になると予想します。

EC2 instance type exclusions

推奨に含めて欲しくないインスタンスファミリーを指定してます。
必須ではないのであえて指定しなくても大丈夫です。

CSV ファイルの出力

Export recommendations ボタンをクリックします。
CSV ファイルが zip 形式でダウンロードされると思います。

このファイルを参考にシフト後の EC2 インスタンスタイプを決めていくことが可能になります。

まとめ

AWS 移行前に現行情報を収集することは大切なプロセスです。
ドキュメントをかき集めたり、当時の担当者にヒアリングするよりかは
生の情報を収集したほうが確実性は増すと考えます。

ツールによる収集であれば、それほどの労力は要さないかもしれません。
AWS 移行を検討している方がいれば是非ご活用ください。

参考

What Is AWS Migration Hub?
AWS Application Discovery Service とは

以上、吉井 亮 がお届けしました。