LoginSignup
7
0

More than 1 year has passed since last update.

【Azure】【AWS】AzureからEC2インスタンスのメトリクスを確認する

Last updated at Posted at 2022-12-04

はじめに

今回は久しぶりのAzure関連の記事です
クラウドといえばAWS,Azure,GCPの御三家が有名ですが、複数のクラウドを同時に使用している会社さんって結構多いのではないでしょうか。

今回はAzure以外のクラウドに作成された仮想マシンを、あたかもAzureリソースのように管理できるようになるサービス「Azure Arc」を使用してAWSアカウント内のEC2インスタンスのメトリクスを取得してみようと思います。

目次

  1. AzureArcとは
  2. EC2構築
  3. AzureArcインストール用スクリプトの作成
  4. 稼働確認
  5. おわりに

AzureArcとは

AzureArcは管理したいサーバにインストールして使用します。
インストールすることで、Azure以外の場所にあるLinux,Windowd,オンプレサーバを
Azure ResourceManager、Azure CloudShell、Azure portal、Azure Policy などのツールを使用して管理できるようになります。

Azureリソースとして管理できるようになることで、たとえば以下のようなことができます。

  • Defender for CloudというCSPM/CWPPサービス使用して脅威を検出したり、脆弱性を管理できる。
    ※Defender for CloudはAzureセキュリティベンチマークを基にリソース状況をスコア評価してくれるサービスです。
    詳しくはこちらをご覧ください。

  • VM insightsを使用してOSのパフォーマンスを監視
  • Log Analytics エージェントを使用してパフォーマンスデータやイベントログを収集

AzureArcインストール用スクリプトの作成

画像のような手順でAzureArcのインストール用スクリプトを作成します。
image.png

image.png
今回は「オペレーティングシステム」で「Linux」を選択します。
image.png

こんな感じのインストール用スクリプトが作成されるのでダウンロードします。

AzureArc_Install.sh
export subscriptionId="サブスクリプションID";
export resourceGroup="リソースグループ名";
export tenantId="テナントID";
export location="japaneast";
export authType="token";
export correlationId="e9687594-c48d-4922-****-*********";
export cloud="AzureCloud";

# インストール パッケージをダウンロードします
output=$(wget https://aka.ms/azcmagent -O ~/install_linux_azcmagent.sh 2>&1);
if [ $? != 0 ]; then wget -qO- --method=PUT --body-data="{\"subscriptionId\":\"$subscriptionId\",\"resourceGroup\":\"$resourceGroup\",\"tenantId\":\"$tenantId\",\"location\":\"$location\",\"correlationId\":\"$correlationId\",\"authType\":\"$authType\",\"messageType\":\"DownloadScriptFailed\",\"message\":\"$output\"}" "https://gbl.his.arc.azure.com/log" &> /dev/null || true; fi;
echo "$output";

# ハイブリッド エージェントをインストールします
bash ~/install_linux_azcmagent.sh;

# 接続コマンドを実行します
sudo azcmagent connect --resource-group "$resourceGroup" --tenant-id "$tenantId" --location "$location" --subscription-id "$subscriptionId" --cloud "$cloud" --correlation-id "$correlationId";

image.png

EC2構築

次に、EC2インスタンス(Linux)を起動します。
インターネット経由でアクセスできるようにするためパブリックサブネットに作成しました。
構築手順は割愛しますが、セッションマネージャーもしくはSSHで接続可能な状態にしてください。

EC2を起動したらセッションマネージャー/SSHで接続します。
接続したら先ほどダウンロードしたスクリプトをS3経由でダウンロード、もしくはvim等でサーバ内に.shファイルとして作成してください。
今回はvimを使用しました。スクリプトの書き換えは不要です。
image.png

スクリプトを実行します。
image.png

途中でダウンロードが止まり、URLと認証コードが表示されます。
URLに接続し、認証コードを入力してください。
image.png

コードを入力したら使用したいアカウントにサインインしてください。
image.png

認証完了です。
image.png

認証が完了するとダウンロードが進み、「Connected machine to Azure」と表示されます
image.png

稼働確認

AzureArcの画面を開いてみます。
EC2インスタンスのインスタンスIDが追加されていることが確認できます。
この時にインスタンスIDが表示されない場合は、セキュリティグループやNACLで外部へのアクセスが制限されていないか確認してください。
image.png

念のためAWSコンソールでもインスタンスIDが一致しているか確認してみます。
image.png

Azure上でEC2のCPU使用率やメモリ使用率が取得できました。
AWS上でも確認してみると若干の差異はありますが、大体同じ値が取得できていることが確認できました。
image.png
image.png

さいごに

今回はAzureArcを使用してEC2インスタンスを認識してみました。
EC2のメトリクスはどこまで取得可能なのか(作りこめば色々なメトリクスをAzureで確認できるようになるのか)など、実用的な内容については触れなかったので次回以降のネタとして機会があれば試してみようと思います。

また、マルチクラウドな構成はこれからもどんどん増えてくると思います。
ほかにも気になるネタがあれば積極的に記事にしていきますので、興味のある方は読んでいただけると嬉しいです。

今回はここまでです。
最後まで読んでいただきありがとうございました。

7
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
0