* IaC (Infrastructure as Code) 방식으로 코드를 통한 인프라 자동 구축을 위해 사용
- Terraform의 경우 Platform 전환이 비교적 자유로워 사용이 용이 (비교적이라고 했지 편하진 않음)
* 참조 사항
- 필자는 학습을 목적으로 main.tf에 전체 인프라 구축 코드를 작성하였으며, 이에 대해 각기 설명함
- .tf 파일을 resource 별로 분할할 시, 필자와 코드가 다를 수 있음
- Terraform 기초부터 순차적으로 보길 권장 (1번 게시물의 이해가 매우 중요)
1. Architecture Create : https://isc9511.tistory.com/163
2. Bucket 생성 및 파일 업로드 : https://isc9511.tistory.com/164
3. IAM Role 생성 및 정책 Attachment : https://isc9511.tistory.com/165
4. Network Setting : https://isc9511.tistory.com/166
5. RDS 생성 : https://isc9511.tistory.com/167
6. Instance(EC2) 생성 : https://isc9511.tistory.com/168
7. Auto Scaling 생성 : https://isc9511.tistory.com/169
8. Load Balancer 생성 : https://isc9511.tistory.com/170
* 참조 사항
- Three-Tier Architecture에 대한 구현을 Terraform Code로 구현하며
동작 원리, 순서, 코드 적용 등 많은 부분을 학습하였으며,
해당 블로그에 전체 코드를 올리지는 않을 예정이지만,
전체 게시물을 본다면 누구나 반드시 구현할 수 있도록
모든 원리, 주의 사항을 다 열거해 놓았으니 필요한 사람은 꼭 전체를 다 보기를 권장
// 이외에 별도의 필요한 부분만 학습을 하는데도 큰 도움이 될것이라 자부함 //
* 설치 사용 환경 (필자의 환경)
항목 | 내용 |
설치 환경 | - Local OS (Windows) |
IaC Platform | - AWS |
설치 프로그램 | - VS Code (확장 프로그램 - HashiCorp Terraform, Korean Language Pack for VS) - Terraform.exe |
필요 요건 | - AWS 계정 및, 해당 계정의 Access Key, Secret Key |
* 기본 Terraform 사용 방법
항목 | 내용 |
Terraform 정상 설치 확인 | - Terraform.exe 및 Terraform code가 위치하는 폴더 경로에서 Terraform -version 명령 |
Terraform 기본 명령어 | 1) Terraform init : 작업 디렉터리 초기화 2) Terraform validate : 구성 파일의 구문 유효성 검사 3) Terraform plan : 클라우드 플랫폼에서 실행 시, 적용되는 테스트 (실행 계획) 4) Terraform apply : 작성한 코드로 인프라 실제 구축 진행 5) Terraform destroy : 적용된 Terraform code로 생성한 인프라 제거 - 단, destroy의 경우, apply로 생성한 인프라 Resource의 설정 사항 변동이 없을 때 가능 (임의 변경 후 destroy 실행 시, 지워지지 않고 잔재하는 Resource가 있으며 에러 발생) |
Terraform Code 주석 | - 한줄 주석 : # - 범위 주석 : /* 내용 ~~~ */ |
* AWS 계정 Key 발급
- Key 발급 주의 사항으로 외부로 노출이 되지 않도록 주의하며, Secret Key는 발급시에만 확인이 가능
* Terraform Provider 선언 (Platform 연결)
* Terraform main file 코드 작성
- 실제로 resource 별로 .tf 파일을 분리하여 관리하는 케이스로 구현하지만, 학습을 위해 한 파일에 모두 적용
* Terraform Code 구성
* 선언한 다른 Resource 참조 방식
* 최종 구현 Architecture
'AWS Cloud' 카테고리의 다른 글
[AWS - Terraform] IAM Role 생성 및 정책 Attachment (0) | 2023.03.28 |
---|---|
[AWS - Terraform] Bucket 생성 및 파일 업로드 (0) | 2023.03.28 |
[AWS] STS(Security Token Service) (0) | 2022.08.03 |
[AWS] Cognito (0) | 2022.08.03 |
[AWS] X-Ray (0) | 2022.07.29 |