๐กcloudNet@ ํ์ ๊ฐ์๋ค ๋์ด ์งํํ๋ Terraform 101 Study 4๊ธฐ 1์ฃผ์ฐจ ๋ด์ฉ์ผ๋ก,
[ํ ๋ผํผ์ผ๋ก ์์ํ๋ IaC] ๋์๋ฅผ ์ฐธ์กฐํ์์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค..
1. EC2 ์ธ์คํด์ค ๋ฐฐํฌ ์ค๋น:
- ํฐ๋ฏธ๋์์ EC2 ์ํ ๋ชจ๋ํฐ๋ง ์คํฌ๋ฆฝํธ ์คํ
- ํ ๋ผํผ์ ์ฌ์ฉํด ๊ฐ๋จํ EC2 ์์ฑ ์ฝ๋ ์์ฑ (main.tf)
2. ํ ๋ผํผ ์ด๊ธฐํ ๋ฐ ์คํ:
- terraform init์ผ๋ก ์ด๊ธฐํ ์งํ
- terraform plan์ผ๋ก ๋ณ๊ฒฝ ์ฌํญ ๊ฒํ
- terraform apply๋ก EC2 ์ธ์คํด์ค ๋ฐฐํฌ
3.ํ๊ทธ ์ถ๊ฐ ๋ฐ ์ ๋ฐ์ดํธ:
- ํ ๋ผํผ ์ฝ๋์ ํ๊ทธ ์ ๋ณด ์ถ๊ฐ
- plan๊ณผ apply๋ฅผ ์ฌ์ฉํ์ฌ ์ ๋ฐ์ดํธ ๋ฐ์
4. EC2 ์ธ์คํด์ค ์ญ์ :
- terraform destroy๋ก EC2 ๋ฆฌ์์ค ์์ ์ญ์
5. ์ถ๊ฐ์ ์ธ ๋ฌธ์ ํด๊ฒฐ:
- EC2 ์ด๋ฏธ์ง๋ช ์ค๋ฅ ์์ ํ ๋ค์ apply
์ด์ ํฌ์คํ ์ผ๋ก ํ ๋ผํผ์ ๊ฐ๋ ๊ณผ ์ฌ์ฉ ํ๊ฒฝ ๊ตฌ์ฑ์ ์งํํ์๋ค.
(๋์ผํ ์ฌ์ฉ ํ๊ฒฝ์ผ๋ก ๊ตฌ์ฑํ๊ณ ์ถ์ผ์๋ฉด, ๋ค์ ๊ธ์ ์ฐธ๊ณ )
https://cwpack0730.tistory.com/97
์ด์ ๊ฐ๋จํ EC2 ๋ฐฐํฌ๋ฅผ ์งํํด๋ณด๊ฒ ๋ค.
1. [์คํฐ๋ ์ ์ฉ/์ค์ต2] EC2 1๋ ๋ฐฐํฌ
# [ํฐ๋ฏธ๋1] EC2 ์์ฑ ๋ชจ๋ํฐ๋ง
export AWS_PAGER=""
while true; do aws ec2 describe-instances --query "Reservations[*].Instances[*].{PublicIPAdd:PublicIpAddress,InstanceName:Tags[?Key=='Name']|[0].Value,Status:State.Name}" --filters Name=instance-state-name,Values=running --output text ; echo "------------------------------" ; sleep 1; done
์๋ก์ด ํฐ๋ฏธ๋์ ํ๋ ์ด๊ณ , ํด๋น ์คํฌ๋ฆฝํธ๋ฅผ ๋์์ํจ๋ค.
ํด๋น ์คํฌ๋ฆฝํธ๋ ์ง์์ ์ผ๋ก EC2 ์ ๋ณด๋ฅผ ํ์ธํ๋ค.
์ด์ EC2๊ฐ ์์ฑ๋๊ฑฐ๋ ์ญ์ ๋๋ ์ฆ์ ์ ๋ณด๊ฐ ๋ํ๋ ๊ฒ์ด๋ค.
cat <<EOT > **main.tf**
**provider** "**aws**" {
region = "ap-northeast-2"
}
**resource** "**aws**_**instance**" "example" {
ami = "$AL2ID"
instance_type = "t2.micro"
}
EOT
์ดํ ๊ฐ๋จํ EC2 ์์ฑ ํ ๋ผํผ ์ฝ๋๋ฅผ ์์ฑํ์๋ค.
์ดํ terraform plan์ ์งํํ์๋๋ฐ, ๋ค์๊ณผ ๊ฐ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์๋ค.
Error : Inconsistent dependecy lock file ...
์ด๋ terraform init๋ฅผ ํ์ง ์๊ณ , ๋ฐ๋ก plan ํน์ apply๋ฅผ ํ๊ฒ ๋๋ฉด ๋ฐ์ํ๋ ๋ฌธ์ ๋ก,
terraform ์ด๊ธฐํ๋ฅผ ์งํํ๊ณ ์คํํ๋ฉด ์ ์์ ์ผ๋ก ์คํ๋๋ค.
terraform init ๋ช ๋ น์ ํตํด ์ด๊ธฐํ๋ฅผ ์งํํ๋ค.
- terraform init ๊ฒฐ๊ณผ
์ดํ, terraform plan ๋ช ๋ น์ ํตํด ํด๋น ์ฝ๋์ ์คํ ๊ฒฐ๊ณผ๋ฅผ ํ์ธํ ์ ์๋ค.
- terraform plan ๊ฒฐ๊ณผ
- terraform plan ์คํ ์ ์์ฑ๋๋ ํ์ผ
terraform plan ๋ช ๋ น ์คํ ์ ์๋ฐ ํ์ผ๋ค์ด ์์ฑ๋๋ฉฐ, ํด๋น ํ ๋ผํผ ์คํ ์ ์์ ๋๋ ๋ชฉ๋ก์ด ๋ํ๋๋ค.
create ๋ก ec2๊ฐ ์์ฑ๋๋ฉฐ ์ด๋ค ๋ด์ฉ์ผ๋ก ์์ฑ๋๋์ง ๋ฆฌ์คํธ๊ฐ ์์ธํ ๋ํ๋๋ค.
์ดํ apply ๋ช ๋ น์ ํตํด ํด๋น ec2 ๋ฐฐํฌ๋ฅผ ์งํํด๋ณด๊ฒ ๋ค.
(terraform apply : ์คํ)
terraform apply ๋ช ๋ น์ ์งํํ๋ฉด, ๋ค์๊ณผ ๊ฐ์ด ์ ๋ ฅ ์ฐฝ์ด ๋ํ๋๋ค.
yes์ธ ๋ค๋ฅธ ์ ๋ ฅ์ ์งํํ๋ฉด(ex, no ๋ฑ) ์คํ์ด ์ทจ์๋๋ค.
ํฐ๋ฏธ๋ 1์์ ์คํ์ค์ธ ์คํฌ๋ฆฝํธ์ ํ ๋ผํผ ๋ช ๋ น ์คํ ๊ฒฐ๊ณผ๋ก ์๋ฒ๊ฐ ์ ์์ ์ผ๋ก ์์ฑ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค!
aws cli๋ก ํ์ธํด๋ณด๊ฒ ๋ค.
aws ec2 describe-instances --output table
ํ ๋ผํผ ์ฝ๋์ ๋ช ์ํ ์ ๋ณด๋๋ก EC2 ๊ฐ ์์ฑ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
aws ์ฝ์ ์์์๋ ec2 ์์ฑ์ด ํ์ธ๋๋ค. ๊ตณ~
2. ํ๊ทธ์ ๋ณด ์์
์ ์ฝ์ ์ด๋ฏธ์ง๋ฅผ ํ์ธํด๋ณด๋ฉด, ํ์ฌ EC2 name ์นธ์ด ๋น์ด์๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
์ด๋ฅผ ํ ๋ผํผ ์ฝ๋๋ก ์ถ๊ฐํด๋ณด๊ฒ ๋ค.
provider "aws" {
region = "ap-northeast-2"
}
resource "aws_instance" "example" {
ami = "$AL2ID"
instance_type = "t2.micro"
**tags = {
Name = "t101-study-dev-cw"
}**
}
main.tf
tag๋ฅผ ์ถ๊ฐํ๊ณ , terraform plan์ ์งํํด๋ณด๊ฒ ๋ค.
ํ์ธํด๋ณด๋ฉด, ์ ๋ฐ์ดํธ ๋๋ ๋ฆฌ์คํธ์ ์ด๋ค ํญ๋ชฉ์ ๋ณ๊ฒฝ์ด ์๋์ง ํ์ธํ ์ ์๋ค.
ํ๋ฒ apply๋ฅผ ์งํํด๋ณด๊ฒ ๋ค.
์ฑ๊ณต์ ์ผ๋ก name ํ๊ทธ๊ฐ ์ถ๊ฐ๋์๋ค!
ํฐ๋ฏธ๋1์ ๋ชจ๋ํฐ๋ง์์๋ ์ ๋ํ๋๋ค.
3. EC2 ๋ฆฌ์์ค ์ญ์
# ๋ฆฌ์์ค ์ญ์
terraform destroy
Enter a value: yes ์
๋ ฅ
ํน์
terraform destroy -auto-approve
๋ค์์ ์์ฑํ EC2 ๋ฆฌ์์ค๋ฅผ ์ญ์ ํด๋ณด๊ฒ ๋ค.
ํ ๋ผํผ ๋ช ๋ น์ผ๋ก ๋ฆฌ์์ค ์ญ์ ๋ฅผ ์งํ ์,
plan, apply์ ๋์ผํ๊ฒ, ์ญ์ ๋ ๋์ ๋ฆฌ์คํธ๊ฐ ๋ํ๋๋ค.
yes๋ฅผ ์ ๋ ฅํ์ฌ ์ญ์ ๋ฅผ ์งํํ๋ค.
EC2๊ฐ ์ ์์ ์ผ๋ก ์ญ์ ๋์๋ค.
etc. ์งํํ๋ฉฐ ๋ฐ์ํ ๋ฌธ์ ๋ค..
terraform apply ๋ช ๋ น ์คํ ์ค ์๋ฌ๊ฐ ๋ฐ์ํ์๋ค.
์์ด์ฝ, ํด๋น ec2 ์ด๋ฏธ์ง๋ช ์ด ์๋ชป๋ ๊ฒ ๊ฐ๋ค.
์ต์ ์ด๋ฏธ์ง๋ฅผ ์ฐพ์์ ์์ ํด๋ณด๊ฒ ๋ค.
์ฐพ์ ์ต์ EC2 ์ด๋ฏธ์ง๋ช ์ผ๋ก ํ ๋ผํผ ์ฝ๋๋ฅผ ์์ ํ๊ณ ๋ค์ apply๋ฅผ ์งํํ์ฌ ํด๊ฒฐ๋์๋ค.
์ด๋ ๊ฒ ํ ๋ผํผ์ ์ฌ์ฉํ์ฌ ๊ฐ๋จํ EC2 ์์ฑ๊ณผ ํ๊ทธ ์์ , ์ญ์ ๊น์ง ์งํํด๋ณด์๋ค.
๋ค์์ ์ถ๊ฐ์ ์ผ๋ก ํ ๋ผํผ์ ์ฃผ์ ์ปค๋งจ๋์ ๋ธ๋ก, ๋ฆฌ์์ค ๋ฑ ๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ์ ๋ํด ์ถ๊ฐ์ ์ผ๋ก ์งํํด๋ณด๊ฒ ๋ค.
'IaC > Terraform_ํ ๋ผํผ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Terraform] ๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ#4 (local ์ง์ญ๊ฐ, ์ถ๋ ฅ output, ๋ฐ๋ณต๋ฌธ) (0) | 2024.06.21 |
---|---|
[Terraform] ๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ #3 (๋ฐ์ดํฐ ์์ค, ์ ๋ ฅ ๋ณ์) (0) | 2024.06.18 |
[Terraform] ๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ #2 (ํ ๋ผํผ ๋ธ๋ก, ๋ฆฌ์์ค) (0) | 2024.06.15 |
[Terraform] ๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ #1 (์ฃผ์ ์ปค๋งจ๋, HCL) (0) | 2024.06.15 |
[Terraform] ํ ๋ผํผ ๊ฐ๋ ๋ฐ ์ฌ์ฉ ํ๊ฒฝ ๊ตฌ์ฑ (1) | 2024.06.13 |