terraform 설정하기
1. .gitignore 수정
기존 gitignore 파일에
terraform 관련 ignore파일을 추가해야 한다.
( https://www.toptal.com/developers/gitignore )
2. deploy 디렉토리 생성
최상위 디렉토리 안에 deploy
라는 디렉토리를 생성한다.
이는 모듈화 및 유지/보수 측면을 고려한 것이다.
terraform 관련 파일(.tf
)들은 모두
deploy 디렉토리 내부에서 관리될 것이다.
main.tf
terraform {
backend "s3" {
bucket = "info-share-tfstate"
key = "recipe-app.tfstate"
region = "us-east-1"
encrypt = true
dynamodb_table = "recipe-app-api-devops-tf-state-lock"
}
}
provider "aws" {
region = "us-east-1"
version = "~> 3.22.0"
}
docker-compose.yml
version: '3.7'
services:
terraform:
image: hashicorp/terraform:0.14.3
volumes:
- .:/infra
working_dir: /infra
environment:
- AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}
- AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}
- AWS_SESSION_TOKEN=${AWS_SESSION_TOKEN}
이제 terraform을 초기화하자.
그 전에 해야할 작업이 있다.
터미널에 아래와 같은 명령어를 타이핑하자.
(전제: aws-vault가 설치되어 있어야 한다.)
aws-vault exec 'aws의 iam user 계정' --duration=12h
위의 command를 타이핑하면 MFA (멀리팩터 인증)을 하라는 부분이 출력된다.
스마트폰에 설치된 OTP를 통해 6자리 숫자를 입력한다.
(이 부분은 AWS iamuser 및 root 유저의 rule 설정과 관련된 부분이다.
3. terraform 초기화
docker-compose -f deploy/docker-compose-proxy.yml run --rm terraform init
위와 같이 경고 메시지를 발견했다.
deprecated syntax를 사용하고 있다는 건데,
terraform 공식문서를 구글링하여 아래와 같이 main.tf 파일을 수정했다.
- terraform 공식문서 자료
- main.tf 코드 수정
terraform {
backend "s3" {
bucket = "info-share-tfstate"
key = "recipe-app.tfstate"
region = "us-east-1"
encrypt = true
dynamodb_table = "recipe-app-api-devops-tf-state-lock"
}
required_providers {
aws = {
version = "~> 3.22.0"
source = "hashicorp/aws"
}
}
}
provider "aws" {
region = "us-east-1"
}
- 초기화 완료
Author And Source
이 문제에 관하여(terraform 설정하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@khh180cm/terraform-설정하기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)