小ネタ。AWSのNATゲートウェイは業務では利用することが多いし自分で作ったりもしていた。個人アカでは利用したことがなかったが、先日必要に迫られて作ってみた。

というのは、Fargate-EKSクラスタを作成する際、FargateのPodが起動するノードはプライベートサブネットに配置する必要があるからだ。外に出る口がないとコントロールプレーンと通信できなくて起動しないんじゃないか?と予想したらやはりその通りだったので、起動途中で詰まっている間にチャチャッとNATゲートウェイを作ったら、サクッとPodが起動した。

 

で、NATゲートウェイの作成自体は特に難しいことはなく、業務でやっていた記憶を辿ってなんとなくやったらできた。しかし後で参照できるように記録を残す。

パブリックサブネットとプライベートサブネットは作成済みとして、大まかには以下の対応となる。

  1. NATゲートウェイを作成。パブリックサブネットに所属させる。
  2. プライベートサブネットのルートテーブルに1.のNATゲートウェイを関連付ける。

 

NAT Gateway NAT Gateway

 

プライベートサブネットのルートテーブルを編集する。

NAT Gateway NAT Gateway

 

これで、プライベートサブネット上のPod/インスタンスが外に出ていけるようになる。

 

NATゲートウェイは課金対象なので、Fargateの検証が済んだらすかさず削除する。EKSクラスタはTerraformで作ったので、削除時もterraform destroyであっさり削除。楽ちんだな〜!

ではNATゲートウェイの作成も自動化すればいいじゃないかというと、マネコン操作でも1分でできてしまうので、このままでもいいやと思ってしまうんだな。でもせっかくだから次回はNATゲートウェイも一緒にTerraformで作ってしまおうかな?

 

Lake Lake Lake


関連がありそうな記事