- 2-0. 테라폼 리소스 그래프2024년 06월 20일
- yeongki0944
- 작성자
- 2024.06.20.:31
해당 포스팅은 리소스 그래프에 대해 학습을 하며 작성 중인 글입니다.
부정확 내용이 존재할 수 있습니다.Resource Graph
TF 코드
출처 : https://github.com/SkeltonThatcher/aws-vpc-terraform
파일 구조
| provider.tf
| vars.tf
L vpc.tf## provider.tf provider "aws" { access_key = "${var.aws_access_key}" secret_key = "${var.aws_secret_key}" region = "${var.aws_region}" }
## vars.tf variable "aws_access_key" {} variable "aws_secret_key" {} variable "aws_region" { default = "eu-west-1" } variable "cidr_prefix" { default = "10.50" }
## vpc.tf ## VPC + Subnets + IGW resource "aws_vpc" "main" { cidr_block = "${var.cidr_prefix}.0.0/16" enable_dns_support = "true" enable_dns_hostnames = "true" tags { Name = "${var.cidr_prefix}-vpc" } } resource "aws_subnet" "pub_a" { vpc_id = "${aws_vpc.main.id}" cidr_block = "${var.cidr_prefix}.1.0/24" availability_zone = "${var.aws_region}a" map_public_ip_on_launch = "true" tags { Name = "${var.cidr_prefix}.1-pub-a" } } resource "aws_subnet" "pub_b" { vpc_id = "${aws_vpc.main.id}" cidr_block = "${var.cidr_prefix}.2.0/24" availability_zone = "${var.aws_region}b" map_public_ip_on_launch = "true" tags { Name = "${var.cidr_prefix}.2-pub-b" } } resource "aws_subnet" "priv_a" { vpc_id = "${aws_vpc.main.id}" cidr_block = "${var.cidr_prefix}.3.0/24" availability_zone = "${var.aws_region}a" tags { Name = "${var.cidr_prefix}.3-priv-a" } } resource "aws_subnet" "priv_b" { vpc_id = "${aws_vpc.main.id}" cidr_block = "${var.cidr_prefix}.4.0/24" availability_zone = "${var.aws_region}b" tags { Name = "${var.cidr_prefix}.4-priv-b" } } resource "aws_internet_gateway" "igw" { vpc_id = "${aws_vpc.main.id}" } resource "aws_route_table" "pub" { vpc_id = "${aws_vpc.main.id}" route { cidr_block = "0.0.0.0/0" gateway_id = "${aws_internet_gateway.igw.id}" } tags { Name = "${var.SERVICE_NAME}-publicRT" } } resource "aws_route_table_association" "pub_a" { subnet_id = "${aws_subnet.pub_a.id}" route_table_id = "${aws_route_table.pub.id}" } resource "aws_route_table_association" "pub_b" { subnet_id = "${aws_subnet.pub_b.id}" route_table_id = "${aws_route_table.pub.id}" }
Resource Graph 해석
- Resource Node(사각형)
- 개념
- Resource Meta Node는 여러 리소스를 그룹화하는 역할
- 리소스 그래프 해석
- aws_route_table_association.pub_a: 퍼블릭 서브넷 A의 라우트 테이블 연결을 나타냅니다.
- aws_route_table_association.pub_b: 퍼블릭 서브넷 B의 라우트 테이블 연결을 나타냅니다.
- aws_subnet.priv_a: 프라이빗 서브넷 A를 나타냅니다.
- aws_subnet.priv_b: 프라이빗 서브넷 B를 나타냅니다.
- aws_route_table.pub: 퍼블릭 라우트 테이블을 나타냅니다.
- aws_subnet.pub_a: 퍼블릭 서브넷 A를 나타냅니다.
- aws_subnet.pub_b: 퍼블릭 서브넷 B를 나타냅니다.
- aws_internet_gateway.igw: 인터넷 게이트웨이를 나타냅니다.
- aws_vpc.main: 메인 VPC를 나타냅니다.
- 개념
- Resource Meta Node(타원형)
- 개념
- Resource Meta Node는 여러 리소스를 그룹화하는 역할
- 리소스 그래프 해석
- [root] root
- 테라폼 구성의 최상위 노드
- 전체 인프라의 시작점
- [root] meta.count-boundary (count boundary fixup)
- 테라폼에서 count 파라미터가 사용되는경우,
count 파라미터가 변경될 때 이를 처리하기 위해 존재하는 노드 - count 파리미터를 사용되지 않더라도, 자동으로 생성됨.
https://github.com/hashicorp/terraform/issues/20063
- 테라폼에서 count 파라미터가 사용되는경우,
- [root] provider.aws (close)
- 프로바이더 설정 종료
- Terraform이 프로바이더와 연결을 종료하는 시점
- [root] var.cidr_prefix
- [root] var.aws_access_key
- [root] var.aws_region
- [root] var.aws_secret_key
- [root] root
- 개념
- Provider Configuration Node(다이아몬드형)
다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)