次の方法で共有


Azure Container Instances のスタンバイ プール (プレビュー)

重要

Azure Container Instances のスタンバイ プールは現在、プレビュー段階です。 プレビュー版は、追加使用条件に同意することを条件に使用できます。 この機能の一部の側面は、一般公開 (GA) 前に変更される可能性があります。

Azure Container Instances のスタンバイ プールを使用すると、受信トラフィックに対応するために使用できる事前プロビジョニング済みコンテナー グループのプールを作成できます。 このプール内のコンテナー グループは、プロビジョニング、初期化、仕事を受け取るための準備が完全に完了しています。

従来のパスとスタンバイ プールのパスを使用したコンテナー作成のワークフローの図。

制限事項

Azure Container Instances のスタンバイ プールは、Azure portal では利用できません。

前提条件

機能の登録

Azure Cloud Shell を使用して、スタンバイ プール リソース プロバイダーとスタンバイ プール プレビュー機能をご自分のサブスクリプションに登録します。 登録は、登録済みとして表示されるまで最大で 30 分かかる場合があります。 次のコマンドを再実行して、機能が正常に登録されたタイミングを判断できます。

Register-AzResourceProvider -ProviderNameSpace Microsoft.ContainerInstance
Register-AzResourceProvider -ProviderNamespace Microsoft.StandbyPool
Register-AzProviderFeature -FeatureName StandbyContainerGroupPoolPreview -ProviderNamespace Microsoft.StandbyPool

ロールベースのアクセス制御のアクセス許可

スタンバイ プールがサブスクリプション内にコンテナー グループを作成できるようにするには、スタンバイ プール リソース プロバイダーに適切なアクセス許可を割り当てます。

  1. Azure portal でサブスクリプションに移動します。
  2. アクセス許可を調整するサブスクリプションを選択します。
  3. [アクセス制御 (IAM)] を選択します。
  4. [追加] および [ロールの割り当ての追加] を選択します。
  5. [ロール] タブで、[スタンバイ コンテナー グループ プール共同作成者] を検索して選択します。
  6. [メンバー] タブに移動します。
  7. + メンバーの選択 を選択します。
  8. [スタンバイ プール リソース プロバイダー] を探して選択します。
  9. [レビューと割り当て] タブに移動します。
  10. 変更を適用します。
  11. 上記の手順を繰り返して、Azure Container Instances 投稿者ロールネットワーク共同作成者を、スタンバイ プール リソース プロバイダーに割り当てることもできます。

ロールの割り当ての詳細については、「Azure portal を使用して Azure ロールを割り当てる」を参照してください。

スタンバイ プールのコンテナーの使用

新しいコンテナー グループが必要な場合は、プロビジョニングされ実行中であるスタンバイ プールからコンテナー グループを即座にプルすることができます。

スタンバイ プールは、プロビジョニングと作業を受け取る準備が完全にできているプールのコンテナー グループしか提供しません。 たとえば、プール内のインスタンスがまだ初期化中の場合、それらは実行状態ではなく、コンテナーが要求された際に提供はされません。 プール内に利用できるインスタンスがない場合、Azure Container Instances は既定の動作として新しいコンテナー グループの作成を行います。

スタンバイ プールのサイズ

スタンバイ プール内のコンテナー グループの数は、maxReadyCapacity パラメーターを設定することによって決まります。 プールのコンテナー グループが消費されると、スタンバイ プールで設定された最大準備容量が維持されるように、スタンバイ プールは自動的に補充を開始します。

Azure Container Instances で利用できる唯一のスタンバイ プールの補充ポリシーは Always です。

設定 説明
maxReadyCapacity プール内にデプロイしたいコンテナー グループの最大数。
refillPolicy maxReadyCapacity を維持するためにコンテナー グループをすぐに補充するようにスタンバイ プールに指示します。

コンテナー グループ プロファイル

コンテナー グループ プロファイルは、プール内のコンテナーを構成する方法をスタンバイ プールに指示します。 コンテナー グループ プロファイルに何らかの変更を加えた場合は、更新内容がプール内のインスタンスに適用されるように、スタンバイ プールも更新する必要があります。

{
    "location":"{location}",
    "properties":{
        "containers": [
        {
            "name":"[mycontainergroupprofile]",
            "properties": {
                "command":[],
                "environmentVariables":[],
                "image":"mcr.microsoft.com/azuredocs/aci-helloworld:latest",
                "ports":[
                    {
                        "port":8000
                    }
                ],
                "resources": {
                    "requests": {
                        "cpu":1,
                        "memoryInGB":1.5
                                }
                            }
                        }
                    }
                ],
                "imageRegistryCredentials":[],
                "ipAddress":{
                "ports":[
                    {
                        "protocol":"TCP",
                        "port":8000
                    }
            ],
            "type":"Public"
            },
            "osType":"Linux",
            "sku":"Standard"
            }
        }


構成マップ

