Cloud Platform MVP demo 환경을 위한 인프라 코드 저장소 입니다.
- 디렉토리별 작업 단위가 이루어 지며 독립적으로 빌드/테스트가 이루어질 수 있어야 합니다.
- 절대로 Private Key 또는 Secret Access Key, Password는 커밋하지 마세요.
- Public Key, Access Key (public id), id 까지는 괜찮습니다. (가급적 지양)
project.tfvars
에 있는 값을 최우선으로 적용합니다.- project_name = "mvp-aws-adv" 프로젝트 명 으로 모든 네이밍의 기준이 됩니다.
- profile = "miip" # aws cli profile 로 셋팅될 name으로 값입니다.
- bucket = "miip.mvp-aws-adv.tfstate" # 네이밍 룰 : profile.project_name.tfstate
- region = "ap-northeast-2"
- 기본
ec-default-ssh-key.pub
를 사용,프로젝트명-default
로 AWS 콘솔에 등록 된다. - 해당 Pub 키파일 내용을 직접 바꾸거나, AWS콘솔에서 키페어를 등록하고 각 variable 변수로 등록
- CI에서 제공 셋팅 되는 환경 변수는 아래와 같습니다. 개인 테스트시에도 아래 환경 변수명으로 설정 해주세요.
- 프로젝트명
CP_PROJECT_NAME
=miip-aws-general
- 클라우드 크리덴셜 및 환경 변수
AWS_ACCESS_KEY_ID
=AWS_SECRET_ACCESS_KEY
=
- 해당 파일은 tfvars 이지만 실제
tfvars
용 변수와backend config
용 변수로 같이 씁니다. - 기본 실행 순서
terraform init -backend-config="../project.tfvars"
terraform plan -var-file="../project.tfvars" -out tfplan.out
terraform apply tfplan.out
소문자
,숫자
,-
만 사용 가능 (_
(underbar)쓰면 버킷명 만들때 에러남.)project_name = "miip-aws-general"
- aws cli에서 쓰는 profile name 임. terraform에서 default로 기본 설정된 값을 쓰는 경우를 방지 하기 위해 다른 의도된 계정의 프로파일로 설정
- 예:
profile = "miip"
- 자원을 만들 AWS 리전
region = "ap-northeast-2"
- tfstate를 저장할 버킷명
- 네이밍 룰 :
profile
.project_name
.tfstate bucket = "mvp.miip-aws-general.tfstate"
cd tf-backend
$ aws configure --profile miip
AWS Access Key ID [****************aaaa]:
AWS Secret Access Key [****************aaaa]:
Default region name [ap-northeast-2]:
Default output format [json]:
- OSX, Linux Shell :
export AWS_DEFAULT_PROFILE=miip
- Windows Command :
set AWS_DEFAULT_PROFILE=miip
- Terraform
provider "aws" {
version = "~> 2.0"
region = "ap-northeast-2"
profile = "miip"
}
- 환경 변수에 AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_DEFAULT_REGION 가 정의 되어 있을 경우
set_aws_configure.sh
를 실행하면miip
프로파일로 설정해준다. - Docker 실행시 profile 셋팅을 위해 만듦