Terraform을 사용하여 AWS에서 EC2 인스턴스 생성
이 페이지에서
- 전제 조건
- Terraform 구성 파일을 작성하여 EC2 인스턴스 생성\n
- Terraform 구성 파일을 사용하여 EC2 인스턴스 만들기\n
이 기사에서는 Terraform을 사용하여 EC2 인스턴스를 생성하는 방법을 살펴봅니다. 계속 진행하기 전에 귀하가 Terraform 및 AWS EC2 인스턴스의 기본 사항에 익숙하다고 가정합니다. AWS 콘솔에서 EC2 인스턴스를 생성하는 방법을 배우려면 여기를 클릭하십시오.
전제 조건
- Terraform에 대한 기본적인 이해\n
- 시스템에 Terraform이 설치되어 있습니다.
- AWS 계정(계정이 없는 경우 생성).
- AWS IAM 사용자의 access_key 및 secret_key. (AWS에서 access_key 및 secret_key를 사용하여 IAM 사용자를 생성하는 방법을 알아보려면 여기를 클릭하십시오.)\n
우리가 할 일
- EC2 인스턴스 생성을 위한 Terraform 구성 파일을 작성합니다.\n
- Terraform 구성 파일을 사용하여 EC2를 생성합니다.\n
- Terraform을 사용하여 생성된 EC2 인스턴스를 삭제합니다.\n
Terraform 구성 파일을 작성하여 EC2 인스턴스 생성
terraform 구성 파일을 만들 수 있는 전용 디렉터리를 만듭니다.
다음 명령을 사용하여 디렉토리를 만들고 현재 작업 디렉토리를 변경하십시오.
mkdir terraform
cd terraform/
저는 "vim"을 편집기로 사용하여 파일을 작성하고 있습니다. 원하는 편집기를 사용하고 다음 구성을 복사하여 붙여넣어 variables.tf, terraform.tfvars 및 main.tf를 만들 수 있습니다.
AWS에 EC2를 생성하는 main.tf를 생성합니다. 이 main.tf는 variables.tf 및 terraform.tfvars에서 변수 값을 읽습니다.
vim main.tf
provider "aws" { access_key = "${var.access_key}" secret_key = "${var.secret_key}" region = "eu-west-3" } resource "aws_instance" "ec2_instance" { ami = "${var.ami_id}" count = "${var.number_of_instances}" subnet_id = "${var.subnet_id}" instance_type = "${var.instance_type}" key_name = "${var.ami_key_pair_name}" }
내가 지정한 지역이 아닌 다른 지역에 인스턴스를 생성하려면 "region" 값을 변경하십시오.
변수의 선언 및 정의가 포함된 variables.tf를 만듭니다.
vim variables.tf
variable "access_key" { description = "Access key to AWS console" } variable "secret_key" { description = "Secret key to AWS console" } variable "instance_name" { description = "Name of the instance to be created" default = "test" } variable "instance_type" { default = "t2.micro" } variable "subnet_id" { description = "The VPC subnet the instance(s) will be created in" default = "subnet-a5a72ce8" } variable "ami_id" { description = "The AMI to use" default = "ami-096b8af6e7e8fb927" } variable "number_of_instances" { description = "number of instances to be created" default = 1 } variable "ami_key_pair_name" { default = "tomcat" }
variables.tf를 만든 후에는 변수에 할당된 값을 변경하는 것을 잊지 마십시오. 내 환경에 따라 ami_key_pair_name, ami_id 및 subnet_id를 변경해야 합니다. 나머지 변수는 그대로 유지할 수 있습니다.
위 파일에 정의된 access_key 및 secret_key 변수의 정의를 포함하는 terraform.tfvars를 생성합니다. 이 두 변수의 선언을 terraform.tfvars 파일에 보관했습니다.
IAM 사용자의 키로 다음 키를 변경해야 합니다.
vim terraform.tfvars
access_key = "AKIAQ6GAIA5XIHHM2GJM" secret_key = "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"
이제 3개의 파일 즉, variables.tf, terraform.tfvars 및 main.tf가 있어야 합니다.
Terraform 구성 파일을 사용하여 EC2 인스턴스 만들기
다음 명령어를 실행하기 전에 유효한 access_key 및 secret_key를 구성했는지 확인하세요.
사용할 첫 번째 명령은 terraform init입니다. 이 명령은 구성 내에서 사용되는 공급자에 대한 플러그인을 다운로드하고 설치합니다. 우리의 경우 AWS입니다.
terraform init
두 번째로 사용할 명령은 terraform plan입니다. 이 명령은 인프라에서 발생할 변경 사항을 확인하는 데 사용됩니다.
terraform plan
terraform apply 명령은 main.tf 파일에 언급된 AWS에 리소스를 생성합니다. 리소스를 생성하기 위한 입력을 제공하라는 메시지가 표시됩니다.
terraform apply
위의 명령어를 실행하면 출력에서 1개의 새 리소스가 추가되고 0이 삭제된 것을 확인할 수 있습니다.
AWS EC2 콘솔로 이동하여 EC2 인스턴스가 생성되었는지 확인할 수 있습니다.
Terraform을 사용하여 생성된 EC2 인스턴스 삭제
main.tf 파일에 언급된 구성을 사용하여 만든 리소스가 더 이상 필요하지 않은 경우 "terraform destroy" 명령을 사용하여 해당 리소스를 모두 삭제할 수 있습니다.
terraform destroy
결론
이 기사에서는 선택한 리전에서 EC2 인스턴스를 생성하는 단계를 살펴보았습니다. 또한 인스턴스를 삭제하는 방법도 살펴보았습니다.