背景
この記事で、プライベートサブネットのEC2に接続できました。
次にpostgresqlのパッケージをEC2にインストールしたいです。ですが、プライベートサブネットに配置したEC2はインターネットに出ることができません。インターネットに出れないので、yumが通りません。
プライベートサブネットにEC2を置くとセキュリティ的なメリットは享受できます。しかし、運用などにはそれなりの手間をかける必要があります。
S3のエンドポイントを用意する
おなじみのterraformでの実装です。サブモジュールの結果を使用しているので、コピペでは動かないです。
まずは、これでエンドポイントを作ります。
resource "aws_vpc_endpoint" "s3_endpoint" {
vpc_id = "module.vpc.vpc_id"
service_name = "com.amazonaws.ap-northeast-1.s3"
policy = <<POLICY
{
"Version": "2008-10-17",
"Statement": [
{
"Action": "*",
"Effect": "Allow",
"Resource": "*",
"Principal": "*"
}
]
}
POLICY
}
ルートテーブルの関連付けです。関連付けるルートテーブルはサブネットに定義しているルートテーブルです。
resource "aws_vpc_endpoint_route_table_association" "private_s3" {
vpc_endpoint_id = "aws_vpc_endpoint.s3_endpoint.id"
route_table_id = "aws_route_table.rds_1b.id"
}