Terraform x AWS Full Stack 애플리케이션 구성

Getting Started
IaC 코드를 작성하려면 먼저 AWS Management Console을 이용해 먼저 최종 인프라 상태를 만들어놓고, 잘 작동하는지 확인한 다음, 이를 해당하는 리소스를 하나씩 코드로 옮기는 방법을 사용하는 방식을 사용해보면 좋습니다.
다음 자습서를 순서대로 따라합니다. 먼저 AWS Management Console을 통해 최종 결과물을 따라해보고, 예상 상태가 무엇인지 먼저 파악해야 합니다.
모든 리소스를 만들 때에는 반드시 이름을 붙여놓도록 합시다.
STEP 1: 자습서: DB 인스턴스에 사용할 Amazon VPC 생성
- VPC 및 서브넷 생성
- 프라이빗 서브넷과 퍼블릭 서브넷이 각각 두개, 총 네개가 있어야 합니다.
- VPC 보안 그룹 생성
- 퍼블릭 웹 서버가 사용할 VPC 보안 그룹을 만들어야 합니다.
- 프라이빗 DB 웹 서버가 사용할 VPC 보안 그룹을 만들어야 합니다.
- DB 서브넷 그룹 생성
- RDS 인스턴스가 사용할 VPC 서브넷 그룹을 만들어야 합니다.
STEP 2: EC2 인스턴스 생성
만들어야 하는 사양은 다음과 같습니다.
- AMI: Ubuntu Server 18
- 인스턴스 타입: t2.micro
- 사용자 데이터
#!/bin/bash echo "Hello, World" > index.html nohup busybox httpd -f -p ${var.server_port} &- 키 페어: 수동으로 만들고 EC2에 할당합니다.
Advanced Challenges
STEP 3: 자습서: DB 인스턴스 생성
- 자습서에 표시된 사양대로 RDS 인스턴스를 생성합니다.
STEP 4: 애플리케이션 로드 밸런서 및 Auto Scaling Group 적용
- Auto Scaling Group은 최소 2개, 최대 10개로 설정해놓습니다.
이번 스프린트는 위 도식만 이해하면 쉽게 복붙만 하면 되는 것이어서 생각보다는 쉬웠다. 다만, 맞는 지는 잘 모르겠지만 로드밸런서를 들어갔을 때 hello, world도 잘 뜨고 ec2로 rds 접속도 잘 되어 어느정도는 돌아가는 것 같다.

vpc.tf 에 vpc를 만들고 internet gateway랑 nat gateway를 만들었다.





subnet.tf며 퍼블릭서브넷을 만들고 퍼블릭에 쓸 라우트 테이블 따로 만들어 준 뒤 internet gateway를 붙였고 프라이빗 또한 따로 만든 뒤 nat gateway를 따로 붙여줬다.


ec2와 ec2 보안그룹이며 보면 다 이해가 갈 것이기에 따로 설명 하지는 않겠다.


db.tf 파일이며 rds와 rds에 쓰이는 보안그룹이다. rds는 프라이빗 서브넷에 만들었다.



alb.tf이며 로드밸런서, 타겟그룹, 리스너가 들어가있다. 저기서 리스너 주석처리한 부분은 리스너를 https로 만들 때 필요한 부분이어서 주석처리 했다.


auto.tf이며 오토 스케일링, 정책, 그룹등이 들어있다.
'TIL' 카테고리의 다른 글
| 52일차 컨테이너 오케스트레이션 (0) | 2022.06.30 |
|---|---|
| Terraform 더 알아보기 (0) | 2022.06.29 |
| 49일차 Infrastructure as Code (0) | 2022.06.24 |
| 47~48일차 마이크로서비스 작성 (0) | 2022.06.23 |
| 46일차 마이크로서비스 작성 실습 (0) | 2022.06.22 |