演習 - 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 キーを押します。

コンテナーでコマンドを実行する

問題を診断し、解決するとき、場合によっては、実行中のコンテナーで直接、コマンドを実行する必要があります。

  1. コンテナーでコマンドを見るには、次の az container exec コマンドを実行し、コンテナーで対話型のセッションを開始します。

    az container exec \
      --resource-group learn-deploy-aci-rg \
      --name aci-demo-files \
      --exec-command /bin/sh
    

    この時点では、実質的にコンテナー内で作業していることになります。

  2. ls コマンドを実行し、作業ディレクトリの内容を表示します。

    # ls
    __pycache__  config_file.cfg  main.py  prestart.sh  static  templates  uwsgi.ini
    
  3. 必要であれば、システムをさらに試すことができます。 完了したら、exit コマンドを実行し、対話型セッションを停止します。

コンピューターで CPU とメモリの使用率を監視する

コンテナーで CPU とメモリの使用率を監視する方法を確認します。

  1. 次の 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)
    
  2. 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
    
  3. この 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 とメモリの使用率の情報が次のように表示されます。

Screenshot that shows the Azure portal view of Azure Container Instances CPU and memory usage information.

リソースのクリーンアップ

このモジュールでは、ご自分の Azure サブスクリプションを使用してリソースを作成しました。 これらのリソースに対する課金がもう行われないように、それらをクリーンアップする必要があります。

  1. Azure の [ホーム] ページで、[すべてのリソース] を選択します。

  2. [learn-deploy-aci-rg] リソース グループ、または使用したいずれかのリソース グループ名を探し、それを選択します。

  3. リソース グループの [概要] タブで、[リソース グループの削除] を選択します。

  4. 新しいダイアログ ボックスが開きます。 もう一度リソース グループの名前を入力し、[削除] を選択します。 このモジュールで作成したすべてのリソースが削除されます。