TL

アーティファクトレジストリ

ビルドで生まれた成果物(コンテナイメージやライブラリ)を保管・配布する専用倉庫です。バージョン管理と脆弱性スキャンを備え、CI/CD の出力とデプロイの入力をつなぐ要になります。

基礎アーティファクトコンテナレジストリCI/CDバージョン管理最終更新: 2026-06-06
TL;DR要点だけ先に
  • 1.アーティファクトレジストリは、ビルド成果物(コンテナイメージ・パッケージ等)を保管・配布する専用ストレージ。
  • 2.不変なバージョン(タグ)で管理し、CI が作って push、デプロイ側が pull する。「作る」と「動かす」の受け渡し点。
  • 3.脆弱性スキャンや署名と組み合わせ、出所が確かで安全な成果物だけを本番に流す(サプライチェーン保護)。

アーティファクトレジストリとは

アーティファクト(artifact) とは、ビルドの結果できあがる 成果物 のことです。コンテナイメージ、Java の JAR、npm パッケージ、.zip で固めた配布物などが該当します。アーティファクトレジストリ は、これらを 保管し、必要なときに配布する専用の倉庫 です。

なぜ専用の倉庫が要るのでしょうか。ソースコードは Git で管理しますが、ビルド後の成果物は Git には向きません(サイズが大きい・バイナリで差分管理できない)。かといって各サーバでその都度ビルドし直すと、時間がかかるうえ「ビルドするたびに微妙に中身が違う」事態を招きます。一度ビルドした成果物を1か所に置き、どこからでも同じものを取り出せる ようにするのがレジストリの役割です。

CI/CD をつなぐ「受け渡し点」

レジストリの本質は、「作る(CI)」と「動かす(デプロイ)」の受け渡し点 になることです。流れはこうです。

  1. CI がビルド して成果物(例:コンテナイメージ)を作る。
  2. その成果物を レジストリへ push(登録) する。
  3. デプロイ時に、各環境が レジストリから pull(取得) して動かす。

ここで重要なのが 「一度だけビルドし、同じ成果物を全環境で使い回す」 という原則です。開発・ステージング・本番でビルドし直すのではなく、ステージングで検証した“まさにそのイメージ”を本番にも流す。これにより「テストした物と本番の物が違う」という事故を根絶できます。考え方はイミュータブルインフラ(/devops/immutable-infra/)と同じです。

Build once, deploy anywhere

環境ごとにビルドし直すと、依存ライブラリの版ずれなどで「ステージングは動いたのに本番で壊れる」が起きます。ビルドは1回、成果物を環境間で使い回す。環境ごとの違いは設定(環境変数)で吸収する——これが Twelve-Factor App(/devops/twelve-factor-app/)の発想です。

バージョン管理とタグ

レジストリ上の成果物は バージョン(タグ) で識別します。コンテナイメージなら myapp:1.4.2 のように「名前 : タグ」で指定します。

ここで初心者がつまずくのが latest タグ です。latest は「最新」という意味の ただの慣習的な名前 で、自動で最新を指すわけではありません。push のたびに別の中身を指しうるため、本番で latest を使うと「いつの間にか中身が変わっていた」「どの版が動いているか分からない」事態になります。

タグの付け方向き不向き
latest(可変)myapp:latest手元の試用◯ / 本番✕(中身が変わる)
セマンティックバージョンmyapp:1.4.2人が読みやすく、リリース管理に向く
コミットハッシュmyapp:a1b2c3dどのソースから作ったか厳密に追える
ダイジェスト(内容ハッシュ)myapp@sha256:...内容で固定。最も確実(不変)
本番で latest を使わない

本番デプロイで latest を指定すると、ロールバックしたくても「戻したい版がどれか分からない」状態に陥ります。本番は バージョンタグかダイジェストで固定 し、「いま動いているのは確実にこの成果物」と言い切れるようにしましょう。

脆弱性スキャンと署名

レジストリは単なる倉庫にとどまらず、安全性を担保するゲート としても機能します。代表的な機能が2つあります。

  • 脆弱性スキャン:登録された成果物(特にコンテナイメージ)に含まれる OS パッケージやライブラリを調べ、既知の脆弱性(CVE) がないかを検査します。「危険な版を含むイメージは本番に出さない」というポリシーを敷けます。依存ライブラリ側の検査は依存性スキャン(/devops/dependency-scanning/)と連携します。
  • 署名と検証:成果物に デジタル署名 を付け、デプロイ時に「正規のCIが作った、改ざんされていない物か」を検証します。なりすましたイメージが紛れ込むのを防ぎます。

これらは ソフトウェアサプライチェーンの保護 という文脈で重要度を増しています。「出所が確かで、既知の穴がない成果物だけを動かす」ための関所が、レジストリなのです。

代表的なレジストリ

扱う成果物の種類によって、いくつかのタイプがあります。

種類主な対象
コンテナレジストリコンテナイメージ(OCI)Docker Hub、GitHub Container Registry、各クラウドのレジストリ
パッケージレジストリ言語別パッケージnpm、Maven、PyPI(社内ミラーを含む)
汎用アーティファクト管理上記をまとめて扱うJFrog Artifactory、Sonatype Nexus

コンテナイメージは OCI(Open Container Initiative) という標準仕様に従うため、特定のツールに縛られず相互運用できます。社内向けには、外部レジストリの プロキシ/キャッシュ を立てて、取得の高速化と外部障害時の耐性を確保するのも定番です。

まとめ

  • アーティファクトレジストリは ビルド成果物(イメージ・パッケージ)を保管・配布する専用倉庫
  • 「作る(CI)」と「動かす(デプロイ)」の受け渡し点。一度ビルドした成果物を全環境で使い回すのが原則。
  • バージョン(タグ)で識別。本番では latest を避け、版やダイジェストで固定してロールバック可能に。
  • 脆弱性スキャン・署名 で、出所が確かで安全な成果物だけを流す関所として働く。

DevOps/インフラ Article

アーティファクトレジストリを実務で読む

TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。

解決すること

アーティファクト

比較で見る軸

難易度: basic / カテゴリ: DevOps/インフラ / タグ数: 4

導入後に効く点

不変なバージョン(タグ)で管理し、CI が作って push、デプロイ側が pull する。「作る」と「動かす」の受け渡し点。

先に潰すリスク

用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。

数字・仕様の読み方
難易度
basic
カテゴリ
DevOps/インフラ
タグ数
4

判断チェックリスト

  • 自社の用途が「アーティファクト / コンテナレジストリ」に近いか確認する。
  • 強みである「アーティファクトレジストリは、ビルド成果物(コンテナイメージ・パッケージ等)を保管・配布する専用ストレージ。」が本当に評価軸になるか確認する。
  • 注意点の「用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。」を運用で吸収できるか確認する。
  • 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
  • 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
  • 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。

次に確認する観点

アーティファクトコンテナレジストリCI/CDバージョン管理アーティファクトコンテナレジストリCI/CDバージョン管理
参考: 公式情報