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

Node.jsアプリケーションのCodeBuildプロジェクトでビルド時間が平均15分かかっています。ビルドログを分析した結果、npm install(npmはNode.jsのパッケージマネージャー)の実行に11分を占めることが判明しました。package.jsonの依存パッケージは週1〜2回程度しか変更されません。最小限の設定変更でビルド時間を大幅に短縮するために最も効果的な対策を2つ選んでください。

A
CodeBuildプロジェクトのキャッシュ設定でS3キャッシュを有効化し、buildspec.ymlのcache.pathsセクションにnode_modulesディレクトリを指定する
✓ 正解
S3キャッシュを有効化しnode_modulesをキャッシュパスに指定すると、package.jsonが変わらない限り次回ビルドでnpm installをスキップでき、設定変更も最小限で大幅な時間短縮が見込めます。
B
Amazon ECRにnode_modulesを事前インストールしたカスタムDockerビルド環境イメージを作成・登録し、CodeBuildのカスタムイメージとして使用する
✓ 正解
依存関係を事前インストールしたカスタムDockerイメージをビルド環境に使うことで、コンテナ起動時点でnode_modulesが利用可能となり、npm installの時間をほぼゼロにできます。
C
CodeBuildのコンピューティングタイプをsmall(2 vCPU)からlarge(8 vCPU)に変更してnpm installの並列処理を高速化する
ビルドのボトルネックはネットワークI/Oバウンドなnpm installであり、vCPUを増やしても短縮効果は限定的でコストだけが増加します。
D
buildspec.ymlでnpm installの代わりにnpm ciコマンドを使用し、package-lock.jsonから決定論的(deterministic:実行のたびに同じ結果になる)なインストールを行う
npm ciはpackage-lock.jsonから決定論的にインストールする再現性目的のコマンドで、依存解決は速いものの根本的なダウンロード時間は変わらず効果は限定的です。
E
CodeBuildプロジェクトをVPC内に配置してNATゲートウェイ経由でnpmレジストリに接続しネットワーク経路を最適化する
VPC配置はNATゲートウェイ経由となりむしろレイテンシやコストが増える可能性があり、ビルド時間短縮には寄与しません。

解説

S3キャッシュはnode_modulesを次回ビルドで再利用でき、パッケージ変更がない限りnpm installを大幅に短縮します。カスタムDockerイメージに依存関係を事前インストールすることでコンテナ起動時から即利用可能になります。 選択肢CのコンピューティングタイプはI/Oバウンドな処理のためCPU増加の効果は限定的。 選択肢DのNPM ciはインストール速度でなく再現性を目的としたコマンド。 選択肢EのVPC配置はNATゲートウェイ経由でむしろ遅くなる場合があります。

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

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

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