티스토리 뷰
저번 포스트에서는 local provider 을 활용해서 local_file 로 로컬 시스템의 파일을 관리해 보았다.
이번 포스트에서는 AWS Provider 를 활용해서 AWS 리소스를 다루어 본다.
우선, Terraform Registry 에 접속하여 AWS Provider 에 들어간다.
USE PROVIDER 를 클릭하면, 이전과 동일하게 두 가지 블록을 볼 수 있다. 아래에 Example Usage 를 보며 설정을 진행해 보자.
단, 사전에 aws-cli 를 통한 보안 자격 증명 설정이 진행되어 있어야 원활히 진행할 수 있다.
보안 자격 증명 설정이 잘 진행되어 있다면, 터미널에서 다음 명령어를 실행했을 때 로컬에 설정해 놓은 값이 정확히 보일 것이다.
aws sts get-caller-identity
AWS VPC 다루기
AWS 의 네트워크 계층인 AWS 의 VPC 를 다루어 보자.
aws_vpc 리소스에 foo 라는 이름으로 만들고, VPC 네트워크 영역에서 사용할 CIDR 영역을 10.0.0.0/16 으로 표현해 본다.
provider "aws" {
region = "ap-northeast-2"
}
resource "aws_vpc" "foo" {
cidr_block = "10.0.0.0/16"
}
이후, 이번에 새롭게 aws provider 를 사용하기 때문에, terraform init 을 다시 실행해야 aws provider 를 정상적으로 활용할 수 있다.
이후 plan 을 실행하면 다음과 같이 새로운 AWS VPC 가 생성되는 것을 확인할 수 있다.
terraform plan
실제로 apply 하기 전에, AWS Console 에 접속하여 현재 VPC 의 리스트를 확인해 보자. 현재 필자의 Console 에는 두 개의 VPC 가 존재하는 것을 확인할 수 있다.
이제 apply 를 하고, VPC 가 새로 생성된 것을 확인해 보자.
terraform apply
아래와 같이 Terraform 에서 정의한 VPC 가 신규로 생성되는 것을 볼 수 있다.
이제 새로 생성된 VPC 에 대한 데이터를 output 으로 출력해 보자.
vpc_foo 라는 output 만들고, value 에 aws_vpc 의 foo 를 적용해 보자.
provider "aws" {
region = "ap-northeast-2"
}
resource "aws_vpc" "foo" {
cidr_block = "10.0.0.0/16"
}
output "vpc_foo" {
value = aws_vpc.foo
}
수정된 코드를 반영하기 위해 apply 를 진행하게 되면, 다음과 같이 해당 VPC 의 정보가 출력되는 것을 확인할 수 있다.
지금까지 Terraform 을 이용하여 Write, Plan, Apply 를 해보았다. 이번에는 기존 Terraform 리소스에 변경 사항을 만들어 보자.
VPC 에 Tag 추가하기
이번에는 위에서 생성했던 VPC 에 태그 (Tags) 를 생성해 보자.
resource "aws_vpc" "foo" {
cidr_block = "10.0.0.0/16"
tags = {
"Name" = "This is test vpc"
}
}
위와 같이 tags 를 추가한 다음, terraform apply 를 통해 반영해 보자.
기존 VPC 에 태그가 추가됨을 확인할 수 있다.
CIDR Block 변경하기
이번에는 위에서 생성했던 VPC 의 CIDR Block 을 변경해 보자. 기존에 10.0.0.0/16 이었던 값을 10.123.0.0/16 으로 변경한다.
resource "aws_vpc" "foo" {
cidr_block = "10.123.0.0/16"
tags = {
"Name" = "This is test vpc"
}
}
이후 terraform apply 를 수행하면, 기존과 다르게 삭제 후 새로 생성하는 것을 볼 수 있다.
AWS VPC 라는 개체 자체가 AWS 상에서 CIDR 값은 변경 가능한 개체가 아니다. Terraform 에서는 이점을 인지하고 있기 때문에 이 경우에는 기존 VPC 가 삭제된 후 새로운 VPC 로 교체되어야 함을 의미하는 것이다.
해당 내용을 apply 하고, 다시 AWS Console 로 돌아가서, 새로운 VPC 가 생성된 것을 확인해 보자.
Terraform 은 각각의 리소스에 대해서 어떤 속성을 변경했을 때, 자체적으로 변경이 가능한지 혹은 새로운 리소스로 교체해야만 교체가 가능한지를 인지하고 있다. Terraform 의 리소스를 변경하고 apply 할 때 항상 Plan 내용을 반드시 검토하여 정확한 변경 사항을 파악한 후 apply 하는 과정이 필요하다..
지금까지 AWS VPC 리소스를 생성해 보았다.
다음 포스트에서는 AWS Provider 에서 Data Sources 를 사용해 보겠다.
'인프라 > Terraform' 카테고리의 다른 글
Intellij HCL 설정하기 (0) | 2022.08.16 |
---|---|
Terraform 다루어보기 (local_file) (0) | 2022.08.15 |
Terraform 소개 (0) | 2022.08.12 |
Terraform 설치 및 기본 설정 (0) | 2022.08.11 |
Terraform 이 무엇인가? (0) | 2022.08.10 |
- Total
- Today
- Yesterday
- 자격증명
- 도커
- Container
- Material
- 메터리얼
- entrypoint
- main
- env
- HCL
- 스타트업
- DESIGN
- docker
- 자료형
- cmd
- Java
- 자바
- dockerhub
- Android
- 테라폼
- 컨테이너
- ecr
- EC2
- 디자인
- uiux
- dockerfile
- Terraform
- AWS
- 안드로이드
- Operator
- 머티리얼
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |