DOPSDLC の自動化
DevOpsエンジニアはCodeBuildをVPC内のプライベートサブネットで実行するよう設定し、同VPC内のAmazon OpenSearch Serviceクラスターに対して統合テストを実行できるようにしました。しかしビルド中にnpmパッケージのダウンロードが失敗するようになりました。プライベートサブネットのルートテーブルにはインターネットゲートウェイへのルートがありません。最小限の変更でOpenSearch Serviceへのアクセスを維持しつつnpmダウンロードも可能にする方法はどれですか?
ACodeBuildに割り当てるサブネットをパブリックサブネットに変更し、セキュリティグループでAmazon OpenSearch Serviceとの通信を許可する
VPCモードで実行されるCodeBuildはパブリックサブネットに配置してもパブリックIPが自動割り当てされないため、インターネット接続は依然として確立されずnpmダウンロードの問題は解決しません。
BVPCのパブリックサブネットにNATゲートウェイを作成し、プライベートサブネットのルートテーブルにNATゲートウェイへのデフォルトルート(0.0.0.0/0)を追加する
✓ 正解
VPC内のCodeBuildはデフォルトでインターネット接続を失います。プライベートリソース(Amazon OpenSearch Service)へのアクセスを維持しながらインターネット上のnpmレジストリにもアクセスするには、NATゲートウェイが最もシンプルな解決策です。
CCodeArtifactリポジトリを作成してnpmパッケージをキャッシュし、VPCエンドポイント経由でCodeArtifactにアクセスするよう設定する
CodeArtifactにVPCエンドポイントを設定してnpmをキャッシュする方法も有効ですが、CodeArtifactリポジトリの作成・npm設定変更・VPCエンドポイントの追加と初期構築コストが高く「最小限の変更」とはいえません。
DCodeBuildのbuildspecにHTTP_PROXY・HTTPS_PROXY環境変数を設定し、VPC内に構築したSquidプロキシ経由でインターネットアクセスをルーティングする
Squidプロキシは追加のEC2インスタンス管理が必要で運用オーバーヘッドが増加します。
解説
VPC内のCodeBuildはデフォルトでインターネット接続を失います。プライベートリソース(Amazon OpenSearch Service)へのアクセスを維持しながらインターネット上のnpmレジストリにもアクセスするには、NATゲートウェイが最もシンプルな解決策です。
選択肢AのVPCモードで実行されるCodeBuildはパブリックサブネットに配置してもパブリックIPが自動割り当てされないため、インターネット接続は依然として確立されずnpmダウンロードの問題は解決しません。
選択肢CのCodeArtifactにVPCエンドポイントを設定してnpmをキャッシュする方法も有効ですが、CodeArtifactリポジトリの作成・npm設定変更・VPCエンドポイントの追加と初期構築コストが高く「最小限の変更」とはいえません。
選択肢DのSquidプロキシは追加のEC2インスタンス管理が必要で運用オーバーヘッドが増加します。
ドメイン別正答率・予想スコアでリアルタイムに実力把握
無限ノックでDOPを徹底対策。全問AI生成のオリジナル問題。
無料で演習を始める →