はじめに

Cloud Run など、コンテナを利用する際のコンテナレジストリサービスとして知られるContainer Registry が 非推奨となることが通知されましたので、それに伴う、変更点や移行の一例について記載します。

概要

2023年5月15日のアップデートにて Google Cloud (旧GCP) の Container Registry が非推奨となり、当該機能は Artifact Registry へ 置き換えられることが通知されました。

自身が考えるそれらのサービスの違いについて簡単に触れていきます。
以下触れられていない脆弱性スキャンやVPCサービスコントロールによるサービス境界追加などの利用は引き続き可能となり、あくまでも自身が考える内容となります。

サービスの差異

ここのリストで比較いただくのが一番わかりやすいですが、私が差分として気にしておきたいと思う点を以下に記載します。

保存がサポートされている形式

Container Registry では コンテナイメージのみが保存対象としてサポートされますが、Artifact Registryではコンテナイメージだけでなく、言語パッケージ、OSパッケージがサポートされます。
Cloud Run でコンテナを利用せずにソースからサービスを稼働させるには、Artifact Registryを利用することで実現できますので、実現できる内容にも差分があります。詳細はこちらを御覧ください。

リポジトリモード

Container Registry では単純なコンテナイメージを保存するのみでしたが、仮想リポジトリリモートリポジトリとして機能することが可能になる見込みです(2023/5時点でGAされていない機能となります)。

レジストリの作成

Container Registryでは Cloud Storage の作成が必須であり、権限を考える上でも、Cloud Storageの考慮が必要でした。
Artifact Registry ではリポジトリ単体で管理でき、権限の制御も可能となります。

監査ログ

Container Registryでは対象外でしたが、Artifact Registryでは監査ログの対象となります。

ストリーミング

Container Registryでは対象外でしたが、Artifact Registryでは GKEDataproc Serverlessにてストリーミングが可能となります。
それに伴い、スケーリング速度の向上、イメージサイズが大きい場合のレイテンシ削減が見込めるため、当たり前に利用している方も多いかと思います。

移行の一例

社内でContainer Registry を利用している検証環境があったので、Artifact Registryへ変更してみました。

用途

Cloud Run のコンテナの保存先とContainer Registry を利用しておりました。
またそのビルドはCloud Build で行われており、Cloud Build でContainer Registryへビルド後のコンテナを保存していました。

変更点

※API有効化、レポジトリの作成は事前に済んでいる想定且つ、Artifact Registry の権限制御を詳細に行う場合(記載時点でGAされていません)には、Cloud Build のサービスアカウントのIAM権限を変更する必要があります
Cloud Build で指定しているContainer Registry に向けている箇所を Artifact Registry へ変更します。

変更前
gcr.io/$PROJECT_ID/リポジトリ名:$COMMIT_SHA
変更後
asia-northeast1-docker.pkg.dev/$PROJECT_ID/リポジトリ名/イメージ名:$COMMIT_SHA

私の環境では、上記の通り変更後、無事にデプロイされていることが確認できました。
Container RegistryはCloud Storageの使用量に基づいて請求されるため、無事にデプロイが確認でき、ある程度運用できることがわかる、切り戻しが不要である、ことが分かり次第、Container Registry側は削除することをおすすめします。
※Container Registryのイメージを削除することでリポジトリが削除されました

補足

記載した内容は一例であるため、すでに記載済みですがリンク内の移行に関する内容をご確認のうえ実施ください。

所感

Container Registryがついに非推奨となりました。ここのブログの投稿からArtifact Registry のGAを知り、そのほど長い期間経たずして推奨サービスの入れ替わりとなり、改めてクラウドのスピードを感じました。引き続き、情報を追いかけて、気になるアップデート情報や技術情報をお知らせしたいと思います。