๐ Terraform Day 3: Terraform์ผ๋ก ์ฒซ AWS ๋ฆฌ์์ค ๋ง๋ค๊ธฐ (S3 Bucket)
Source: Dev.to

โ์ฝ๋๊ฐ ํด๋ผ์ฐ๋์ ๋ฌด์ธ๊ฐ๋ฅผ ๋ง๋ค ๋ ์ธํ๋ผ๊ฐ ์ค์ ๊ฐ ๋๋ค.โ
Dayโฏ3์ ์ง๊ธ๊น์ง์ Terraform ์ฌ์ ์ค ๊ฐ์ฅ ํฅ๋ฏธ๋ก์ด ๋ ์ด์์ต๋๋ค. ์ง๊ธ๊น์ง Terraform์ ๊ฐ๋ , ํ๋ก๋ฐ์ด๋, ๋ช ๋ น์ด์ ๋ถ๊ณผํ์ง๋ง, ์ค๋์ ์ฝ๋๋ฅผ ์ฌ์ฉํด ์ค์ AWS S3 ๋ฒํท์ด๋ผ๋ ํด๋ผ์ฐ๋ ์ธํ๋ผ๋ฅผ ๊ตฌ์ถํ์ต๋๋ค.
์ด๊ฒ์ด ์ ์ ์ฒซ ๋ฒ์งธ ์ ์ฒด Terraform ์ํฌํ๋ก์ฐ์์ต๋๋ค:
- ์ฝ๋ ์์ฑ
- ์ด๊ธฐํ
- ๊ณํ
- ์ ์ฉ
- ์์
- ํ๊ดด
AWS๊ฐ ๋ด ์ฝ๋์ ๋ฐ์ํ๋ ๋ชจ์ต์ ๋ณด๋ ๊ฒ์ ๊ฐ๋ ฅํ ๋๋์ด์์ต๋๋ค.
๐ฏ Dayโฏ3 ๋ชฉํ
- โ Terraform์ ์ฌ์ฉํด AWS ๋ฆฌ์์ค๋ฅผ ํ๋ก๋น์ ๋ํ๋ ๋ฐฉ๋ฒ ํ์ต
- โ Terraform ๋ช ๋ น ์ํฌํ๋ก์ฐ ์ค์ต
- โ Terraform์ด ์ธํ๋ผ๋ฅผ ์ด๋ป๊ฒ ์ถ์ ํ๋์ง ์ดํด
- โ ์์ ํ ๋ฐฐํฌ์ ์ญ์ ๋ฐฉ๋ฒ ์ต๋
- โ ์ค์ ํด๋ผ์ฐ๋ ์๋น์ค๋ฅผ ๋ค๋ฃจ๋ ์์ ๊ฐ ๊ตฌ์ถ
๐ ๏ธ Terraform ์ฝ๋ ์์ฑ
๋จผ์ ๊ตฌ์ฑ ํ์ผ(main.tf)์ ๋ง๋ค์์ต๋๋ค.
Provider ์ค์
provider "aws" {
region = "us-east-1"
}
S3 ๋ฆฌ์์ค ์ค์
resource "aws_s3_bucket" "demo" {
bucket = "my-terraform-first-bucket-1234"
tags = {
Name = "Terraform S3 Bucket"
}
}
โ ๏ธ S3 ๋ฒํท ์ด๋ฆ์ ์ ์ธ๊ณ์ ์ผ๋ก ๊ณ ์ ํด์ผ ํฉ๋๋ค.
โ๏ธ Terraform ์คํ ํ๋ฆ
Terraform์ ๊ฐ๋จํ์ง๋ง ๊ฐ๋ ฅํ ์ํฌํ๋ก์ฐ๋ฅผ ๋ฐ๋ฆ ๋๋ค.
Stepโฏ1: ์ด๊ธฐํ
terraform init
ํ๋ก๋ฐ์ด๋๋ฅผ ๋ค์ด๋ก๋ํ๊ณ ํ๋ก์ ํธ๋ฅผ ์ค์ ํฉ๋๋ค.
Stepโฏ2: ๊ณํ
terraform plan
๋ฌด์์ด ๋ณ๊ฒฝ๋ ์ง ๋ฏธ๋ฆฌ ๋ณด์ฌ์ฃผ์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ๊ธฐ ์ ์ ํ์ธํ ์ ์์ต๋๋ค.
Stepโฏ3: ์ ์ฉ
terraform apply
์ค์ ํด๋ผ์ฐ๋ ๋ฆฌ์์ค๋ฅผ ์์ฑํฉ๋๋ค. Terraform์ด AWS์ S3 ๋ฒํท์ ๋ช ์ด ๋ง์ ๋ง๋ค์๋ค๋ ๊ฒ์ ํ์ธํ์ต๋๋ค โ
๐งฉ ์ธํ๋ผ ์ ๋ฐ์ดํธ
๊ตฌ์ฑ ํ์ผ์์ ํ๊ทธ๋ฅผ ์์ ํ๊ณ ๋ค์์ ์คํํ์ต๋๋ค:
terraform plan
terraform apply
Terraform์:
- โ ๋ณ๊ฒฝ ์ฌํญ์ ๊ฐ์ง
- โ ๋ฆฌ์์ค๋ฅผ ์์
- โ ์ํ ํ์ผ์ ์ ๋ฐ์ดํธ
์ฌ์์ฑ ์์ด ์ ๋ฐ์ดํธ๋ง ์ํํ์ต๋๋ค.
๐ฃ ์ ์ฒด ํ๊ดด
terraform destroy
Terraform์:
- โ ๊ด๋ฆฌ๋๋ ๋ฆฌ์์ค๋ฅผ ์๋ณ
- โ ์์ ํ๊ฒ ์ญ์
- โ ๋จ์ ๊ฒ์ด ์๋๋ก ์ ๋ฆฌ
๊นจ๋ํ ์ธํ๋ผ์ ๋น์ฉ ์ํ์ด ์ฌ๋ผ์ก์ต๋๋ค.
๐ AWS ์ธ์ฆ
Terraform์ ์คํํ๊ธฐ ์ ์ ๋จผ์ :
aws configure
Terraform์ ๋ค์ ์์น์์ ์๊ฒฉ ์ฆ๋ช ์ ์ฌ์ฉํฉ๋๋ค:
- AWS CLI
- ํ๊ฒฝ ๋ณ์
- IAM ์ญํ
์๊ฒฉ ์ฆ๋ช ์ด ์์ผ๋ฉด ํด๋ผ์ฐ๋์ ์ ๊ทผํ ์ ์์ต๋๋ค.
๐ง Dayโฏ3 ์ฃผ์ ๊ตํ
- Terraform์ ์ ์ฒด ๋ผ์ดํ์ฌ์ดํด์ ๊ด๋ฆฌํฉ๋๋ค.
- ์ํ ํ์ผ์ด ํ์ค์ ์ถ์ ํฉ๋๋ค.
plan์ ์ค์๋ฅผ ๋ฐฉ์งํฉ๋๋ค.- ์ฝ๋๋ ํด๋ผ์ฐ๋๋ฅผ ์ ์ดํฉ๋๋ค.
destroy๋ ์์ ํ๊ณ ๊ฐ๋จํฉ๋๋ค.- ๋ฌธ์๊ฐ ์๋์์ฑ๋ณด๋ค ์ค์ํฉ๋๋ค.
๐ ๊ฒฐ๋ก
์ด ๋ ์ ํตํด ์ธํ๋ผ์ ๋ํ ์๊ฐ์ด ์์ ํ ๋ฐ๋์์ต๋๋ค. Terraform์ ๋จ์ํ ๋ฆฌ์์ค๋ฅผ ์ค๋ช ํ๋ ๊ฒ์ด ์๋๋ผ ์ค์ ๋ก ๋ง๋ค๊ณ , ๊ทธ๋ฆฌ๊ณ ๊น๋ํ๊ฒ ์ญ์ ํ์ต๋๋ค.
๋ด์ผ์ Terraform์ ํต์ฌ์ ๋ ๊น์ด ํ๊ณ ๋ค ์์ ์ ๋๋ค ๐