エラスティックコンテナインスタンスを作成する際に、イメージキャッシュを使用してイメージのプルを高速化し、インスタンスの起動時間を短縮できます。このトピックでは、イメージキャッシュの基本的な機能と課金対象項目について説明します。また、イメージキャッシュの作成方法と使用方法についても説明します。
機能の説明
コンテナを実行する前に、Elastic Container Instance は指定されたイメージをプルする必要があります。不安定なネットワークを介して大きなイメージをプルすると、エラスティックコンテナインスタンスの起動に時間がかかります。エラスティックコンテナインスタンスの作成を高速化するために、Elastic Container Instance はイメージキャッシュ機能を提供します。イメージに基づいてスナップショットを作成し、そのスナップショットを使用してエラスティックコンテナインスタンスを作成できます。これにより、イメージレイヤーのダウンロードが回避または最小限に抑えられ、インスタンスの作成が高速化されます。
たとえば、Docker Hub 上にある約 386.26 MB の Flink イメージに基づいてエラスティックコンテナインスタンスを作成する場合、イメージの準備には 50 秒かかります。イメージキャッシュを使用すると、イメージの準備に時間はかかりません。これにより、インスタンスの起動に必要な時間が大幅に短縮されます。
イメージキャッシュの使用による時間短縮量は、エラスティックコンテナインスタンスの作成に使用されるイメージの数、イメージのサイズ、イメージリポジトリのネットワーク状態によって異なります。
イメージキャッシュの作成方法
イメージキャッシュは、手動または自動で作成できます。
コストを節約するために、自動的に作成されたイメージキャッシュを使用することをお勧めします。初めてエラスティックコンテナインスタンスを作成するときに、イメージキャッシュを使用して作成を高速化するには、事前に手動でイメージキャッシュを作成する必要があります。
イメージキャッシュを手動で作成する
ビジネス要件に基づいて、イメージキャッシュの名前やサイズなどのパラメータを設定できます。次の図は、イメージキャッシュを手動で作成する方法を示しています。
イメージキャッシュが作成されるたびにスナップショットが作成されます。手動で作成されたイメージキャッシュは、自分で管理します。
イメージキャッシュの作成中に、システムは一時的なエラスティックコンテナインスタンスを作成し、一時的なパフォーマンスレベル 1(PL1)拡張SSD(ESSD)を一時インスタンスにアタッチします。一時インスタンスは 2 vCPU と 4 GiB のメモリを提供します。一時インスタンスは、指定されたイメージをプルして ESSD に格納します。次に、システムは ESSD のスナップショットを作成します。イメージキャッシュが作成されると、一時インスタンスと ESSD は自動的に解放されます。
インスタントイメージキャッシュ機能は、イメージキャッシュの作成に必要な時間を短縮します。この機能を有効にすると、システムはインスタントアクセス機能を有効にして、一時的なオンプレミススナップショットを作成します。次に、オンプレミススナップショットを使用してエラスティックコンテナインスタンスを作成できます。
説明オンプレミススナップショットが作成されると、システムは標準スナップショットの作成を開始します。標準スナップショットの作成中は、オンプレミススナップショットに対応するイメージキャッシュを使用して、エラスティックコンテナインスタンスを作成できます。標準スナップショットが作成されると、システムはオンプレミススナップショットを削除します。次に、標準スナップショットに対応するイメージキャッシュを使用して、エラスティックコンテナインスタンスを作成できます。
イメージキャッシュ再利用機能は、イメージキャッシュの作成を高速化できます。この機能を有効にすると、イメージキャッシュの作成時に、システムは既存のイメージキャッシュを自動的に照合します。既存のイメージキャッシュに、作成するイメージキャッシュと重複するイメージレイヤーがある場合、システムは重複するイメージレイヤーを再利用して、新しいイメージキャッシュの作成を高速化します。
イメージキャッシュを自動的に作成する
エラスティックコンテナインスタンスを作成するときに、イメージキャッシュの自動照合を有効にすることができます。次に、イメージキャッシュが一致しない場合、システムはエラスティックコンテナインスタンスの作成中にイメージキャッシュを自動的に作成します。次の図は、イメージキャッシュを自動的に作成する方法を示しています。
イメージキャッシュが作成されるたびにスナップショットが作成されます。自動的に作成されたイメージキャッシュは、Alibaba Cloud によって管理されます。
イメージキャッシュの作成中に、システムは一時的なエラスティックコンテナインスタンスを作成します。一時インスタンスは、指定されたイメージをプルして、インスタンスの一時ストレージスペースに格納します。次に、システムは一時ストレージスペースのスナップショットを作成します。イメージキャッシュが作成されると、一時インスタンスは自動的に解放されます。
説明デフォルトでは、各エラスティックコンテナインスタンスに 30 GiB の一時ストレージスペースが割り当てられます。指定するイメージのサイズが 30 GiB より大きい場合は、一時ストレージスペースに追加のサイズを指定する必要があります。詳細については、一時ストレージスペースのスケールアップを参照してください。
比較
次の表は、手動で作成されたイメージキャッシュと自動で作成されたイメージキャッシュを比較しています。
項目 | 手動で作成されたイメージキャッシュ | 自動的に作成されたイメージキャッシュ |
名前 | インスタンスの名前を指定できます。 | システムは、 |
サイズ | デフォルト値は 20 GiB です。別の値を指定できます。 | デフォルト値は 30 GiB です。エラスティックコンテナインスタンスの作成時に一時ストレージスペースのサイズを指定した場合、イメージキャッシュのサイズは 30 GiB と一時ストレージスペースのサイズの合計になります。 |
保持期間 | デフォルトでは、手動で作成されたイメージキャッシュは永続的に保持されます。保持期間を日数で設定することもできます。手動で作成されたイメージキャッシュは、保持期間が経過すると自動的に削除されます。 | デフォルトでは、保持期間は Alibaba Cloud によって管理されます。
|
イメージキャッシュの再利用 | この機能を有効にすると、既存のイメージキャッシュと作成されるイメージキャッシュで重複するイメージレイヤーを再利用できます。これにより、イメージキャッシュの作成が高速化されます。 | サポートされていません |
インスタントイメージキャッシュ | この機能を有効にすると、一時的なローカルスナップショットを作成し、イメージキャッシュをすぐに使用できるようにします。 | サポートされていません |
クォータ | ListUsage API オペレーションを呼び出すことで、クォータを表示できます。また、Elastic Container Instance コンソールにログインし、左側のナビゲーションペインで権限とクォータをクリックすることでも、クォータを表示できます。 クォータがビジネス要件を満たせない場合は、チケットを送信してクォータの引き上げをリクエストしてください。 | クォータがビジネス要件を満たせない場合は、チケットを送信してクォータの増加をリクエストしてください。 |
削除ポリシー | デフォルトでは、既存のイメージキャッシュの数がクォータ制限に達すると、手動でイメージキャッシュを作成できなくなります。 CreateImageCache または UpdateImageCache API オペレーションを呼び出し、EliminationStrategy パラメータを LRU に設定できます。このようにすると、既存のイメージキャッシュの数がクォータ制限に達すると、システムは最後に使用された(LRU)イメージキャッシュを自動的に削除します。 | 既存のイメージキャッシュの数がクォータ制限に達すると、システムは LRU ルールに基づいて最後に使用されたイメージキャッシュを自動的に削除します。 |
使用コスト | 手動で作成されたイメージキャッシュの作成と使用に対して課金されます。 | 自動的に作成されたイメージキャッシュの使用に対してのみ課金され、作成に対しては課金されません。 |
イメージキャッシュの使用方法
イメージキャッシュ機能を使用して、エラスティックコンテナインスタンスの作成を高速化できます。イメージキャッシュ機能を使用してエラスティックコンテナインスタンスを作成する場合は、イメージキャッシュの自動照合を設定するか、イメージキャッシュを指定してインスタンスを作成できます。
使用方法 | 説明 |
イメージキャッシュの自動照合を設定する | システムは、最適なイメージキャッシュを自動的に照合します。システムは、次の順序でイメージキャッシュを照合します。
説明 イメージキャッシュが一致しない場合、システムはエラスティックコンテナインスタンスの作成時にイメージキャッシュを自動的に作成します。イメージは、インスタンスの作成時にプルされます。イメージレイヤーの繰り返しダウンロードを防ぎ、イメージキャッシュ機能の使用に影響を与えないように、イメージプルポリシーを IfNotPresent に設定することをお勧めします。 |
イメージキャッシュを指定する | エラスティックコンテナインスタンスの作成に使用するイメージキャッシュを指定します。イメージキャッシュは Ready 状態である必要があります。 |
注意事項
1 つのイメージキャッシュには最大 20 個のイメージを含めることができます。
イメージキャッシュを作成するには、コンテナイメージをプルする必要があります。したがって、イメージキャッシュの作成期間は、プルするイメージの数、イメージキャッシュの作成に使用されるイメージのサイズ、ネットワーク状態などの要因によって異なります。
イメージキャッシュを手動で作成する場合は、指定したコンテナイメージが使用されます。システムがイメージキャッシュを自動的に作成する場合は、エラスティックコンテナインスタンスで宣言したコンテナイメージが使用されます。
Alibaba Cloud Container Registry でホストされていないプライベートイメージを選択した場合は、プライベートイメージが属するリポジトリの IP アドレス、ユーザー名、パスワードなどのアクセスクレデンシャルを提供する必要があります。
選択したイメージ(Docker イメージなど)をインターネット経由でプルする必要がある場合は、エラスティックコンテナインスタンスにエラスティック IP アドレス(EIP)または NAT ゲートウェイを設定する必要があります。詳細については、エラスティックコンテナインスタンスのインターネットアクセスを有効にするを参照してください。
リモートリポジトリのタイムアウトエラーなど、何らかの理由でイメージをプルできない場合は、ACR を使用してイメージを Alibaba Cloud イメージリポジトリにアップロードすることをお勧めします。
手動で作成されたイメージキャッシュの場合、不要なスナップショット料金を避けるために、イメージキャッシュを作成するときに保持期間を設定することをお勧めします。自動的に作成されたイメージキャッシュの場合、Alibaba Cloud がスナップショットを管理します。スナップショットの保持期間を気にする必要はありません。
イメージキャッシュが作成された後、イメージキャッシュの作成イベントを通じてイメージキャッシュの作成プロセスを確認できます。システムは最大 50 個の最新の作成イベントを保持できます。
課金
フェーズ | 手動で作成されたイメージキャッシュ | 自動的に作成されたイメージキャッシュ |
イメージキャッシュを作成する | 課金対象項目:
| 無料 |
イメージキャッシュを使用する | 課金対象項目:ディスク。 | イメージキャッシュのサイズが 30 GiB を超える場合は、一時ストレージスペースを拡張する必要があります。追加のスペースに対して課金されます。 |
イメージキャッシュの課金の詳細については、イメージキャッシュを参照してください。