構成マップは、コンテナー グループ プロファイルに関連付けることができ、環境変数やシークレット ボリュームと同様にコンテナー構成を適用するために使用できるプロパティです。 しかし、環境変数やシークレット ボリュームを使用する場合は、変更を適用するためにはポッドの再起動が必要になります。 構成マップを使用することで、コンテナーを再起動することなく構成を適用することができます。 これによって、コンテナーが再起動なしで新しい値を読み取ることができるアウトオブバンド更新が可能になります。

Azure Container Instances は、構成マップの有無に関係なく作成でき、作成後の任意のタイミングで構成マップを使用して更新することができます。 既存の実行中のコンテナー グループ内の構成マップの更新は、コンテナーを再起動することなく、すばやく実行できます。

詳細については、「構成マップの使用」を参照してください。

{
    "properties": {
        "containers": [
            {
                "name": "{mycontainergroupprofile}",
                "properties": {
                    "image": "mcr.microsoft.com/azuredocs/aci-helloworld",
                    "ports": [
                        {
                            "port": 80,
                            "protocol": "TCP"
                        }
                    ],
                    "resources": {
                        "requests": {
                            "memoryInGB": 0.5,
                            "cpu": 0.5
                        }
                    },
                    "configMap": {
                        "keyValuePairs": {
                            "key1": "value1",
                            "key2": "value2"
                        }
                    }
                }
            }
        ],
        "osType": "Linux",
        "ipAddress": {
            "type": "Public",
            "ports": [
                {
                    "protocol": "tcp",
                    "port": 80
                }
            ]
        }
    },
    "location": "{location}"
}

機密コンテナー

Azure Container Instances のスタンバイ プールは、機密コンテナーをサポートしています。 機密コンテナーを利用するには、コンテナー グループ プロファイル内で sku タイプを Confidential に更新します。

重要

構成マップを使用して渡された値は、ファイル マウントがコンテナーで利用できるようになるまでは、セキュリティ ポリシーには含まれず、ランタイムによっても検証されません。 データやアプリケーションのセキュリティに影響を与える可能性のある値は、実行中のアプリケーションに信頼させることはできないため、代わりに環境変数を使用してコンテナーで利用できるようにする必要があります。

{
    "location":"{location}",
    "properties":{
        "containers": [
        {
            "name":"{mycontainergroupprofile}",
            "properties": {
                "command":[],
                "environmentVariables":[],
                "image":"mcr.microsoft.com/azuredocs/aci-helloworld:latest",
                "ports":[
                    {
                        "port":8000
                    }
                ],
                "resources": {
                    "requests": {
                        "cpu":1,
                        "memoryInGB":1.5
                                }
                            }
                        }
                    }
                ],
                "imageRegistryCredentials":[],
                "ipAddress":{
                "ports":[
                    {
                        "protocol":"TCP",
                        "port":8000
                    }
            ],
            "type":"Public"
            },
            "osType":"Linux",
            "sku":"Confidential"
            }
        }


マネージド ID

Azure Container Instances のスタンバイ プールは、マネージド ID との統合をサポートしています。 マネージド ID の適用が実行されるのは、スタンバイ プールのコンテナーを要求し、identity パラメーターと設定を含めたときです。 マネージド ID は、コンテナー グループ プロファイル内で直接サポートされているプロパティではありません。

{
   "location": "{location}",
   "properties": {
       "standByPoolProfile":{
               "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.StandbyPool/standbyContainerGroupPools/{standbyPoolName}"
           },
           "containerGroupProfile": {
               "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.ContainerInstance/containerGroupProfiles/{mycontainergroupprofile}",
               "revision": {revisionNumber}
           },
          },
          "identity": {
            "type": "UserAssigned",
            "userAssignedIdentities": {
              "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identity}": {}
            },
           "containers": [
               {
                   "name": "{mycontainergroupprofile}",
                   "properties": {
                       "configMap": {
                           "keyValuePairs": {
                               "{newKey}": "{newValue}"
                           }
                       }
                   }
               }
           ]
   }
}

可用性ゾーン

Azure Container Instances のスタンバイ プールは、複数の可用性ゾーンにまたがるコンテナーの作成と要求をサポートしています。 現在、ゾーン スタンバイ プールを利用できるのは、バージョン 2024-08-01-preview を使いスタンバイ プール REST API を使用した場合だけであり、インド中部リージョンのみで使用可能です。

ゾーン スタンバイ プールを作成する

PUT https://management.azure.com/subscriptions/{SubscriptionID}/resourceGroups/myResourceGroup/providers/Microsoft.StandbyPool/standbyContainerGroupPools/myStandbyPool?api-version=2024-08-01-preview
 
Request Body
{
    "properties": {
        "elasticityProfile": {
            "maxReadyCapacity": 20,
            "refillPolicy": "always"
        },
        "containerGroupProperties": {
            "containerGroupProfile": {
                "id": "/subscriptions/{SubscriptionID}/resourceGroups/myResourceGroup/providers/Microsoft.ContainerInstance/containerGroupProfiles/mycontainergroupprofile",
                "revision": 1
          },
          "subnetIds": [
            {
              "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVNET/subnets/mySubnet"
            }
          ]
        },
        "zones": [
          "1",
          "2",
          "3"
        ]
      },

    "location": "West Central US"
}

次のステップ

Azure Container Instances のスタンバイ プールを作成します