-
Notifications
You must be signed in to change notification settings - Fork 1
๐ก How To? Terraform Locust๋ก ๋ถํ ํ ์คํธ ์งํํ๊ธฐ
Kim Minju edited this page Sep 1, 2024
·
13 revisions
Terraform์ ๋ ์ ์ฐ๋ ๋ฐฉ๋ฒ๋ณด๋ค๋, ํ ์คํธ ํ๊ฒฝ ๊ตฌ์ถ์ ๋ถํธํจ์ ํด๊ฒฐํ๋ ค๋ ์๋จ์ผ๋ก ์ฌ์ฉํ์ต๋๋ค~
brew tap hashicorp/tap
brew install hashicorp/tap/terraform
terraform version
terraform -install-autocomplete
main.tf
provider "aws" {
region = "ap-northeast-2" # ๋ฆฌ์ ์ ap-northeast-2๋ก ์ค์
}
resource "aws_instance" "terrafor-example-miiiinju" {
ami = "ami-056a29f2eddc40520" # ์ง์ ๋ AMI ID
instance_type = "t3.micro" # ์ง์ ๋ ์ธ์คํด์ค ํ์
key_name = "team5_guys_pub" # ์ง์ ๋ ํค ํ์ด ์ด๋ฆ
subnet_id = "subnet-ac32f2f3" # default subnet
vpc_security_group_ids = ["sg-0946e533330930594"] # ์ฌ์ฉํ ๋ณด์ ๊ทธ๋ฃน์ ID
tags = {
Name = "miiiinju-terraform"
}
root_block_device {
delete_on_termination = true # ์ธ์คํด์ค ์ข
๋ฃ ์ EBS ๋ณผ๋ฅจ ์ญ์
}
credit_specification {
cpu_credits = "standard"
}
enable_monitoring = false
}
terraform init
terraform plan
terraform apply
- ํญ์ EC2๋ฅผ ์ผ๋ ์ํ๋ก ์ฌ์ฉํ๋ ๊ฒ์ด ์๋, ํ์ํ ๋ ์ ๊น terraform์ผ๋ก ์ธ์คํด์ค๋ฅผ ์ผ์ ๋ถํ ํ ์คํธ๋ฅผ ์ํํ ์ดํ, ์ข ๋ฃํ๋ ๊ธฐ๋ฅ์ด ํ์ํฉ๋๋ค.
- ๋ฐ๋ผ์ EC2๋ฅผ ๋งค๋ฒ ์ผ์ ํ๊ฒฝ ์ค์ ์ ์ํํ๊ธฐ์๋ ์๊ฐ ๋ถ๋ด์ด ํฌ๋ฏ๋ก, ๋ฏธ๋ฆฌ ์ธํ ํด์ ์ปค์คํ AMI๋ฅผ ๋ง๋ค์ด๋ ๋ค ์ด๋ฅผ ํตํด EC2 ์ธ์คํด์ค๋ฅผ ๋ง๋ค์์ต๋๋ค.
- EC2๋ฅผ ๊ธฐ๋ณธ ubuntu ์ด๋ฏธ์ง๋ฅผ ํตํด ์ง์ ๋ง๋ ํ, Locust ๊ตฌ๋์ ํ์ํ python, locust ์ค์น ๋ฑ์ ์์ ์ ์ํํ์ต๋๋ค.
aws ec2 create-image \
--instance-id {์ธ์คํด์ค-ID} \
--name "locust-ami" \
--no-reboot
- ๐ก How To? Chat-GPT ๋ฆฌ๋ทฐ์ด ๋์ ํ๊ธฐ
- ๐ก How To? ๋๋ฉ์ธ ์ค์ ํ๊ธฐ
- ๐ก How To? NGINX๋ก CORS ์ค์ ํ๊ธฐ
- ๐ก How To? JavaScript SDK ๊ฐ๋ฐํ๊ธฐ
- ๐ก How To? Java SDK ๊ฐ๋ฐํ๊ธฐ
- ๐ก How To? AWS Lambda๋ก ๋ถํ ํ ์คํธ ์งํํ๊ธฐ
- ๐ก How To? Terraform + Locust๋ก ๋ถํ ํ ์คํธ ์งํํ๊ธฐ
- โ๏ธ Refactoring: ๋ก๊ทธ ์ ์ฅ์ ํ๋ฒ์ ํ์!
- ๐จ ์๋ฒฝํ์ง ์์ ์๋๋ฐ์ค ํ ์คํธ๊ฐ ๋ถ๋ฌ์จ ํญํ
- ๐ก How To? ๋๋ฒ๊น ์ฉ ๊ฒฝ์์ด ๋ฐ์ํ์ง ์๋ Long ์นด์ดํฐ ๋ง๋ค๊ธฐ!
- ๐ก How To? Queue์ poll๊ณผ push๋ ์ ํ ์ค๋ ๋์์ ๋ด๋นํ๊ฒ ํ์๊น?