테라폼의 검색 비교
테라폼(Terraform)
HashiCorp가 개발한 오픈 소스 코드형 인프라스트럭처이다. 사용자는 HCL(HashiCorp Configuration Language)이라는 선언형 구성 언어나 선택적으로 JSON을 사용하여 데이터 센터 인프라스트럭처를 정의하고 제공한다.
AWS Command Line Interface 사용
https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html
Install or update to the latest version of the AWS CLI - AWS Command Line Interface
When updating from a previous version, the unzip command prompts to overwrite existing files. To skip these prompts, such as with script automation, use the -u update flag for unzip. This flag automatically updates existing files and creates new ones as ne
docs.aws.amazon.com
자신에게 맞는 os에서 .msi 실행후 버전 확인
Access Key, Secret Access Key 생성
유저 생성
유저 권한 (그냥 admin)
access key 생성
CLI 할것이기 때문에 CLI 선택
key 생성!!!
Access Key, Secret Access Key를 따로 적어놓거나 csv? 파일 받아놓기
유저에서 생성한 Access Key, Secret Access Key를 사용해야하는데 그냥 provider 안에 작성을 해도되지만 보안상의 이유로 환경 변수로 구성을 하면 좀 더 안전 하지 않을까.
https://docs.aws.amazon.com/ko_kr/cli/latest/userguide/cli-configure-envvars.html
환경 변수를 사용하여 AWS CLI 구성 - AWS Command Line Interface
이러한 환경 변수는 웹 자격 증명 공급자를 사용한 역할 수임에만 적용되며 일반적인 역할 수임 공급자 구성에는 적용되지 않습니다.
docs.aws.amazon.com
Linux or macOS
export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
export AWS_DEFAULT_REGION=us-west-2
Windows Command Prompt
setx AWS_ACCESS_KEY_ID AKIAIOSFODNN7EXAMPLE
setx AWS_SECRET_ACCESS_KEY wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
setx AWS_DEFAULT_REGION us-west-2
PowerShell
$Env:AWS_ACCESS_KEY_ID="AKIAIOSFODNN7EXAMPLE"
$Env:AWS_SECRET_ACCESS_KEY="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
$Env:AWS_DEFAULT_REGION="us-west-2"
사용중인 OS로 등록
테라폼설치
공식홈페이지에서 테라폼 exe 다운로드 후 원하는 위치에 놓기
https://developer.hashicorp.com/terraform/install
Install | Terraform | HashiCorp Developer
Explore Terraform product documentation, tutorials, and examples.
developer.hashicorp.com
테라폼을 환경변수에 등록
잘 등록 되었는지 cmd에서 확인
예제 simple.tf 생성
#provider.tf
provider "aws" {
region = "ap-northeast-2"
}
#vpc.tf
resource "aws_vpc" "simple_vpc" {
cidr_block = "10.0.0.0/16"
tags = {
Name = "simple_vpc"
}
}
#publicsub.tf
resource "aws_subnet" "public_subnet1" {
vpc_id = aws_vpc.simple_vpc.id
cidr_block = "10.0.1.0/24"
availability_zone = "ap-northeast-2a"
tags = {
Name = "public_subnet1"
}
}
resource "aws_subnet" "public_subnet2" {
vpc_id = aws_vpc.simple_vpc.id
cidr_block = "10.0.2.0/24"
availability_zone = "ap-northeast-2c"
tags = {
Name = "public_subnet2"
}
}
작성후 커맨드창에서
Terraform 프로젝트 디렉토리에서 초기화 명령을 실행하여 필요한 플러그인을 다운로드하고 구성을 준비
terraform init
변경 사항을 미리 확인하려면 plan 명령을 사용
-out 옵션을 사용하여 계획을 파일로 저장
terraform plan -out=tfplan
변경 사항을 인프라에 적용
terraform apply "tfplan"
현재의 인프라 상태를 확인
terraform show
Terraform 상태 파일에 정의된 모든 리소스를 삭제
명령을 실행하면 Terraform은 어떤 리소스를 삭제할 것인지 확인하는 메시지를 표시
terraform destroy
이제 알아서 스스로 척척 만들어보자!