먼저 Terraform을 사용하기 전에 생성해둬야 할 것들이 있다.
- 자신이 사용할 클라우드 서비스의 계정(나의 경우 AWS)
- IAM에 대한 Access Key와 Secret Key
AWS 계정 만드는 법은 https://dlwjdwls90.tistory.com/65 이 글 참고바란다.
계정을 만들었다면 이제 키 발급을 받아보자.
여기에도 2가지 방법이 있다.
- UI를 통해 생성하기
- CLI에서 생성하기
먼저 UI를 통해 생성해보자.
- 먼저 IAM 이라는 서비스를 선택한다.
- 액세스 관리 - 사용자 - 보안 자격 증명 - 액세스 키 메뉴를 찾아서 액세스 키 만들기를 누른다.
- CLI 선택
- 설명 태그는 넣어도 되고 안넣어도 된다. 이후 액세스 키 만들기 누르면 생성된다.
이번엔 CLI를 이용해서 만들어보자. 해당 방법이나 위의 방법이나 똑같다. 편한걸로 해라.
- 먼저 상단 메뉴에 해당 버튼 클릭
- 그러면 아래쪽에 콘솔창이 생긴다. 해당 콘솔에 아래의 커맨드 입력하면 끝이다.
aws iam create-access-key |
- 이제 Terraform을 실행할 환경으로 돌아와 아래의 커맨드를 입력한 후 Access Key와 Secret Key를 입력해준다.
aws configure |
입력을 하고 다시 aws configure를 치면 이런식으로 나오면 된거다.
참고로 aws configure치지 않고
vi ~/.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의 상태를 확인할 수 있다.
이 부분은 다음 글에서 더 해보면서 설명하도록 하겠다.