APC 技術ブログ

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

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

AWS Application Discovery Serviceでサーバー情報を取得する

はじめに

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

以前AWS Application Migration Serviceについて紹介をしましたが、実際に移行をする前の準備として、移行する対象のサーバーの状態をチェックすることが必要です。この作業は移行対象のサーバー数が多いほど作業負荷が高まり、確認漏れなどの人為的ミスも発生する可能性が高まります。

AWSはApplication Discovery Service (以降AWS ADS) というサービスを提供しており、このサービスを使って移行対象のサーバーから自動的に情報を取得することで、作業負荷を軽減することが狙えます。

今回はAWS ADSの利用方法について紹介します。

AWS Application Discovery Serviceとは

AWS ADSは主にオンプレ環境のサーバー・データベースを対象としたサービスです。ADSは専用のAgent、Agentless Collector、もしくはCSV形式のデータをインポートすることで、データ収集対象のサーバー・データベースを登録します。ADSはインポート以外の方法でサーバーを登録すると、サーバーの情報を定期的に収集し、AWSへの移行計画に役立てることができます。

AWS ADSの特徴は以下になります。

  • 3通りのサーバー登録方法: 上述しましたが、AWS ADSは対象のサーバー情報の登録方法を3つの方法から選ぶことができます。基本的には専用のAgentをインストールするか、VMWare vCenterを利用したAgentless Controllerを利用することになりますが、何らかの事情でそれらの方法が使用できない場合、CSV形式のファイルをインポートすることも可能です (インポートの場合の注意点は後述します) 。
  • Migration Hubとの統合: AWS ADSはAWS Migration Hubと共に利用することが前提です。後ほど実際の画面を紹介しますが、ADSで収集したサーバーの情報はMigration Hubの画面から確認します。
  • Windows/Linuxに対応: AWS ADSはWindows/LinuxどちらのOSにも対応しています。ADSが対応するOSのバージョンは制限がありますが、幅広いサーバーに適用できるサービスです。
  • Amazon Athenaとの連携: AWS ADSはAmazon Athenaと連携し、サーバーから収集したデータを一元的に分析することが可能です。

AWS ADSを使ってみる

ここからAWS ADSを利用してサーバーの情報収集を行います。今回はシンプルにAmazon EC2インスタンスを1台用意し、Agentをインストールしてデータ収集を行いました。

前提条件

AWS ADSのAgentを利用するにはいくつかの前提条件があるので、まずはそれに従うよう準備します。

  • OS: AWS ADSは対応するOSに指定があります。今回は Ubuntu 20.04 を使用しています。
  • ネットワーク: Agentをインストールしたサーバーから、アウトバウンド方向で https://arsenal-discovery.<region>.amazonaws.com:443 に対して通信を許可します。
  • IAMユーザー: Agentインストール時に AWSApplicationDiscoveryAgentAccess という権限を付与されたIAMユーザー情報を使用します。
  • NTP: NTPによる時刻同期が正しくないと、Agent登録の呼び出しに失敗します。

※詳細は AWSドキュメント をご確認ください。

準備

AWS ADSはAWS Migration Hubの利用が前提となっており、対象のサーバーの情報の確認はMigration Hubコンソールから行います。

まだMigration Hubを利用したことがない場合は、まずMigration HubのHome regionを設定します。ここでは ap-northeast-1 を選択しました。

なおMigration HubのHome regionは一度設定するとユーザー側では変更ができないのでご注意ください。どうしても変更したい場合はAWSサポートに問い合わせる必要があります

続いてAWS ADSを扱う権限をもつIAMユーザーを用意します。ここでは以前AWS MGNでも利用したユーザーを流用し、 権限を付与しました。

AWS ADS Agentのインストール

前項で準備ができたので、AWS ADSの検証を進めます。まずは適当なEC2インスタンスを用意し、ログインします。

