関連するイメージをファミリーにグループ化することで、常に最新バージョンのイメージからインスタンスを起動でき、イメージの非推奨化または削除による組み込みのロールバック機能も利用できます。
イメージ ID の代わりにイメージファミリーを使用して Elastic Compute Service (ECS) インスタンスを作成すると、ECS はそのファミリー内で最も新しい利用可能なイメージを選択します。ロールバックするには、現在の最新イメージを非推奨化または削除します。そうすると、ECS はその次に新しいイメージにフォールバックします。
仕組み
イメージファミリーは、RunInstances API および CreateInstance API で ImageFamily パラメーターを使用します。ImageId の代わりに ImageFamily を設定すると、起動時にそのファミリーが最新の利用可能なイメージに解決されます。
最新イメージの選択ルール: ECS は、作成タイムスタンプが最も新しいイメージを選択します。たとえば、ファミリーに 2020 年 1 月 1 日と 1 月 3 日に作成されたイメージが含まれている場合、ECS は 1 月 3 日のイメージを選択します。
マルチリージョンでのデプロイでは、ECS はグローバルで最新のイメージではなく、ターゲットリージョン内で最新の利用可能なイメージを選択します。
イメージファミリーに基づくインスタンス作成は、API 経由でのみサポートされています。ECS コンソールではこの機能はサポートされていません。
サポートされるイメージタイプ
すべてのイメージタイプでイメージファミリーがサポートされています。次の表に、各タイプでのファミリー情報の割り当て方法を示します。
| イメージタイプ | イメージファミリーの動作 |
|---|---|
| パブリックイメージ | デフォルトでファミリー情報を持っています。詳細については、「パブリックイメージの概要」をご参照ください。 |
| カスタムイメージ | イメージの作成時または属性の変更によってファミリーを割り当てます。詳細については、「イメージファミリーの設定」をご参照ください。ファミリー名は acs で始めることはできません。コピーは、ソースイメージのファミリーを継承しません。 |
| 共有イメージ | ソースのカスタムイメージがファミリーに属している場合、そのファミリーを継承します。共有元には元の名前が表示されますが、共有先には acs:<共有元アカウントの UID>:<ファミリー名> が表示されます。 |
| コミュニティイメージ | ソースのカスタムイメージがファミリーに属している場合、そのファミリーを継承します。プロバイダーには元の名前が表示されますが、他のユーザーには acs:<イメージプロバイダーの UID>:<ファミリー名> が表示されます。 |
アカウント間でのファミリー名の可視性
次の例は、アカウントのロールによってファミリー名がどのように異なるかを示しています。
ユーザー M は、カスタムイメージ A1 と B1 を所有しており、両方ともイメージファミリー A に属しています。ユーザー M は A1 をコミュニティイメージ A2 として公開し、B1 を共有イメージ B2 としてユーザー N に共有します。
| イメージ | ユーザー N に表示されるファミリー名 |
|---|---|
| コミュニティイメージ A2 | acs:<ユーザー M の UID>:A |
| 共有イメージ B2 | acs:<ユーザー M の UID>:A |
例 1: ユーザー N が ImageFamily を acs:<ユーザー M の UID>:A に設定して RunInstances API または CreateInstance API を呼び出します。ECS は、そのファミリー内の最新の利用可能なイメージ (A2 または B2) を選択してインスタンスを作成します。
例 2: ユーザー N が B2 をコピーしてカスタムイメージ B3 を作成します。B3 は B2 のファミリーを継承しません。ユーザー N は B3 に個別にファミリーを割り当てる必要があります。
例 3: ユーザー M が (A1 をコミュニティイメージとして公開せずに) B1 を B2 としてユーザー N に共有した場合でも、ユーザー N は acs:<ユーザー M の UID>:A を参照して B2 を使用したインスタンスを作成できます。
例 4: カスタムイメージのファミリー名は acs で始めることはできません。ユーザー N は、共有イメージ B2 とコミュニティイメージ A2 を含む acs:<ユーザー M の UID>:A ファミリーにカスタムイメージを追加することはできません。
以前のバージョンへのロールバック
現在の最新の利用可能なイメージを非推奨化または削除します。そうすると、ECS はそのファミリーを次に新しい利用可能なイメージに解決します。
カスタムイメージの非推奨化または復元は、ECS コンソールで行うか、ModifyImageAttribute API を呼び出して行います。詳細については、「イメージの非推奨化または復元」をご参照ください。
ファミリー内の最新の利用可能なイメージを照会するには DescribeImageFromFamily API を使用し、特定のイメージのファミリー名を取得するには DescribeImages API を使用します。
非推奨化されたイメージの動作: 非推奨化されたカスタムイメージは、引き続きインスタンスの作成やシステムディスクの交換に使用できますが、共有またはコピーすることはできません。
フローチャート
以下の図は、イメージファミリーのワークフローを示しています。
制限事項
| 制約 | 詳細 |
|---|---|
| リージョンごとのイメージファミリー数 | Alibaba Cloud アカウントごとに 100 |
| ファミリーごとのイメージ数 | 100 |
| ファミリー名の一意性 | リージョンごとにアカウント内で一意です。同じ名前をリージョン間で再利用できます。 |
| カスタムイメージのファミリー名 | acs で始めることはできません |
| ファミリーの変更または削除 | 一度割り当てられると、ファミリーは変更できますが、削除はできません |
| イメージのコピー | コピーは、ソースイメージのファミリーを継承しません |
| 非推奨化:イメージタイプ | カスタムイメージのみが非推奨化または復元できます |
| 非推奨化:共有イメージ | イメージを非推奨化する前に共有を停止する必要があります |