Posted at

AWSでプライベートサブネットをTerraformで作ったらハマった

More than 1 year has passed since last update.


AWSでプライベートサブネットをTerraformで作ったらハマった

AWS上にVPCでプライベートサブネットを作成し、VPNサーバに接続したらEC2やRDSに接続するはずなのだが、なぜか新しく作った環境ではVPNサーバ以降につながらなくなった??なぜだ


デバッグ

VPNサーバからプライベートサブネット内のEC2にはつながるので、次の3者間でtcpdumpをとって通信を眺めてみた。

① ローカルからのSSH接続(テスト用)

>ssh -i ~/.ssh/private.pem ec2-user@x.x.x.x -vvvv

② ローカル~VPNサーバの通信観察

$ tcpdump src host 10.8.0.x

③ VPNサーバ~EC2の通信観察

$ tcpdump src host 10.8.0.x

これでわかったのは、ローカルPCからのSSHのパケットがVPNサーバまで流れていてEC2までは届いていないということ。


原因

現行サーバとTerraformで作ったサーバを比べていると、EC2の「送信元/送信先チェック」が有効になっていることに気づいた。これのせいでVPNサーバからほかのEC2への通信が遮断されていた。


解決


  • TerraformでこういうEC2作るときはsource_dest_checkfalseにしよう

resource "aws_instance" "my-server" {

source_dest_check = "false"
}