AgentインストーラーはS3に配置されているので、以下のコマンドでインストーラーを配置します。tarで解凍したらコマンドを実行しAgentをインストールします。

$ 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

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

$ sudo bash install -r ap-northeast-1 -k <AWS アクセスキーID> -s <AWS シークレットアクセスキー>

(一部割愛)

**************************************************
    FINISH PHASE
**************************************************

Notice:
By installing the Amazon Discovery Agent, you agree that your use is subject to the terms of your existing
AWS Customer Agreement or other agreement with Amazon Web Services, Inc. or its affiliates governing your
use of AWS services. You may not install and use the Amazon Discovery Agent unless you have an account in
good standing with AWS.
*  *  *
Current running agent reports version as: 2.0.2116.0
This install script was created to install agent version: 2.0.2116.0
In most cases, these version numbers should be the same.

インストール後はプロセスを確認し、正常にAgentが起動していることを確認します。

$ sudo systemctl status aws-discovery-daemon.service
● aws-discovery-daemon.service - AWS Discovery Agent: Collects system configuration and usage statistics for AWS Discovery.
     Loaded: loaded (/lib/systemd/system/aws-discovery-daemon.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2023-10-02 08:27:50 UTC; 1min 30s ago
   Main PID: 1931 (aws-discoveryd)
      Tasks: 8 (limit: 1141)
     Memory: 2.9M
     CGroup: /system.slice/aws-discovery-daemon.service
             └─1931 /opt/aws/discovery/aws-discoveryd nodaemon

Oct 02 08:27:50 ip-10-0-0-217 systemd[1]: Started AWS Discovery Agent: Collects system configuration and usage statistics for AWS Discovery..

Migration Hubから確認

Agentをインストールしたので、ネットワーク等に問題がなければAWS Migration Hubにデータが収集されています。

Migration Hubコンソールに移動すると、先ほどAgentをインストールしたサーバーが追加されていることを確認できます。なお画像中のソースが Import となっているサーバーは、Agentインストール前にImport形式で登録したサーバーの情報になります。

サーバーを選択すると、サーバーの情報を確認できます。ただし追加されてすぐの状態では一部データは表示されません。

AWS ADSは15分ごとにデータを収集するので、しばらくするとネットワーク等のデータが追加されます。

サーバーの画面下部に移動すると、エクスポートという項目があります。ここはMigration Hubに表示されない情報も含め、サーバーのより詳細なデータを取得できます。

Agentをインストールしたあたりの時刻を指定してダウンロードし、Zipファイルを解凍すると、以下のようなファイルが確認できます。例えば <AWS Account ID>_process.csv にはサーバー上で起動しているプロセス情報が確認できます。

.
├── <AWS Account ID>_destinationProcessConnection.csv
├── <AWS Account ID>_networkInterface.csv
├── <AWS Account ID>_osInfo.csv
├── <AWS Account ID>_process.csv
├── <AWS Account ID>_systemPerformance.csv
└── results.json

参考: インポートでの追加

今回Agentのほかにインポート形式でのサーバーの追加も行いました。ただし、現状ではその使い道は非常に限られているため、参考情報として少しだけ紹介します。

インポート形式の場合、特定のフォーマットのCSVファイルに必要な情報を入力し、S3バケットにファイルアップロード後にADSから読み込む、という手順でサーバーを追加することができます。CSVファイルのテンプレートはMigration Hubの画面からダウンロードでき、登録時は事前にS3バケットにアップロードしてから、Migration Hub画面で選択します。

ただし、インポート形式で追加されたサーバーは、データの収集などは行われず、ADSの対象サーバーとしてリストに追加されるだけです。

この機能の使い道としては、例えば何らかの事情でAgentのインストールができないサーバーがあったとき、移行対象のサーバーとしてADSで管理するサーバーと共に管理する、などがあります。また、実際のサーバーを用意せずにADSの画面などが確認できるため、ADSを簡単に試したいときにも使えそうです。

最後に

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

www.ap-com.co.jp