プライベートネットワークとは何か? 内部限定の接続性
プライベートネットワークとは、ホストがその内部からのみ到達可能なネットワークであり、パブリックインターネットではルーティングできないプライベートアドレスを使います。
データベースや内部APIのような機密性の高いシステムは、オープンなインターネットから到達できないよう、通常プライベートネットワークに置かれます。内部にある、あるいは明示的に接続されたホストだけがそれらと通信できます。これはそれらを保護しますが、pipelineがデプロイするために内部への経路を持たなければならないため、CIを複雑にします。
インターネットでルーティングできない
プライベートネットワークは、パブリックインターネットがルーティングしない予約済みのアドレスレンジを使います。外部のホストはプライベートアドレスに直接到達できず、それこそが狙いです。
サービスがプライベートになる理由
- インターネットから隠すことで攻撃面を減らす。
- 内部限定のサービスを内部に留める。
- コンプライアンスとデータ隔離の要件を満たす。
外部から内部へ到達する
プライベートネットワークへ接続するには、意図的な経路が必要です。VPN、bastion host、VPC peering、またはネットワーク内に置かれたrunnerです。それがないと、コネクションはtimeoutします。
プライベートネットワークとCI
プライベートなデータベースへデプロイするということは、pipelineがプライベートネットワークへのネットワークアクセスを必要とすることを意味します。パブリックなホスト型runnerは通常それに到達できないため、チームは内部に存在するか、それとpeeringされたrunnerを使います。
ルートなしを診断する
応答のないtimeoutは通常、サービスがダウンしているのではなく、プライベートホストへのルートがないことを意味します。修正はリクエストのretryではなく、runnerを内部へpeeringするといった接続性です。
プライベートに到達できるrunner
CIをプライベートネットワークの近くに置くと、デプロイトラフィックが内部で高速に保たれます。Latchkeyのマネージドrunnerは、あなたのプライベートリソースの近くに置けて、一時的な瞬断をretryしつつ、本当のルートなしのtimeoutは修正できるよう可視化したままにします。
重要なポイント
- プライベートネットワークは、ホストをパブリックインターネットから切り離し、内部からのみ到達可能に保ちます。
- 内部への到達には、VPN、bastion、peering、または内部に置かれたrunnerが必要です。
- プライベートホストへのtimeoutは通常ルートがないことを意味し、retryでは直せません。