はじめに
AWS CodeArtifactに初めて触れたので自分なりの覚え方と理解を記していきます。
誤りを見つけ次第、修正していきます。
(Tech Blogは初めてなのでご容赦を、、)
AWS CodeArtifactとは
AWS CodeArtifactとはソフトウェアパッケージを保存・共有するためのサービスです。
AWSのドキュメントには以下のように記載されています。
AWS CodeArtifact は、組織がアプリケーション開発用のソフトウェアパッケージを保存および共有するのに役立つ、安全でスケーラブルなマネージドアーティファクトリポジトリサービスです。
CodeArtifact によって、インフラストラクチャのスケーリングに関する懸念や、独自のアーティファクトストレージシステムを管理する必要がなくなります。CodeArtifact リポジトリに保存できるパッケージの数や合計サイズに制限はありません。
AWS CodeArtifactは次のパッケージをサポートしています。(2025/05/25 時点)
- Cargo
- Generic
- Maven
- npm
- NuGet
- PyPl
- Ruby
- Swift
CodeArtifactを触り始めると、アーティファクト、アップストリームリポジトリなど、わからない単語が出てきたので、一つずつ説明する
単語集
パッケージとは
ある機能や対象に関連するクラスや関数などの宣言やコードをひとまとめに集めたプログラム部品のことを差します。
Pythonだとimport文で読み込むものです。
import numpy # numpyがパッケージにあたります
アーティファクトとは
IT分野でのアーティファクトの意味は「人工物」です。
人の手によって作られたものということなので、開発やPJ管理の過程で生成される成果物のことを差しています。
ここを深く考えるのはあまり意味のないことだと思うので、
- アーティファクトとは人の手によって作られたものなんだな、、
- 「Code」の「Artifact」なので、コードの成果物を管理してくれるんだな、、
と簡単に覚えておけばいいように気がします。
アップストリームとは
アップストリームとはパッケージやOSSソフトウェアの開発者とそれを利用する者との関係性を表す言葉。
上記の場合、
- パッケージやOSSソフトウェアの開発者をアップストリーム
という。
AWS CodeArtifactの登場人物
ドメイン
ドメインとは複数の下記で紹介するリポジトリをまとめるグループのようなものです。
ドメインはクロスアカウントで利用することができ、各組織のリポジトリを一つのドメインにまとめるといった使い方も可能です。
※注意点: ドメイン名はアカウント固有である必要があります。
これはドメインのURLが
<ドメイン名>-<アカウントID>.d.codeartifact.<リージョン名>.amazonaws.com
と一意に決まるためです。
リポジトリ
リポジトリとはパッケージを格納する箱のようなものです。
CodeArtifactのリポジトリではサポートされている複数の言語のパッケージを同一リポジトリに格納することができます。
※注意点: リポジトリ名はドメイン固有である必要があります。
アップストリームリポジトリ
各リポジトリのアップストリームとして登録するリポジトリ。
他のリポジトリAとBをリポジトリCのアップストリームとして登録することで、クライアントはリポジトリCのエンドポイントへのアクセスのみで、リポジトリA,B,Cのパッケージが利用できる。
AWS CodeArtifactではパブリックアップストリームリポジトリという機能もあり、これはパブリックリポジトリを自身が構築したプライベートリポジトリのアップストリームとして登録することで、プライベートリポジトリのエンドポイントへのアクセスのみでパブリックリポジトリのパッケージを取得できる。
現在、パブリックアップストリームリポジトリに登録できるリポジトリはこちら(2025/05/25 時点)
- cargo-store
- maven-central-store
- clojars-store
- commonsware-store
- google-android-store
- gradle-plugins-store
- npm-store
- nuget-store
- pypi-store
- rubygems-store
まとめ
AWS CodeArtifactを利用することで自身の利用するパッケージを管理することができます。
また組織におけるパッケージの管理においても、複数リポジトリの作成やアップストリームリポジトリの利用で簡単に管理することができます。
次回は、実際にCodeArtifactの簡単なハンズオンをまとめてみたいと思います。