ある企業は、複数の独立したチームによって開発されている多数のNode.jsおよびPythonマイクロサービスを保有しています。チーム間で共通のライブラリ(社内専用のnpmパッケージやpipモジュール)をセキュアに共有し、外部のパブリックリポジトリに依存することなくCI/CDパイプライン上で安定してビルドを行いたいと考えています。要件を満たすフルマネージドなパッケージ管理ソリューションとして最適なものはどれですか。
組織内でソフトウェアパッケージ(npm、PyPI、Maven、NuGetなど)をセキュアに保存、公開、共有するためのAWSのフルマネージドサービスは「AWS CodeArtifact」です。CodeArtifactは組織全体でパッケージを管理するための「ドメイン」と、特定のパッケージコレクションを保持する「リポジトリ」の概念を提供します。AWS IAMと完全に統合されているため、どの開発者やCI/CD環境(CodeBuildなど)がどのパッケージを発行・取得できるかを厳密に制御できます。また、パブリックレジストリ(npm registryなど)に対するキャッシュプロキシ(アップストリームリポジトリ)としても機能するため、外部の障害に依存することなく、CI/CDパイプラインにおけるビルドの安定性とセキュリティを大幅に向上させることができます。 選択肢BのS3静的ウェブサイトホスティングは、npmやpipといったパッケージマネージャーのプロトコルに対応しておらず、パッケージの依存関係解決やバージョン管理の仕組みも持たないため、パッケージリポジトリとして機能させることはできません。 選択肢CのCodeCommit+git submoduleは、Gitリポジトリとしてのソースコード管理はできますが、npmパッケージやpipモジュールとしての配布・インストールには対応しておらず、マイクロサービスが増えるにつれてsubmoduleの管理が複雑化します。 選択肢DのParameter Storeはシークレットや構成パラメーターの保存を目的としたサービスであり、バイナリデータのBase64格納はサイズ制限(最大8KB)があるうえ、パッケージマネージャーとの統合も不可能なため、パッケージ配布には根本的に不適切です。