8. AWS Fundamentals - Load Balancing, Auto Scaling Groups and EBS Volumes
AWS Certified SAA-C02 ์ํ์ค๋น
ํ์ฅ์ฑ(Scalability) ๋ฐ ๊ณ ๊ฐ์ฉ์ฑ(High Availability)
- ํ์ฅ์ฑ์ ์ ํ๋ฆฌ์ผ์ด์ /์์คํ ์ด ๋ ํฐ ๋ถํ๋ฅผ ์ฒ๋ฆฌํ ์ ์๊ฒ ์ ์ฉ๋๋ ๊ฒ์ ์๋ฏธ
- ํ์ฅ์ฑ ์ข
๋ฅ
- Vertical Scalability
- Horizontal Scalability (= ํ๋ ฅ์ฑ
elasticity
)
- ํ์ฅ์ฑ์ ๊ณ ๊ฐ์ฉ์ฑ(HA)๊ณผ ์ฐ๊ฒฐ๋์ด ์์ง๋ง ์๋ก๋ค๋ฅด๋ค.
Vertical Scalability
- ์์ง์ ํ์ฅ์ ์ธ์คํด์ค ํฌ๊ธฐ๋ฅผ ์ฆ๊ฐ ์ํค๋ ๊ฒ์ ์๋ฏธ
- ์์) t2.micro -> t2.large๋ก ํ์ฅ
- ์์ง์ ํ์ฅ์ฑ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ฐ์ ๋น๋ถ์ฐ ์์คํ ์์ ๋งค์ฐ ์ผ๋ฐ์
- RDS, ElastiCache๋ ์์ง ํ์ฅ์ด ๊ฐ๋ฅํ ์๋น์ค
- ์ผ๋ฐ์ ์ผ๋ก ์์งํ์ฅ์๋ ์ ํ์ด ์์(ํ๋์จ์ด ์ ํ)
Horizontal Scalability
- ์ํ์ ํ์ฅ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ธ์คํด์ค ํน์ ์์คํ ์ ์ฆ๊ฐ
- ๋ถ์ฐ ์์คํ ์ ์๋ฏธ
- ์น ์ ํ๋ฆฌ์ผ์ด์ /ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋งค์ฐ ์ผ๋ฐ์
- Amazon EC2์ ๊ฐ์ ํด๋ผ์ฐ๋ ์ ํ ๋๋ถ์ ์ํํ์ฅ ์ฉ์ด
High Availability
- ๊ณ ๊ฐ์ฉ์ฑ(HA)์ ์ผ๋ฐ์ ์ผ๋ก ์ํ ํ์ฅ๊ณผ ํจ๊ป ์ ๊ณต
- ์ต์ ๋ ๊ฐ์ ๋ฐ์ดํฐ ์ผํฐ(=AZ)์์ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐ ์์คํ ์ ์คํํ๋ ๊ฒ์ ์๋ฏธ
- ๊ณ ๊ฐ์ฉ์ฑ์ ๋ชฉํ๋ ๋ฐ์ดํฐ ์ผํฐ ์์ค์์ ์ด์ ๋จ๋ ๊ฒ
- ๊ณ ๊ฐ์ฉ์ฑ์ ์๋์ ์ผ ์ ์์ (RDS Multi AZ์ ๊ฒฝ์ฐ)
- ๊ณ ๊ฐ์ฉ์ฑ์ ํ์ฑํ ํ ์ ์์ (์ํ์ ํ์ฅ์ ์ํด)
EC2๋ฅผ ์ํ ๊ณ ๊ฐ์ฉ์ฑ ๋ฐ ํ์ฅ์ฑ
- Vertical Scaling : ์ธ์คํด์ค ์ฌ์ด์ฆ๋ฅผ ๋๋ฆฐ๋ค.(
=scale up/down
) - Horizontal Scaling : ์ธ์คํด์ค ๊ฐฏ์๋ฅผ ๋๋ฆฐ๋ค. (
=scale out/in
) - High Availability : ์ฌ๋ฌ AZ์์ ๋์ผํ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ํ ์ธ์คํด์ค๋ฅผ ์คํ
- Auto Scaling Group multi AZ
- Load Balancer multi AZ
Load balancing
๋ก๋ ๋ฐธ๋ฐ์ฑ์ ํธ๋ํฝ์ ์ฌ๋ฌ ์๋ฒ(e.g., EC2 ์ธ์คํด์ค) ๋ค์ด์คํธ๋ฆผ์ผ๋ก ์ ๋ฌํ๋ ์๋ฒ๋ฅผ ์๋ฏธ
Load balancer๋ฅผ ์ฌ์ฉํ๋ ์ด์
- ์ฌ๋ฌ ๋ค์ด์คํธ๋ฆผ์ ์ธ์คํด์ค์ ๋ก๋ ๋ถ์ฐ
- ์ ํ๋ฆฌ์ผ์ด์ ์ ๋จ์ผ ์ก์ธ์ค ์ง์ (DNS) ๋ ธ์ถ
- ๋ค์ด์คํธ๋ฆผ ์ธ์คํด์ค์ ์ฅ์ ๋ฅผ ์ํ ํ๊ฒ ์ฒ๋ฆฌ
- ์ธ์คํด์ค์ ์ ๊ธฐ์ ์ธ ์ํ ๊ฒ์ฌ ์ํ
- ์น ์ฌ์ดํธ์ ๋ํ SSL termination (HTTPS) ์ ๊ณต
- Enforce stickiness with cookies
- ์์ญ๊ฐ ๊ณ ๊ฐ์ฉ์ฑ
- ๊ณต์ฉ ํธ๋ํฝ๊ณผ ์ฌ์ค ํธ๋ํฝ ๋ถ๋ฆฌ
Elastic Load Balancer๋ฅผ ์ฌ์ฉํ๋ ์ด์
- Elastic Load Balancer๋ AWS์ ์ํด ๊ด๋ฆฌ๋๋ ๋ก๋ ๋ฐธ๋ฐ์
- AWS์ ์ํด ๋์์ด ๋ณด์ฅ๋๋ค.
- AWS๊ฐ ์ ๊ทธ๋ ์ด๋, ์ ์ง๋ณด์, ๊ณ ๊ฐ์ฉ์ฑ ๊ด๋ฆฌ
- AWS๋ ๋ช ๊ฐ์ง ๊ตฌ์ฑ ๋ ธ๋ธ๋ง ์ ๊ณต
- ์์ฒด ๋ก๋ ๋ฐธ๋ฐ์๋ฅผ ์ค์ ํ๋ ๊ฒ์ ๋น์ฉ์ด ๋ ๋ค์ง๋ง ํจ์ฌ ๋ ๋ง์ ์๊ณ ๊ฐ ํ์ํ๋ค.
- AWS์ ๋ง์ ์ ํ/์๋น์ค์ ํตํฉ ๊ฐ๋ฅ
- EC2, EC2 Auto Scaling Groups, Amazon ECS
- AWS Certificate Manager(ACM), CloudWatch
- Route 53, AWS WAF, AWS Global Accelerator
Health Checks
- ์ํ์ฒดํฌ(
Health Checks
)๋ ๋ก๋ ๋ฐธ๋ฐ์ฑ ์ฅ์น์์ ๋งค์ฐ ์ค์ํ๋ค. - ๋ก๋ ๋ฐธ๋ฐ์๋ ํธ๋ํฝ์ ์ ๋ฌํ๋ ์ธ์คํด์ค๊ฐ ์์ฒญ์ ์๋ตํ ์ ์๋์ง ์ฌ๋ถ๋ฅผ ์ ์ ์๋๋ก ํ๋ค.
- ์ํ ์ ๊ฒ์ ํฌํธ ๋ฐ route์์ ์ํํ๋ค. (
/health
๋ ๊ณตํต์) 200
์๋ต์ด ์๋๊ฒฝ์ฐ ์ธ์คํด์ค๋ ์ํ๊ฐ ์ฌ๋ฐ๋ฅด์ง ๋ชปํ๋ค.
AWS ๋ก๋ ๋ฐธ๋ฐ์ ์ข ๋ฅ
- AWS๋ 4๊ฐ์ง ๋ก๋๋ฐธ๋ฐ์ค๊ฐ ์กด์ฌํ๋ค.
Load balancer ์ข ๋ฅ | |
---|---|
Classic Load Balancer CLB v1(2009) |
HTTP, HTTPS, TCP, SSL(Secure TCP) |
Application Load Balancer ALB v2(2016) |
HTTP, HTTPS, WebSocket |
Network Load BalancerNLB v2(2017) |
TCP, TLS(secure TCP), UDP |
Gateway Load BalancerGWLB (2020) |
Operates at layer3 (Network layer) - IP Protocol |
- ์ ๋ฐ์ ์ผ๋ก ์๋ก์ด ์ธ๋์ ๋ก๋ ๋ฐธ๋ฐ์๋ ๋ ๋ง์ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ฏ๋ก ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค.
- ์ผ๋ถ ๋ก๋ ๋ฐธ๋ฐ์๋ ๋ด๋ถ(private), ์ธ๋ถ(public) ELB๋ก ์ค์ ๊ฐ๋ฅ
Classic Load Balancers (v1)
- TCP(Layer 4), HTTP & HTTPS(Layer 7) ์ง์
- ์ํ ๊ฒ์ฌ๋ TCP ๋๋ HTTP ๊ธฐ๋ฐ
- ๊ณ ์ hostname :
http://xxx.region.elb.amazonaws.com/
Application Load Balancer (v2)
- Layer 7 (HTTP)
- ์ฌ๋ฌ ์์คํ (target groups)์์ ์ฌ๋ฌ HTTP ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ํ ๋ก๋ ๋ฐธ๋ฐ์ฑ
- ๋์ผํ ์์คํ ์ ์ฌ๋ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ํ ๋ก๋ ๋ฐธ๋ฐ์ฑ(example: containers)
- HTTP/2 ๋ฐ ์น ์์ผ ์ง์
- redirects ์ง์ (์: HTTP -> HTTPS)
- URL ๊ธฐ๋ฐ ๋ผ์ฐํ
example.com/users
example.com/post
- URL hostname ๊ธฐ๋ฐ ๋ผ์ฐํ
one.example.com
other.example.com
- Query string, ํค๋ ๊ธฐ๋ฐ ๋ผ์ฐํ
example.com/users?id=123&order=false
- ALB๋ ๋ง์ดํฌ๋ก ์๋น์ค์ ์ปจํ ์ด๋ ๊ธฐ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋งค์ฐ ์ ํฉ (example : Docker & Amazon ECS)
- ECS์ ๋์ ํฌํธ๋ก ๋ฆฌ๋๋ ์ ํ๋ ํฌํธ ๋งคํ ๊ธฐ๋ฅ ์์
- ๊ทธ์ ๋นํด, ์ ํ๋ฆฌ์ผ์ด์ ๋น ์ฌ๋ฌ Classic Load Balancer ๊ฐ ํ์
ALB Target Group(๋์ ๊ทธ๋ฃน)
- EC2 ์ธ์คํด์ค(Auto Scaling Group์ ์ํด ๊ด๋ฆฌํ ์ ์๋) - HTTP
- ECS(ECS ์์ฒด ๊ด๋ฆฌ) Task - HTTP
- ๋๋ค ํจ์: HTTP ์์ฒญ์ด JSON ์ด๋ฒคํธ๋ก ๋ณํ
- IP ์ฃผ์: ๋ฐ๋์ ์ฌ์ค IP ์์ฒญ
- ALB๋ ์ฌ๋ฌ ๋์ ๊ทธ๋ฃน์ผ๋ก ๋ผ์ฐํ ํ ์ ์์
- ๋์ ๊ทธ๋ฃน ์์ค์์ ์ํ ์ฒดํฌ๊ฐ ๊ฐ๋ฅํ๋ค.
ALB ์์์ผํ ๋ด์ฉ
- ๊ณ ์ ํธ์คํธ์ด๋ฆ :
XXX.region.elb.amazonaws.com
- ์์ฉ ํ๋ก๊ทธ๋จ ์๋ฒ๊ฐ ํด๋ผ์ด์ธํธ IP๋ฅผ ์ง์ ํ์ธํ์ง ์์
- ํด๋ผ์ด์ธํธ ์ค์ IP๊ฐ X-Forwarded-For ํค๋์ ์ฝ์
- ํฌํธ์
X-Forwarded-Port
์ ํ๋กํX-Forwarded-Proto
๋ ๊ฐ์ ธ์ฌ ์ ์์
Network Load Balancer (v2)
- Network load balancer(Layer 4)๋ฅผ ํตํด:
- TCP, UDP ํธ๋ํฝ์ ์ธ์คํด์ค๋ก ์ ๋ฌ
- ์ด๋น ์๋ฐฑ๋ง ๊ฑด์ ์์ฒญ ์ฒ๋ฆฌ
- ์ง์ฐ ์๊ฐ ์ต๋ ~100ms(vs 400ms for ALB) ๋จ์ถ
- NLB๋ AZ๋น ํ๋์ ์ ์ IP๋ฅผ ๊ฐ์ง๋ฉฐ Elastic IP ํ ๋น์ ์ง์(ํน์ IP ํ์ดํธ ๋ฆฌ์คํธ์ ๋์์ด ๋จ.)
- TCP ๋๋ UDP ํธ๋ํฝ์ ์ต๊ณ ์ ์ฑ๋ฅ์ ์ํด ์ฌ์ฉ
- AWS ํ๋ฆฌํฐ์ด์๋ ํฌํจ๋์ง ์์
NLB Target Groups(๋์๊ทธ๋ฃน)
- EC2 ์ธ์คํด์ค
- IP ์ฃผ์ : ๋ฐ๋์ ์ฌ์ค๋ง IP
- Application Load Balancer
Gateway Load Balancer
- AWS์์ ์จ๋ํํฐ ๋คํธ์ํฌ ๊ฐ์ ์ดํ๋ผ์ด์ธ์ค ๊ตฌ์ถ, ํ์ฅ ๋ฐ ๊ด๋ฆฌ
- ์์) ๋ฐฉํ๋ฒฝ, ์นจ์ ํ์ง ๋ฐ ์ฐจ๋จ ์์คํ , ์ฌ์ธต ํจํท ๊ฒ์ฌ ์์คํ , ํ์ด๋ก๋ ์กฐ์ ๋ฑ
- Layer 3 (๋คํธ์ํฌ Layer)์์ ์๋ - IP Packets
- ์๋ ๊ธฐ๋ฅ๋ค๊ณผ ํตํฉํ ์ ์๋ค.
- Transparent Network Gateway: ๋ชจ๋ ํธ๋ํฝ์ ๋ํ ๋จ์ผ ์ ๋ ฅ ์์
- Load Balancer : ๊ฐ์ ์ดํ๋ผ์ด์ธ์ค๋ก ํธ๋ํฝ ๋ถ์ฐ
- GENEVE protocol 6081 ํฌํธ๋ก ์ฌ์ฉํ ์ ์๋ค.
Gateway Load Balancer - Target Groups
- EC2 instances
- IP Addresses : ๋ฐ๋์ private IP
Stick Sessions (Session Affinity)
- ๋์ผํ ํด๋ผ์ด์ธํธ๊ฐ ํญ์ ๋ก๋๋ฐธ๋ฐ์ ๋ค์ ์๋ ๋์ผํ ์ธ์คํด์ค๋ก ๋ฆฌ๋ค์ด๋ ์ ๋๋๋ก ๊ณ ์ ํ๋ ๊ธฐ๋ฅ์ ๊ตฌํ
- CLB & ALB์์ ๋์ํ๋ค.
- ๊ณ ์
cookie
์๋ ์ฌ์ฉ์๊ฐ ์ ์ดํ๋ ๋ง๋ฃ์ผ์๊ฐ ์์ - ์ฌ์ฉ ์ฌ๋ก : ์ฌ์ฉ์๊ฐ ์ธ์ ๋ฐ์ดํฐ๋ฅผ ์์ง ์๊ฒ ํ๊ธฐ
stickiness
๋ฅผ ์ฌ์ฉํ๋๋ก ์ค์ ํ๋ฉด ๋ฐฑ์๋ EC2 ์ธ์คํด์ค์ ๋ํ ๋ก๋๊ฐ ๋ถ๊ท ํํด์ง ์ ์๋ค.
Cookie Names
Cookie Names | description |
---|---|
Application-based Cookies | Custom cookie ย ย ยท ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํด ์ฌ์ฉ์๊ฐ ์ง์ ํ๋ ๋ชจ๋ ํน์ฑ์ ํฌํจ ๊ฐ๋ฅ ย ย ยท ์ฟ ํค ์ด๋ฆ์ ๊ฐ ๋์ ๊ทธ๋ฃน target group ์ ๋ํด ๊ฐ๋ณ์ ์ผ๋ก ์ง์ ํด์ผ ํจย ย ยท AWSALB , AWSALBAPP ,AWSALBTG ๋ฑ ELB ์์ฝ์ด๋ ์ฌ์ฉํ์ง ๋ง๊ฒApplication cookie ย ย ยท ๋ก๋๋ฐธ๋ฐ์์์ํด ์์ฑย ย ยท ์ฟ ํค์ ์ด๋ฆ์ AWSALBAPP |
Duration-based Cookies | ยท ๋ก๋๋ฐธ๋ฐ์์ ์ํด ์์ฑ๋๋ ์ฟ ๊ธฐ ยท ALB์ ๊ฒฝ์ฐ AWSALB, CLB์ ๊ฒฝ์ฐ AWSCLB |
Cross-Zone ๋ก๋ ๋ฐธ๋ฐ์ฑ
Cross-Zone ๋ก๋ ๋ฐธ๋ฐ์ฑ ์ฌ์ฉ
๊ฐ ๋ก๋ ๋ฐธ๋ฐ์ ์ธ์คํด์ค๋ ๋ชจ๋ AZ์ ๋ฑ๋ก๋ ๋ชจ๋ ์ธ์คํด์ค์ ๊ณ ๋ฅด๊ฒ ๋ถ์ฐ
Cross-Zone ๋ก๋ ๋ฐธ๋ฐ์ฑ์ ์ฌ์ฉํ์ง ์์
์์ฒญ์ด Elastic Load Balancer ๋ ธ๋์ ์ธ์คํด์ค์ ๋ถ์ฐ
Load balancer | Cross-Zone Load Balancing |
---|---|
Application Load Balancer | ยท ํญ์ ๋์(๋นํ์ฑํ ๋ถ๊ฐ๋ฅ) ยท AZ๊ฐ ์๊ธ ์์ |
Network Load Balancer | ยท ๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ฉ ์ํจ ยท ํ์ฑํ ๋ ๊ฒฝ์ฐ AZ๊ฐ ์๊ธ ์ง๋ถ |
Classic Load Balancer | ยท ๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ฉ ์ํจ ยท ํ์ฑํ ๋ ๊ฒฝ์ฐ AZ๊ฐ ๋ฐ์ดํฐ ์๊ธ ์์ |
SSL/TLS
- SSL ์ธ์ฆ์๋ฅผ ํตํด ํด๋ผ์ด์ธํธ์ ๋ก๋ ๋ฐธ๋ฐ์ ๊ฐ ํธ๋ํฝ์ ์ ์ก ์ค ์ํธํ๋ฅผ ํ ์ ์๋ค.
- SSL : ์ํธํ ํ๋๋ฐ์ Secure Socket Layer๋ฅผ ์ฌ์ฉ
- TLS : ์ต์ ๋ฒ์ ์ธ ์ ์ก ๋ณด์ ๊ณ์ธต์ ๋ํ๋ธ๋ค.
- ์์ฆ์๋ TLS ์ธ์ฆ์๊ฐ ์ฃผ๋ก ์ฌ์ฉ๋๋ฉฐ ์ฌ์ ํ SSL์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค.
- ๊ณต์ฉ SSL ์ธ์ฆ์๋ CA(Certificate Authorities)์ ์ํด ๋ฐ๊ธ๋๋ค.
- SSL ์ธ์ฆ์๋ ๋ง๋ฃ ๋ ์ง๊ฐ ์์ผ๋ฏ๋ก ๊ฐฑ์ ํด์ผ ํ๋ค.
Load Balancer - SSL Certificates
- ๋ก๋ ๋ฐธ๋ฐ์๋
X.509
์ธ์ฆ์ (SSL/TLS ์๋ฒ ์ธ์ฆ์)๋ฅผ ์ฌ์ฉ - ACM(AWS Certificate Manager)์ ์ฌ์ฉํ์ฌ ์ธ์ฆ์๋ฅผ ๊ด๋ฆฌํ ์ ์์
- ์์ ์ ์ธ์ฆ์๋ฅผ ๋ง๋ค์ด ์
๋ก๋๋ ๊ฐ๋ฅ
Http listener
- ๊ธฐ๋ณธ ์ธ์ฆ์๋ฅผ ์ง์ ํด์ผ ํ๋ค.
- ์ฌ๋ฌ ๋๋ฉ์ธ์ ์ง์ํ๊ธฐ ์ํด ์ ํ์ ์ผ๋ก ์ธ์ฆ ๋ชฉ๋ก์ ์ถ๊ฐ ๊ฐ๋ฅ
- ํด๋ผ์ด์ธํธ๋ SNI(Server Name Indication)๋ฅผ ์ฌ์ฉํ์ฌ ๋๋ฌํ๋ ํธ์คํธ ์ด๋ฆ์ ์ง์ ํ ์ ์๋ค
- ์ด์ ๋ฒ์ ์ SSL/TLS(๋ ๊ฑฐ์ ํด๋ผ์ด์ธํธ)๋ฅผ ์ง์ํ๋ ์ ์ฑ ์ง์ ๊ฐ๋ฅ
SSL - Server Name Indication (SNI)
-
SNI๋ ์ฌ๋ฌ ๊ฐ์ SSL ์ธ์ฆ์๋ฅผ ํ๋์ ์น ์๋ฒ์ ๋ก๋ํ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐ(์ฌ๋ฌ ์น์ฌ์ดํธ๋ฅผ ์๋น์คํ๊ธฐ ์ํด)
-
์๋ก์ด ํ๋กํ ์ฝ์ด๋ฉฐ ํด๋ผ์ด์ธํธ๊ฐ ์ด๊ธฐ SSL ํธ๋์์ดํฌ ๋์ ์๋ฒ์ ํธ์คํธ ์ด๋ฆ์ ํ์ํด์ผํ๋ค. -> ๊ทธ๋ฌ๋ฉด ์๋ฒ๊ฐ ์ฌ๋ฐ๋ฅธ ์ธ์ฆ์๋ฅผ ์ฐพ๊ฑฐ๋ ๊ธฐ๋ณธ ์ธ์ฆ์๋ฅผ ๋ฐํ
Note- ์ค์ง ALB, NLB, CloudFront ์์๋ง ๋์
- CLB์์๋ ๋์ํ์ง ์์
Load balancer | SSL ์ธ์ฆ์ |
---|---|
Classic Load Balancer | ยท ํ๋์ SSL ์ธ์ฆ์๋ง ์ง์ ยท ์ฌ๋ฌ SSL์ ๊ฐ๋ ์ฌ๋ฌ ํธ์คํธ ์ด๋ฆ์๋ ์ฌ๋ฌ CLB๋ฅผ ์ฌ์ฉ |
Application Load Balancer | ยท ์ฌ๋ฌ SSL ์ธ์ฆ์๋ฅผ ๊ฐ์ง ๋ฆฌ์ค๋ ์ง์ ยท SNI๋ฅผ ์ฌ์ฉํ์ฌ ์๋ |
Network Load Balancer | ยท ์ฌ๋ฌ SSL ์ธ์ฆ์๋ฅผ ๊ฐ์ง ๋ฆฌ์ค๋ ์ง์ ยท SNI๋ฅผ ์ฌ์ฉํ์ฌ ์๋ |
Connection Draining
- ๊ฐ ELB ํ์
๋ง๋ค ์ด๋ฆ์ด ๋ค๋ฆ
- CLB :
Connection Draining
- ALB & NLB :
Deregistration Delay
(๋ฑ๋ก ์ทจ์ ์ง์ฐ)
- CLB :
- ์ธ์คํด์ค๊ฐ ๋ฑ๋ก ์ทจ์ ์ค์ด๊ฑฐ๋ ์ ์ ์ํ๊ฐ ์๋ ๋์ ์ธ์คํด์ค์ ์ด๋ ์ ๋ ์๊ฐ์ ์ฃผ์ด
in-flight requests
์ ์๋ฃํ ์ ์๋๋ก ๋ง๋ค์ด ์ฃผ๋ ๊ธฐ๋ฅ - ๋ฑ๋ก์ทจ์
de-registering
๋๋ฉด ๋ฑ๋ก ์ทจ์ ์ค์ธ EC2 ์ธ์คํด์ค๋ก๋ ์๋ก์ด ์์ฒญ์ ๋ณด๋ด์ง ์๋๋ค. - 1 ~ 3,600์ด (๊ธฐ๋ณธ๊ฐ : 300์ด)
- ๋นํ์ฑํ ๊ฐ๋ฅ (๊ฐ์ 0์ผ๋ก ์ค์ )
- ์์ฒญ์ด ์งง์ ๊ฒฝ์ฐ ๋ฎ์ ๊ฐ์ผ๋ก ์ค์
Auto Scaling Group
Auto Scaling Group(ASG) ๋ชฉํ
- ์ฆ๊ฐํ๋ ๋ก๋์ ๋ง๊ฒ Scale Out : EC2 ์ธ์คํด์ค ์ถ๊ฐ
- ๊ฐ์ํ๋ ๋ก๋์ ๋ง๊ฒ Scale In : EC2 ์ธ์คํด์ค ์ ๊ฑฐ
- AGS์์ ์คํ๋๋ ์ต์ ๋ฐ ์ต๋ EC2 ์ธ์คํด์ค ์๋ฅผ ๋ณด์ฅ
- ์ ์ธ์คํด์ค๋ฅผ ์๋์ผ๋ก ๋ก๋ ๋ฐธ๋ฐ์์ ๋ฑ๋ก
- ์ด์ ์ธ์คํด์ค๊ฐ ๋น์ ์ ํน์ ์ข ๋ฃ๋ ๊ฒฝ์ฐ EC2 ์ธ์คํด์ค ๋ค์ ์์ฑ
- ASG๋ ๋ฌด๋ฃ (๊ธฐ๋ณธ EC2 ์ธ์คํด์ค์ ๋ํด์๋ง ์ง๋ถ)
Auto Scaling Group ์์ฑ
- Launch Template (์ด์ ๋ฒ์ Launch configurations๋ ๋์ด์ ์ฌ์ฉ๋์ง ์์)
- AMI + Instance Type
- EC2 User Data
- EBS Volumes
- Security Groups
- SSH Key PAir
- IAM Roles for your EC2 Instance
- Network + Subnets Information
- Load Balancer Information
- Min Size / Max Size / Initial Capacity
- Scaling ์ ์ฑ
Auto Scaling - CloudWatch Alarms & Scaling
- CloudWatch ์๋์ ๊ธฐ๋ฐ์ผ๋ก AGS๋ฅผ ํ์ฅ ๊ฐ๋ฅ
- alarm์ด ๋ฉํธ๋ฆญ ๋ฑ์(CPU ํ๊ท ๋๋ ์ฌ์ฉ์ ์ง์ ๋ฉํธ๋ฆญ) ๋ชจ๋ํฐ๋ง
- ์ ์ฒด ASG ์ธ์คํด์ค์ ๋ํด ํ๊ท CPU์ ๊ฐ์ ๋ฉํธ๋ฆญ์ด ๊ณ์ฐ
๊ฒฝ๋ณด ๊ธฐ์ค
- ์ค์ผ์ผ ์์ ์ ์ฑ ์์ฑ (์ธ์คํด์ค ์ ์ฆ๊ฐ)
- ์ค์ผ์ผ ์ธ ์ ์ฑ ์์ฑ(์ธ์คํด์ค ์ ๊ฐ์)
Dynamic Scaling Policies
Dynamic Scaling Policies | description |
---|---|
Target Tracking Scaling(๋์์ถ์ ์ค์ผ์ผ๋ง) | ยท ๊ฐ์ฅ ๊ฐ๋จํ๊ณ ์ฝ๊ฒ ์ค์ ยท ์์) ๋๋ ASG ํ๊ท CPU๊ฐ ์ฝ 40%๋ฅผ ์ ์งํ๊ธฐ๋ฅผ ์ํ๋ค. |
Simple / Step Scaling | ยท CloudWatch ๊ฒฝ๋ณด๊ฐ ํธ๋ฆฌ๊ฑฐ๋๋ฉด(CPU > 70%), 2๋ ์ถ๊ฐ ยท CloudWatch ๊ฒฝ๋ณด๊ฐ ํธ๋ฆฌ๊ฑฐ ๋์์ ๋(CPU < 30%), 1๋๋ฅผ ์ญ์ ํ๋ค. |
Scheduled Actions | ยท ์๋ ค์ง ์ฌ์ฉ ํจํด์ ๊ธฐ๋ฐ์ผ๋ก ํ์ฅ ์์ ยท ์์) ๊ธ์์ผ ์คํ 5์์ ์ต์ ์ฉ๋์ 10์ผ๋ก ๋๋ฆฐ๋ค. |
Predictive Scaling
- ์์ธก ์ค์ผ์ผ๋ง : ์ง์์ ์ผ๋ก ๋ก๋ ์์ธก ๋ฐ ์ค์ผ์ค ํ์ฅ์ ๋ฏธ๋ฆฌ ๊ณํํ๋ค.
ํ์ฅ์ ์ ํฉํ ์ธก์ ๊ธฐ์ค
- CPUUtilization(CPU ์ฌ์ฉ๋ฅ ) : ์ธ์คํด์ค ์ ์ฒด์ ํ๊ท CPU ํ์ฉ๋ฅ
- RequestCountPerTarget(๋์๋น ์์ฒญ ์) : EC2 ์ธ์คํด์ค ๋น ์์ฒญ ์๊ฐ ์์ ์ ์ธ์ง ํ์ธ
- Average Network In/Out(ํ๊ท ๋คํธ์ํฌ ์ ์ถ๋ ฅ) : ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋คํธ์ํฌ์์ญ์ธ ๊ฒฝ์ฐ
- Any custom metric : CloudWatch๋ฅผ ์ฌ์ฉํ์ฌ ํธ์
Scaling Cooldowns
- ์ค์ผ์ผ๋ง ์์ ์ด ๋ฐ์ํ ํ ์ฟจ ๋ค์ด ํ์์ด ๋ฐ์(๊ธฐ๋ณธ๊ฐ 300์ด)
- ์ฟจ ๋ค์ด ํ์๋์ ASG๋ ์ถ๊ฐ ์ธ์คํด์ค๋ฅผ ์์ ํน์ ์ข
๋ฃํ์ง ์๋๋ค. (์ธก์ ์งํ๊ฐ ์์ ํ๋๋๋ก ํ์ฉ)
Tip์ฆ์ ์ฌ์ฉํ ์ ์๋ AMI๋ฅผ ์ฌ์ฉํ์ฌ ์์ฒญ ์๊ฐ์ ๋จ์ถํ๊ณ ์ฟจ ๋ค์ด ํ์์ ๋จ์ถํ๋ค.
ASG for Solutions Architects
ASG ๊ธฐ๋ณธ ์ข ๋ฃ ์ ์ฑ (simplified version)
- ์ธ์คํด์ค ์๊ฐ ๊ฐ์ฅ ๋ง์ AZ๋ฅผ ์ฐพ๋๋ค.
- AZ์ ์ ํํ ์ธ์คํด์ค๊ฐ ์ฌ๋ฌ ๊ฐ ์๋ ๊ฒฝ์ฐ ๊ฐ์ฅ ์ค๋๋ launch configuration์ ๊ฐ๋ ์ธ์คํด์ค๋ฅผ ์ญ์
ASG๋ ๊ธฐ๋ณธ์ ์ผ๋ก AZ ์ ์ฒด์์ ์ธ์คํด์ค ์ ๊ท ํ์ ์๋
ASG Lifecycle Hooks
- ๊ธฐ๋ณธ์ ์ผ๋ก ASG์์ ์ธ์คํด์ค๊ฐ ์คํ๋์๋ง์ ์๋น์ค๊ฐ ์์๋๋ค.
Pending state
: ์ธ์คํด์ค๊ฐ ์๋น์ค ์ํ๊ฐ ๋๊ธฐ ์ ์ ์ถ๊ฐ ๋จ๊ณ๋ฅผ ์ํํ ์ ์์Terminating state
: ์ธ์คํด์ค๊ฐ ์ข ๋ฃ ๋๊ธฐ ์ ์ ์ผ๋ถ ์์ ์ ์ํํ ์ ์๋ค.
Launch Template vs Launch Configuration
Launch Template(newer) | Launch Configuration(legacy) |
---|---|
ยท ์ฌ๋ฌ ๋ฒ์ ์ ๊ฐ์ง ์ ์์ |
๋งค๋ฒ ๋ค์ ๋ง๋ค์ด์ผ ํ๋ค. |
ยท Amazon Machine Image(AMI) ID, ์ธ์คํด์ค ์ ํ, Key pair, ๋ณด์ ๊ทธ๋ฃน, EC2 ์ธ์คํด์ค๋ฅผ ์ฌ์ฉํ๋ ๊ธฐํ ๋งค๊ฐ๋ณ์(tags, EC2 user-data โฆ) |