演習 - Azure Container Instances のトラブルシューティング
コンテナー インスタンスのトラブルシューティングの基本的な方法を理解するために、次のような基本操作をいくつか実行します。
- コンテナー ログを引き出す
- コンテナー イベントを表示する
- コンテナー インスタンスに接続する
以前にデプロイしたコンテナー インスタンスからログを取得する
次の az container logs
コマンドを実行して、前の演習で作成した猫と犬の投票アプリ コンテナーからの出力を確認します。
az container logs \
--resource-group learn-deploy-aci-rg \
--name aci-demo-files
次のような出力が表示されます。
Checking for script in /app/prestart.sh
Running script /app/prestart.sh
Running inside /app/prestart.sh, you could add migrations to this file, e.g.:
#! /usr/bin/env bash
# Let the DB start
sleep 10;
# Run migrations
alembic upgrade head
…
コンテナー イベントを取得する
az container attach
コマンドでは、コンテナーの起動中の診断情報が示されます。 また、コンテナーが起動すると、標準出力と標準エラー ストリームがローカル端末に書き込まれます。
az container attach
を実行し、コンテナーに接続します。
az container attach \
--resource-group learn-deploy-aci-rg \
--name aci-demo-files
次のような出力が表示されます。
Container 'aci-demo-files' is in state 'Running'...
(count: 1) (last timestamp: 2021-09-21 23:48:14+00:00) pulling image "mcr.microsoft.com/azuredocs/azure-vote-front"
(count: 1) (last timestamp: 2021-09-21 23:49:09+00:00) Successfully pulled image "mcr.microsoft.com/azuredocs/azure-vote-front"
(count: 1) (last timestamp: 2021-09-21 23:49:12+00:00) Created container
(count: 1) (last timestamp: 2021-09-21 23:49:13+00:00) Started container
Start streaming logs:
Checking for script in /app/prestart.sh
Running script /app/prestart.sh
…
ヒント
接続されているコンテナーから切断するには、Ctrl + C キーを押します。
コンテナーでコマンドを実行する
問題を診断し、解決するとき、場合によっては、実行中のコンテナーで直接、コマンドを実行する必要があります。
コンテナーでコマンドを見るには、次の
az container exec
コマンドを実行し、コンテナーで対話型のセッションを開始します。az container exec \ --resource-group learn-deploy-aci-rg \ --name aci-demo-files \ --exec-command /bin/sh
この時点では、実質的にコンテナー内で作業していることになります。
ls
コマンドを実行し、作業ディレクトリの内容を表示します。# ls __pycache__ config_file.cfg main.py prestart.sh static templates uwsgi.ini
必要であれば、システムをさらに試すことができます。 完了したら、
exit
コマンドを実行し、対話型セッションを停止します。
コンピューターで CPU とメモリの使用率を監視する
コンテナーで CPU とメモリの使用率を監視する方法を確認します。
次の
az container show
コマンドを実行し、Azure コンテナー インスタンスの ID を取得し、Bash 変数にその ID を格納します。CONTAINER_ID=$(az container show \ --resource-group learn-deploy-aci-rg \ --name aci-demo-files \ --query id \ --output tsv)
az monitor metrics list
コマンドを実行し、CPU 使用率情報を取得します。az monitor metrics list \ --resource $CONTAINER_ID \ --metrics CPUUsage \ --output table
--metrics
引数に注意してください。 ここで、CPUUsage によって CPU 使用率の取得が指定されます。次の出力のようなテキストが表示されます。
Timestamp Name Average ------------------- ------------ ----------- 2021-09-21 23:39:00 CPU Usage 2021-09-21 23:40:00 CPU Usage 2021-09-21 23:41:00 CPU Usage 2021-09-21 23:42:00 CPU Usage 2021-09-21 23:43:00 CPU Usage 0.375 2021-09-21 23:44:00 CPU Usage 0.875 2021-09-21 23:45:00 CPU Usage 1 2021-09-21 23:46:00 CPU Usage 3.625 2021-09-21 23:47:00 CPU Usage 1.5 2021-09-21 23:48:00 CPU Usage 2.75 2021-09-21 23:49:00 CPU Usage 1.625 2021-09-21 23:50:00 CPU Usage 0.625 2021-09-21 23:51:00 CPU Usage 0.5 2021-09-21 23:52:00 CPU Usage 0.5 2021-09-21 23:53:00 CPU Usage 0.5
この
az monitor metrics list
コマンドを実行し、メモリ使用率の情報を取得します。az monitor metrics list \ --resource $CONTAINER_ID \ --metrics MemoryUsage \ --output table
ここで、メモリ使用率の情報を取得するために、
--metrics
引数に MemoryUsage を指定しました。次の出力のようなテキストが表示されます。
Timestamp Name Average ------------------- ------------ ----------- 2021-09-21 23:43:00 Memory Usage 2021-09-21 23:44:00 Memory Usage 0.0 2021-09-21 23:45:00 Memory Usage 15917056.0 2021-09-21 23:46:00 Memory Usage 16744448.0 2021-09-21 23:47:00 Memory Usage 16842752.0 2021-09-21 23:48:00 Memory Usage 17190912.0 2021-09-21 23:49:00 Memory Usage 17506304.0 2021-09-21 23:50:00 Memory Usage 17702912.0 2021-09-21 23:51:00 Memory Usage 17965056.0 2021-09-21 23:52:00 Memory Usage 18509824.0 2021-09-21 23:53:00 Memory Usage 18649088.0 2021-09-21 23:54:00 Memory Usage 18845696.0 2021-09-21 23:55:00 Memory Usage 19181568.0
Azure portal では、Azure Container Instances の CPU とメモリの使用率の情報が次のように表示されます。
リソースのクリーンアップ
このモジュールでは、ご自分の Azure サブスクリプションを使用してリソースを作成しました。 これらのリソースに対する課金がもう行われないように、それらをクリーンアップする必要があります。
Azure の [ホーム] ページで、[すべてのリソース] を選択します。
[learn-deploy-aci-rg] リソース グループ、または使用したいずれかのリソース グループ名を探し、それを選択します。
リソース グループの [概要] タブで、[リソース グループの削除] を選択します。
新しいダイアログ ボックスが開きます。 もう一度リソース グループの名前を入力し、[削除] を選択します。 このモジュールで作成したすべてのリソースが削除されます。