Q44 — AWS DOP-C02 第1章

第 44/100 問 | ← 第1章

ある企業のDevOpsチームは、Node Package Manager(NPM)オープンソースライブラリを使用してアプリケーションを構築しています。DevOpsチームはAWS CodeBuildプロジェクト内でアプリケーションのビルドプロセスを実行しています。企業は、NPMライブラリをパブリックNPMレポジトリからダウンロードしています。 企業は、NPMライブラリをプライベートNPMレポジトリにホストしたいと考えています。また、DevOpsチームがライブラリの新バージョンを使用する前に、そのバージョンを検証する必要もあります。

正解: A. npmjs.orgをアップストリームレポジトリとして使用するAWS CodeArtifactレポジトリを作成します。アプリケーションのビルドプロセスを、CodeArtifactレポジトリをNPMのデフォルトソースとして使用するように構成します。CodeArtifact内のパッケージバージョンに対する必要な検証を実行するAWS CodePipelineパイプラインを作成します。検証が失敗した場合、パッケージのステータスを「非表示」に設定します。

解説

本問は、AWS環境でプライベートNPMレポジトリを構築し、バージョン審査を実現するソリューションを問うものです。AWS公式ドキュメントによると、CodeArtifactはプライベートレポジトリのホスティングをサポートし、アップストリーム設定でパブリックnpmレポジトリと連携できます。選択肢Aは、CodeArtifactでプライベートレポジトリをホストし、CodePipelineで検証フローを自動化し、失敗時にパッケージステータスを設定するものであり、追加のインフラ管理を必要としません。選択肢BはS3キャッシュではプライベートレポジトリをホストできません。選択肢C/DはCodeCommitをパッケージストレージとして使用しますが、個別管理が必要でnpmプロトコル仕様に準拠せず、構成の複雑さが増します。一方、選択肢AはCodeArtifactのネイティブ機能を直接活用し、操作手順が最も簡潔です。