VPCとは何か? あなたのプライベートなクラウドネットワーク
VPC(virtual private cloud)とは、クラウドプロバイダー内の隔離された仮想ネットワークであり、リソースのIPレンジ、サブネット、ルーティング、セキュリティルールを自分で制御できます。
VPCは、自分専用のデータセンターのネットワークのように振る舞うクラウドのプライベートな一部を提供します。アドレスレンジを定義し、サブネットを切り出し、何が何と通信できるかのルールを設定します。本番のサービス、データベース、そしてますますCIのrunnerもVPC内に存在するため、そこへデプロイするには正しいネットワークアクセスが必要です。
隔離されたネットワーク
VPC内のリソースはプライベートなアドレス空間を共有し、他のtenantから隔離されています。どの部分をインターネットに公開し、どの部分を内部に留めるかを自分で決めます。
VPCが含むもの
- パブリックとプライベートのサブネット。
- トラフィックを方向づけるroute table。
- インターネットとNAT egressのためのgateway。
- フィルタリングのためのsecurity groupとnetwork ACL。
VPCを接続する
VPCはpeeringやtransit gatewayで相互に、VPNでオンプレミスのネットワークとリンクできます。これにより、runnerは別のVPC内のプライベートなサービスを、公開せずに到達できます。
CI/CDにおけるVPC
プライベートなデータベースや内部サービスへデプロイするということは、pipelineがVPCへのネットワーク経路を持たなければならないことを意味します。パブリックインターネット上のホスト型runnerはしばしばそれができず、チームをVPC内に存在するrunnerへと向かわせます。
接続が失敗する理由
VPCの外にあるrunnerがプライベートエンドポイントへ接続すると、ルートがないため単にtimeoutします。修正はコードの変更ではなく、peeringされたrunnerやVPNといったネットワークアクセスです。
ネットワーク内のrunner
CIをVPC内で、あるいはそれとpeeringして実行すると、プライベートサービスへのデプロイトラフィックが高速に保たれ、それらを公開せずに済みます。Latchkeyは、あなたのネットワークの近くに置けるマネージドrunnerを運用し、一時的な瞬断をretryしつつ本当のルーティングの欠落は可視化したままにします。
重要なポイント
- VPCとは、アドレッシング、ルーティング、ルールを自分で制御する隔離されたクラウドネットワークです。
- プライベートリソースへ到達するには、VPCへの実際のネットワーク経路が必要です。
- プライベートエンドポイントへのtimeoutは、一時的な瞬断ではなくルーティングの問題です。