演習 - Azure Container Instances を実行する

完了

Azure でコンテナーを作成し、完全修飾ドメイン名 (FQDN) を使ってインターネットにそれを公開します。

重要

この演習を行うには、独自の Azure サブスクリプションが必要です。また、料金が発生することがあります。 Azure サブスクリプションをお持ちでない場合は、開始する前に無料アカウントを作成してください。

Azure Container Instances を使用する理由

Azure Container Instances は、シンプルなアプリケーション、タスク自動化、ビルド ジョブなど、分離されたコンテナーで操作できるシナリオに便利です。 次のような利点があります。

  • 高速起動: 数秒でコンテナーを起動します。
  • 秒単位の課金: コンテナーが実行されている間だけコストが発生します。
  • ハイパーバイザー レベルのセキュリティ: アプリケーションを VM 内にあるのと同様に完全に分離します。
  • カスタム サイズ: CPU コアとメモリの正確な値を指定します。
  • 永続的なストレージ: Azure Files 共有をコンテナーに直接マウントして、状態を取得して保持します。
  • Linux と Windows: 同じ API を使用して、Windows と Linux の両方のコンテナーでスケジュールを設定します。

複数のコンテナー間でのサービスの検出、自動スケーリング、調整されたアプリケーション アップグレードなど、完全なコンテナー オーケストレーションが必要なシナリオには、Azure Kubernetes Service (AKS) をお勧めします。

コンテナーを作成する

  1. 自分の Azure サブスクリプションを使用して、Azure portal にサインインします。

  2. Cloud Shell アイコンを選択して、Azure portal から Azure Cloud Shell を開きます。 インタラクティブな Cloud Shell 環境として、必ず Bash を選択します。

  3. learn-deploy-aci-rg という名前で新しいリソース グループを作成します。これにより、モジュールでの作業が終了したときにこれらのリソースをより簡単にクリーンアップできます。 別のリソース グループ名を選択した場合は、このモジュールの残りの演習で使用するため、忘れないでください。 リソース グループを作成するリージョン (米国東部など) も選択する必要があります。

    az group create --name learn-deploy-aci-rg --location eastus
    

    az container create コマンドに名前、Docker イメージ、Azure リソース グループを指定して、コンテナーを作成します。 必要に応じて、DNS 名ラベルを指定してコンテナーをインターネットに公開できます。 この例では、小さな Web アプリをホストするコンテナーをデプロイします。 イメージを配置する場所を選ぶこともできます。ここでは米国東部リージョンを使いますが、自分に近い場所に変更できます。

  4. コンテナーをインターネットに公開するには、DNS 名を指定します。 DNS 名は一意である必要があります。 学習目的のために、Cloud Shell からこのコマンドを実行し、一意の名前を保持する Bash 変数を作成します。

    DNS_NAME_LABEL=aci-demo-$RANDOM
    
  5. 次の az container create コマンドを実行して、コンテナー インスタンスを開始します。

    az container create \
      --resource-group learn-deploy-aci-rg \
      --name mycontainer \
      --image mcr.microsoft.com/azuredocs/aci-helloworld \
      --ports 80 \
      --dns-name-label $DNS_NAME_LABEL \
      --location eastus
    

    $DNS_NAME_LABEL には DNS 名を指定します。 イメージ名の azuredocs/aci-helloworld は、基本的な Node.js Web アプリケーションを実行する Microsoft Container Registry でホストされているコンテナー イメージを示します。

  6. az container create コマンドが完了したら、az container show を実行してその状態を確認します。

    az container show \
      --resource-group learn-deploy-aci-rg \
      --name mycontainer \
      --query "{FQDN:ipAddress.fqdn,ProvisioningState:provisioningState}" \
      --output table
    

    コンテナーの完全修飾ドメイン名 (FQDN) とそのプロビジョニング状態が表示されます。 次に例を示します。

    FQDN                                    ProvisioningState
    --------------------------------------  -------------------
    aci-demo-0000.eastus.azurecontainer.io  Succeeded
    

    コンテナーが作成中状態の場合は、しばらく待ってから、成功状態が表示されるまでコマンドを再実行します。

  7. ブラウザーからご利用のコンテナーの FQDN に移動して、動作していることを確認します。 aci-demo... の文字列の前に、http:// のプレフィックスを必ず入力します。 このウェルカム ページが表示されるはずです。

    Screenshot of the sample Node.js container app running in a browser.

まとめ

ここでは、Web サーバーとアプリケーションを実行する Azure コンテナー インスタンスを作成しました。 また、このアプリケーションには、コンテナー インスタンスの FQDN を使用してアクセスしました。