본문 바로가기

AWS Cloud

[AWS - Terraform] Architecture create

반응형

Terraform

* 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 주석 - 한줄 주석 : #
- 범위 주석 : /*  내용 ~~~ */

정상 설치 완료 테스트
VSCode (확장 프로그램) 대략 요론 화면이다

 

 

 

* AWS 계정 Key 발급
- Key 발급 주의 사항으로 외부로 노출이 되지 않도록 주의하며, Secret Key는 발급시에만 확인이 가능

AWS 관리 콘솔
IAM -> 보안 자격 증명 -> 키 생성

 

 

 

* Terraform Provider 선언 (Platform 연결)

aws-provider.tf 파일에 해당 내용 입력

 

 

 

* Terraform main file 코드 작성

main.tf로 적용

- 실제로 resource 별로 .tf 파일을 분리하여 관리하는 케이스로 구현하지만, 학습을 위해 한 파일에 모두 적용

 

 

 

* Terraform Code 구성

구성 형태

 

 

 

* 선언한 다른 Resource 참조 방식

타 resource에 특정 resource 참조 시

 

 

 

* 최종 구현 Architecture

Web - App - DB의 2AZ로 구성된 Three-Tier 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