Terraform으로 AWS VPC Endpoint 서비스의 PrivateDNS 기능을 효과적으로 실현하는 방법

1909 단어 AWSTerraformtech

이 문장의 작용 범위


이 글은 AWS Private Link에서 Private DNS 기능을 사용할 때 Terraform으로 어떤 코드를 써야 하는지를 요약했다.
또한 코드에는 VPC Endpoint Service/VPC Endpoint/Route 53 코드만 기재되어 있습니다.
※ 전제는 VPC 등 자원과 NLB가 이 글에서 생략하는 것입니다.

해설


VPC Endpoint Serivce


VPC Endpoint 서비스에서PrivateDNS 기능을 유효하게 하려면 private_dns_name에 필요한 도메인 이름을 입력하십시오.
resource "aws_vpc_endpoint_service" "example" {
  acceptance_required        = false
  network_load_balancer_arns = [aws_lb.example.arn]
  private_dns_name = "利用したいドメイン名"
  depens_on = [aws_lb.example]
}

Route53


VPC Endpoint Service에서 도메인 이름을 설정하면 TXT 레코드 등록에 필요한 다양한 정보를 출력할 수 있습니다.
이것을 Route 53에 로그인합니다.
resource "aws_route53_record" "example" {
  zone_id = aws_route53_zone.primary.id
  type = lookup(element(aws_vpc_endpoint_service.example.private_dns_name_configuration, 0), "type")
  name = "${lookup(element(aws_vpc_endpoint_service.example.private_dns_name_configuration, 0), "name")}.利用したいドメイン名"
  records = [lookup(element(aws_vpc_endpoint_service.example.private_dns_name_configuration, 0), "value")]
  ttl = 1800
}

VPC Endpoint


연결된 VPC Endpoint에서 VPC Endpoint 서비스에서 지정한 도메인을 사용하려면 private_dns_enabledtrue로 설정합니다.
resource "aws_vpc_endpoint" "example" {
  vpc_id            = aws_vpc.main.id
  service_name      = aws_vpc_endpoint_service.example.service_name
  vpc_endpoint_type = "Interface"

  security_group_ids = [
    aws_security_group.example_sg.id,
  ]

  private_dns_enabled = true
}

끝말


VPC 간 접속 시 도메인을 고정해 통신하고 싶다는 요구가 있어 조사했다.
조사 과정에서 정리되지 않은 기사로 난감해 쓰는 것을 잊기 어려웠다.
만약 이 보도가 어떤 참고가 될 수 있다면 매우 좋겠다.

좋은 웹페이지 즐겨찾기