- 2023.05.05 황성찬 작성
- Terraform Cloud 토큰
- Terraform Cloud 로그인
- 프로필 클릭 -> User Settings
- Tokens
- Create an API Token
- AWS
- ACCESS_KEY, SECRET_KEY 발급 공식문서 참고
- EC2 KEY Pair 생성
- .env 의 EC2_KEYPAIR_NAME에 주입하하게 되며 EC2로 SSH 접근할 때 사용됨.
.env.tmpl
설명 참고
$ cp .env.tmpl .env
$ docker build -t aws:v1 .
$ docker run -d --name awsv1 aws:v1 && docker exec -it --env-file .env awsv1 /bin/sh
(conatiner shell) $ cdktf deploy
(container shell) $ cdktf output
(container shell) $ exit
$ docker kill awsv1 | docker container rm awsv1
$ cp .env.tmpl .env
$ docker build -t aws:v1 .
$ docker run -d --name awsv1 aws:v1 && docker exec -it --env-file .env awsv1 /bin/sh
(conatiner shell) $ cdktf deploy
(container shell) $ exit
$ docker kill awsv1 | docker container rm awsv1
$ cdktf destroy
배포 후 웹 콘솔에서 직접 인프라를 수정하면 terraform state file 파일과의 동기화가 불가능하여 더 이상 terraform으로 인프라를 제거할 수 없습니다.
$ cdktf ouput
명령어를 입력해서 생성된 인프라 정보를 확인할 수 있습니다.
- DB-INSTANCE-ENDPOINT: RDS의 endpoint입니다. endpoint를 통해서 RDS로 접근할 수 있습니다.
- EB-ENDPOINT: ElasticBeanstalk 환경의 Endpoint 입니다.
- S3-BUCKET-NAME: 생성된 S3 Bucket의 이름입니다.
- S3-DNS: 생성된 S3의 도메인입니다.
- 초기 인프라 셋팅에 특화되어 있습니다. 코드를 지속적으로 수정하며 인프라를 관리하기에는 적합하지 않습니다.
- 첫 배포 이후 배포 자동화를 직접 구성해야합니다. ElasticBeanstalk Deploy Action 추천
- Tag 일괄등록
- MongoDB 프로비저닝 제공
- Cloud Watch 로그 스트림 제공
- 마이그레이션 스크립트 제공