🌍 terraform

Terraform with AWS 시작하기(windows, vscode)

읏차 2024. 4. 21. 21:10

aws 초기 구성이 어느정도 마무리되어 가는 상황에서 프로젝트가 다 끝나고나면 aws 관련 서비스들을 종료할텐데 어떻게하지라는 생각 중 terraform을 도입하면 git을 통해 형상관리도 가능하고 나중에 어떤 구조로 만들었는지도 쉽게 파악가능할거 같았다. 그리고 현재도 팀원들이 관련 배경지식이 부족하다 보니 기존에 구현되어 있는 아키텍쳐 구조를 파악하기 어려워 했고, terraform을 도입하면 조금 쉽게 구조를 파악할 수 있지 않을까라는 생각이 들었다.

 

terraform 다운받고 환경변수 설정

terraform에서 aws ec2 생성

 

Terraform download

https://developer.hashicorp.com/terraform/install?product_intent=terraform

 

Install | Terraform | HashiCorp Developer

Explore Terraform product documentation, tutorials, and examples.

developer.hashicorp.com

 

인텔 vs AMD

 

덩그러니 terraform.exe 파일 하나를 볼 수 있다.

실행하면 아무일도 안일어남.

적당한 위치로 옮겨준다.

 

 

C드라이브 안으로 옮겼다.

 

시작 창에서 cmd를 입력하면 [명령 프롬프트]가 나온다.

 

명령 프롬프트를 실행하고 terraform을 쳐본다.

아무 일도 일어나지 않는다.

 

아까 C드라이브 안에 terraform이 있는 경로로 이동한 다음 terraform을 입력해보자

 

cd {terraform.exe가 있는 경로}
terraform

 

 

무슨 일이 일어났다. terraform.exe를 어디서든 사용하기 위해서는 terraform.exe가 있는 경로를 사용자 환경변수에 path로 추가해줘야 한다.

 

 

"환경"이라 검색하면 [시스템 환경 변수 편집] 이 나온다. 실행하자.

 

 

아까 terraform이 있던 경로를 추가해준다.

 

이제 어디서든 terraform을 실행할 수 있다.

 

 

여기까진 시간이 얼마 걸리지 않았으리라 생각된다. 바로 다음으로 넘어가자.

 

사전작업 : AWS계정 생성

vscode를 열고 main.tf를 만들어주자

 

 

# main.tf

provider "aws" {
  region  = "us-west-2"
}

data "aws_ami" "ubuntu" {
  most_recent = true

  filter {
    name   = "name"
    values = ["ubuntu/images/hvm-ssd/ubuntu-jammy-22.04-amd64-server-*"]
  }

  filter {
    name   = "virtualization-type"
    values = ["hvm"]
  }

  owners = ["099720109477"]
}

resource "aws_instance" "server" {
  count = 2

  ami           = data.aws_ami.ubuntu.id
  instance_type = "t2.micro"

  tags = {
    Name = "Server ${count.index}"
  }
}

 

ec2 인스턴스 2개를 생성해보겠다.

AMI를 우분투 22.04버전을 사용했다.

owners는 우분투 제작자의 aws계정 id이다.

 

 

Terminal에 terraform init 명령어를 치면 .terraform 폴더와 .terraform.lock.hcl 파일이 생성된다.

 

 

이어서 바로 terraform plan으로 변경되는 부분을 살펴보자

 

terraform에 연결될 aws계정 정보를 알지 못해서 생기는 문제이다.

여러가지 해결방법이 있지만 여기선 시스템 환경변수로 aws 계정정보를 추가해주는 방법을 사용해 보겠다.

 

 

AWS에 접속 후 내 이름을 누르면 작은 창이 뜬다. 보안 자격 증명을 들어가서 엑세스 키를 만든다.

 

 

AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY 를 발급해준다. .csv 파일을 받아서 고이 저장해주자.

 

아까와 마찬가지로 환경변수 창을 열고 이번에는 시스템 변수에 Key와 keyvalue를 / 변수이름과 변수값에 추가해준다.

변수이름은 각각 AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY 이다.

 

그리고 재부팅을 해줘야 한다.

 

 

터미널에 아까 실패했던 terraform plan 입력

 

변경내용들을 볼 수 있다.

 

확인 후 terraform apply로 실제로 적용해보자.

 

시간이 좀 걸린다 기다리자

 

 

 

성공!!