DVAデプロイ
ある企業の複数の開発チームが、社内共通のPythonライブラリと公開のPyPIパッケージを併用しています。CodeBuildのビルドで、社内ライブラリを安全に共有しつつ、公開パッケージも単一のエンドポイントから取得できるようにしたいと考えています。最も適切なサービスと構成はどれですか。
AAWS CodeArtifactでリポジトリを作成し、PyPIをアップストリームリポジトリとして設定して両方を1エンドポイントで配信する
✓ 正解
CodeArtifactは社内パッケージの共有とPyPIのアップストリーム接続を両立し、公開・社内の両方を単一エンドポイントから配信・キャッシュできる。IAM連携と要件に最も合致する。
BAmazon S3バケットに社内ライブラリと公開パッケージのコピーを配置し、pipのインデックスURLに指定する
S3に手動コピーするとインデックス生成・バージョン管理・公開パッケージの更新を自前運用する必要があり、pipの依存解決と整合させるのが困難で運用負荷が高い。
CAmazon ECRに社内ライブラリをイメージとして保存し、ビルド時にpullして展開する
ECRはDockerイメージなどのOCIアーティファクト用レジストリで、Pythonパッケージのpipインデックスとして配信する用途には設計されておらず不適切。
DAWS CodeCommitに社内ライブラリを置き、buildspecでgit cloneしてからpip installする
CodeCommit+git cloneは社内ライブラリ配布のみで、公開PyPIを同一エンドポイントに統合できず、pipの標準的な依存解決にも乗らないため要件を満たさない。
解説
AWS CodeArtifactはマネージドなアーティファクトリポジトリで、pip/npm/Maven等に対応します。社内パッケージを公開・共有しつつ、PyPIなどの公開リポジトリをアップストリームとして接続すると、外部パッケージはCodeArtifact経由でプロキシ・キャッシュされ、開発者は単一エンドポイントから両方を取得できます。
IAMで権限管理でき、取得済み公開パッケージのバージョンも固定保持されます。
選択肢BのS3手動コピーは、依存解決やバージョン管理・更新を自前で行う必要があり運用負荷が高い。
選択肢CのECRはコンテナイメージ用レジストリであり、Pythonパッケージのインデックス配信には適さない。
選択肢DのCodeCommit+git cloneは公開PyPIパッケージを単一エンドポイント化できず、依存解決もpipの仕組みに乗らない。
ドメイン別正答率・予想スコアでリアルタイムに実力把握
無限ノックでDVAを徹底対策。全問AI生成のオリジナル問題。
無料で演習を始める →