favicon Jay Lee DevLog

📚 목차

먼저 Terraform을 사용하기 전에 생성해둬야 할 것들이 있다.

  1. 자신이 사용할 클라우드 서비스의 계정(나의 경우 AWS)
  2. IAM에 대한 Access Key와 Secret Key

AWS 계정 만드는 법은 https://dlwjdwls90.tistory.com/65 이 글 참고바란다.

계정을 만들었다면 이제 키 발급을 받아보자.

여기에도 2가지 방법이 있다.

  1. UI를 통해 생성하기
  2. CLI에서 생성하기

먼저 UI를 통해 생성해보자.

  • 먼저 IAM 이라는 서비스를 선택한다.

  • 액세스 관리 - 사용자 - 보안 자격 증명 - 액세스 키 메뉴를 찾아서 액세스 키 만들기를 누른다.

  • CLI 선택

  • 설명 태그는 넣어도 되고 안넣어도 된다. 이후 액세스 키 만들기 누르면 생성된다.

이번엔 CLI를 이용해서 만들어보자. 해당 방법이나 위의 방법이나 똑같다. 편한걸로 해라.

  • 먼저 상단 메뉴에 해당 버튼 클릭

  • 그러면 아래쪽에 콘솔창이 생긴다. 해당 콘솔에 아래의 커맨드 입력하면 끝이다.
aws iam create-access-key

  • 이제 Terraform을 실행할 환경으로 돌아와 아래의 커맨드를 입력한 후 Access Key와 Secret Key를 입력해준다.
aws configure

입력을 하고 다시 aws configure를 치면 이런식으로 나오면 된거다.

참고로 aws configure치지 않고

vi ~/.aws/credentials

해당 경로에 들어가서 직접 수정해줘도 된다.

~/.aws/credentials

여기까지 했으면 이제 terraform 실행 준비 완료다.


먼저 provider.tf 라는 파일을 만들거다.

해당 파일은 내가 어떤 provider를 사용할 건지, 버전은 어떤걸 사용할 건지 등에 대한 설정 정보를 작성할거다.

# provider 즉 어떤 클라우드 서비스를 사용할 건지
provider "aws" {  

}
# 어떤 버전을 사용할건지에 대한 정의    
terraform {
  required_version = "1.5.7"

  required_providers {
    aws = ">= 5.17.0"
  }
}

일단 기본 내용은 이렇다.

여기서 provider 쪽에 지금은 아무 내용도 없긴한데,

여기에 필요한 내용들을 이미 위에서 aws configure를 통해 등록해둔 상태라 그렇다.

만약 aws configure를 하지 않았다면 다음과 같이 작성한다.

# provider 즉 어떤 클라우드 서비스를 사용할 건지
provider "aws" {  
    # 발급 받은 Access Key
    access_key = "<AWS_ACCESS_KEY>"
    # 발급 받은 Secrey Key
    secret_key = "<AWS_SECRET_KEY>"
    # 어느 나라 인지
    region = "ap-northeast-2"
}
# 어떤 버전을 사용할건지에 대한 정의    
terraform {
  required_version = "1.5.7"

  required_providers {
    aws = ">= 5.17.0"
  }
}

물론 해당 내용 말고도 넣을 수 있는게 많겠지만,

일단 나는 초보니깐..이정도만 해보겠다.

 

이제 작성한 provider.tf 파일을 토대로 terraform을 초기화 시킨다.

terraform init

그리고 나서 이제 ssh 이용을 위한 rsa 키를 만들어 줄거다.

ssh-keygen -t rsa -b 4096 -C "본인 aws 계정 이메일 주소" -f "키 만들 위치" -N ""

이미 키 만들어둔거 있으면 만들어둔 키 사용해도 된다.

 

이제 해당 키를 사용하기 위한 설정파일을 또 만들어 줄거다.

vi web_infra.tf
# "리소스 타입" "리소스 네이밍"
resource "aws_key_pair" "web_admin" {
  key_name = "web_admin"
  # 만든 ssh 키
  public_key = file("~/.ssh/web_admin.pub")
}

위에 내용을 넣어준다.

이후 plan을 실행해 apply전 정상적용되는지 확인해본다.

terraform plan -out testPlan

위 처럼 실행되면 문제 없이 실행된거고,

-out 옵션을 통해 plan 정보를 파일로 저장할 수 있다.


혹시 이런 에러가 뜬다면, 맨 처음 했던 Access 키 생성 관련 에러이다. 키를 삭제하고 다시 만들던지, 아니면 키 값이 정상적으로 들어가 있는지 확인해보자.


plan이 정상 동작했다면,

이제 apply를 해주면 적용된다.

terraform apply

실행하면 plan과 같은 화면이 나오고,

맨 밑에 Apply complete가 되면서

.tfstate 파일이 생성된다. 파일 이름만 봐도 알 수 있듯이 terraform의 상태를 확인할 수 있다.

이 부분은 다음 글에서 더 해보면서 설명하도록 하겠다.

+ Recent posts

/ /

Contact

📧 dlwjdwls60@naver.com


블로그에 내용이 있으면 해당 글을 보여주며, 없으면 내용이 복사된 채로 ChatGPT로 연결됩니다.