Source: Building an Active-Active AWS Architecture for $47 a Month
๐ฃ Hook: "์ฒ์กฐ๊ตญ AWS ์๊ธ์ ํผํ๋ ๋ฒ"
"Active-Active ์ํคํ ์ฒ"๋ผ๊ณ ํ๋ฉด ๋ณดํต ์ $15,000์ง๋ฆฌ Aurora Global Database๋ฅผ ๋ ์ฌ๋ฆฝ๋๋ค. ํ์ง๋ง ์ฌ์ด๋ ํ๋ก์ ํธ๋ ์ด๊ธฐ ์คํํธ์ ์๊ฒ ๊ทธ๊ฑด ์์ดํ์์ฃ .
์ฌ๊ธฐ Honda์ ์๋์ด ์ํคํ ํธ๊ฐ ๊ณต๊ฐํ ์ 47๋ฌ๋ฌ์ง๋ฆฌ ์์กด ๋ ์ํผ๊ฐ ์์ต๋๋ค. ๋น๊ฒฐ์ '๋ฐ์ดํฐ ์ฑ๊ฒฉ์ ๋ฐ๋ฅธ ๋ถ๋ฆฌ'์ ๋๋ค.
๐๏ธ The 3-Layer Architecture
Layer 1: ๋จ๊ฑฐ์ด ๋ฐ์ดํฐ (Hot Data) -> DynamoDB
์ ์ ์ธ์ , API ์๋ ์ ํ, ์ค์๊ฐ ์นด์ดํฐ์ฒ๋ผ ์ฆ์ ์ฐ๊ธฐ๊ฐ ํ์ํ ๋ฐ์ดํฐ๋ DynamoDB Global Tables์ ๋ฃ์ต๋๋ค.
- ์?: ๋ฆฌ์ ๊ฐ ๋ณต์ ๊ฐ 1์ด ๋ฏธ๋ง์ ๋๋ค.
- ๋น์ฉ: ์ฐ๊ธฐ ์ฉ๋ 25, ์ฝ๊ธฐ 10 ๊ธฐ์ค ์ฝ $18/์.
Layer 2: ๊ด๊ณํ ๋ฐ์ดํฐ (RDBMS) -> Aurora Serverless v2
๋ณต์กํ ํธ๋์ญ์ ์ด ํ์ํ ๋ฐ์ดํฐ๋ Aurora PostgreSQL์ ์๋๋ค. ๋จ, Active-Standby ๊ตฌ์กฐ์ ๋๋ค.
- Primary: us-east-1 (0.5 ACU)
- Replica: us-west-2 (0.5 ACU) - ํ์์ ์ฝ๊ธฐ ์ ์ฉ
- ๋น์ฉ: ๋ ๋ ํฉ์ณ์ ์ฝ $23/์. (๊ฐ์ฅ ์์ ์ฉ๋์ผ๋ก ์ด์)
- ๋จ์ : ์ฅ์ ์ Replica๋ฅผ Primary๋ก ์น๊ฒฉ์ํค๋ ๋ฐ ์ฝ 60์ด๊ฐ ๊ฑธ๋ฆฝ๋๋ค. (๊ทธ๋์ ์ฐ๊ธฐ ์คํจ)
Layer 3: ์ ์ ํ์ผ (Assets) -> S3
์ด๋ฏธ์ง, PDF ๋ฑ์ S3 Cross-Region Replication(CRR)์ ์๋๋ค.
- ๋น์ฉ: 50GB ๊ธฐ์ค ์ฝ $4/์.
- ๋ฐฐํฌ: CloudFront๊ฐ ์์์ ๊ฐ๊น์ด ๊ณณ์์ ๊ฐ์ ธ๊ฐ๋๋ค.
๐พ The Failover Choreography (์ฅ์ ๋ฐ์ ์๋๋ฆฌ์ค)
์ฌํด(Disaster)๊ฐ ๋ฅ์ณค์ ๋ ๋ฒ์ด์ง๋ ์ผ๋ค์ ๋๋ค. (์ค์ ํ ์คํธ ์๋ฃ)
- T+0์ด: us-east-1 ์๋ฒ ์๋ต ์์.
- T+15์ด: Route53์ด DNS๋ฅผ us-west-2๋ก ๋๋ฆผ. (์ ์ ๋ ์ ์ ๊ฐ๋ฅ, ์ฝ๊ธฐ ๊ฐ๋ฅ)
- T+30์ด: CloudWatch๊ฐ ์ฅ์ ๊ฐ์ง -> ๋๋ค(Lambda) ์คํ.
- T+90์ด: ์๋ถ(West)์ Aurora Replica๊ฐ Primary๋ก ์น๊ฒฉ ์๋ฃ.
- T+120์ด: ์์คํ ์ ์ํ. (์ฐ๊ธฐ ๊ฐ๋ฅ)
MAX5์ ์๊ฐ ๐ฏ
๐จโ๐ป ๋ฐ์ด๋ธ ์ฝ๋ฉ ๋ ์ํผ
์ด ๊ตฌ์กฐ๋ฅผ ํ
๋ผํผ(Terraform)์ผ๋ก ์ง๋ฌ๋ผ๊ณ ํด๋ณด์.
"AWS ํ๋ฆฌํฐ์ด๋ ์๋์ง๋ง ์ 50๋ถ ์ดํ๋ก ์ ์ง ๊ฐ๋ฅํ Active-Standby ๊ตฌ์กฐ๋ฅผ ์ํด. us-east-1๊ณผ us-west-2์ Aurora Serverless v2๋ฅผ ๋ฐฐํฌํ๊ณ , Route53 Failover ์ ์ฑ
์ ํฌํจํ Terraform ์ฝ๋๋ฅผ ์์ฑํด์ค."
๐ธ ์ฌ์ด๋ ํ๋ก์ ํธ ์์ด๋์ด
"SaaS Calculator Bot": ์ฌ์ฉ์๊ฐ ์์ ํธ๋ํฝ๊ณผ ๊ฐ์ฉ์ฑ ์๊ตฌ์ฌํญ(SLA)์ ์ ๋ ฅํ๋ฉด, "์ $50 ์ํคํ ์ฒ", "์ $500 ์ํคํ ์ฒ" ๋ฑ ๋จ๊ณ๋ณ AWS ๊ฒฌ์ ๊ณผ ๋ค์ด์ด๊ทธ๋จ์ ๊ทธ๋ ค์ฃผ๋ ์ฑ๋ด.
์นดํ
๊ณ ๋ฆฌ: cloud_architecture, ``