無限ノック › DOP 練習問題一覧 › 問題
DOPSDLC の自動化

ある企業は、複数の独立したチームによって開発されている多数のNode.jsおよびPythonマイクロサービスを保有しています。チーム間で共通のライブラリ(社内専用のnpmパッケージやpipモジュール)をセキュアに共有し、外部のパブリックリポジトリに依存することなくCI/CDパイプライン上で安定してビルドを行いたいと考えています。要件を満たすフルマネージドなパッケージ管理ソリューションとして最適なものはどれですか。

A
AWS CodeArtifactを使用してドメインとリポジトリを作成し、IAMによるアクセス制御のもとで社内パッケージの保存と共有を行う
✓ 正解
AWS CodeArtifactは、npmやpipなどの一般的なパッケージマネージャーとネイティブに統合されたフルマネージドサービスです。組織内の共有ライブラリのセキュアな管理とIAMによるアクセス制御を提供し、本要件に完全に合致するソリューションです。
B
Amazon S3バケットを作成し、アーティファクトをアップロードして静的ウェブサイトホスティングを有効にしてパッケージインデックスとして公開する
S3バケットを簡易的なリポジトリとして使用することは技術的に可能ですが、npmやpipが期待するレジストリAPIプロトコルをネイティブにサポートしておらず、バージョン管理や依存関係解決の機能がないため、パッケージ管理として不適切です。
C
AWS CodeCommitを使用して共有ライブラリ専用のGitリポジトリを作成し、ビルド時に各マイクロサービスからgit submoduleとして参照する
Gitサブモジュールによるコード共有はバージョン管理の一部として機能しますが、コンパイル済みのバイナリやパッケージ化されたモジュールの依存関係解決ツール(npm/pip)としての役割を果たすものではなく、スケーラビリティに欠けます。
D
AWS Systems Manager Parameter Storeを使用してパッケージのバイナリデータをBase64エンコードして保存し、ビルド時に取得する
Parameter Storeはパスワードや設定値などの小さなテキストデータ(または暗号化されたシークレット)を保存するためのサービスであり、サイズ制限があるためソフトウェアパッケージのバイナリを保存・管理する目的には適していません。

解説

組織内でソフトウェアパッケージ(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)があるうえ、パッケージマネージャーとの統合も不可能なため、パッケージ配布には根本的に不適切です。

ドメイン別正答率・予想スコアでリアルタイムに実力把握

無限ノックでDOPを徹底対策。全問AI生成のオリジナル問題。

無料で演習を始める →
← DOP の問題一覧に戻る