[2] 250909~ 클라우드/[b] 12월 : Terraform + Ansible

[31] ALB + ASG

서버관리자 페페 2026. 1. 22. 16:17
Client
  ↓ (DNS)
ALB
 ├─ Listener (80/443)
 │    └─ Rules (Host / Path)
 │          ↓
 └─ Target Group
        ↓ (Health Check 통과한 것만)
     EC2 (ASG로 관리)
        ↓
   Application (nginx / app)

 

[1단계 : 기초 인프라]

1. VPC

2. Public Subnet 서로 다른 AZ에서 2개 생성

3. IGW + RT

 

-

 

[2단계 : 보안그룹]

1. ALB SG

: 80 / 443 from 0.0.0.0 / 0

2. EC2 SG

: 80 from ALB SG

 

-

 

[3단계 : 타겟 그룹]

1. Type : Instance

2. Port : 80

3. Health Check Path : /

4. Matcher : 200-399

 

-

 

[4단계 : ALB + Listener]

 

1. ALB 생성

Public Subnet 2개

SG : ALB SG

 

2. Listener 생성

80 -> TG foward

나중에 443 추가

 

-

 

[5단계 : Launch Template]

1. AMI

2. Instance Type

3. EC2 SG

4, User DATA

#!/bin/bash
yum -y install nginx
systemctl enable nginx
systemctl start nginx

 

-

 

[6] ASG

1. public subnet 2개

2. Launch Template 연결

3. Target Group 연결

4. desired = 2

 

--------------------------------------------------------------------------------

 

health check 실패,

draining / initializing 반복

 

 

--------------------------------------------------------------------------------------------------------------------------------------------------------

 

변경 내용 

nacl 체크 -> 변동 없음

user data 코드 공백 제거

ec2 egress open 

 

[7] 확인

1. TG -> Targets -> Healthy

2. ALB DNS 접속

3. nginx 화면 확인

 

-

 

----------------------------------------------

 

1. ALB는 먼저 TG를 필요로 한다

2. TG는 EC2 없어도 생성 가능

3. EC2는 ALB SG에서만 오는 트래픽만 허용

4. User Data 실패 : 100% 헬스체크 실패

5. ALB는 항상 multi-AZ

'[2] 250909~ 클라우드 > [b] 12월 : Terraform + Ansible' 카테고리의 다른 글

[33] S3 + cloudfront  (0) 2026.01.31
[32] RDS Multi-AZ  (0) 2026.01.26
[30] Github -> Ansible  (0) 2026.01.12
[29] Ansible  (0) 2026.01.12
[28] 리소스 참조  (0) 2026.01.09