CJ TVING (2023.04 ~) ๐Ÿ–ฑ๏ธ

CJ TVING (2023.04 ~) ๐Ÿ–ฑ๏ธ

ECS/EKS ์šด์˜ ยท CI/CD ยท AWS ยท AIOPS ยท IaC (Terraform) ยท Test Infra ๋Œ€๊ทœ๋ชจ ๋ฉ€ํ‹ฐ์„œ๋น„์Šค OTT ์ŠคํŠธ๋ฆฌ๋ฐ ํ”Œ๋žซํผ (tving.com)

๐ŸŽฌ ๋Œ€ํ‘œ ์„œ๋น„์Šค ํ”„๋กœ์ ํŠธ

notion image

1. KBO ๋ผ์ด๋ธŒ ์ค‘๊ณ„ ์ธํ”„๋ผ ๊ตฌ์ถ•ยท์šด์˜

KBO ํ”„๋กœ์•ผ๊ตฌ ์ƒ์ค‘๊ณ„ ์ŠคํŠธ๋ฆฌ๋ฐ ์ธํ”„๋ผ๋ฅผ ์ง์ ‘ ์„ค๊ณ„ ยท ๊ตฌ์ถ•ํ•˜๊ณ  ์‹œ์ฆŒ ํ”ผํฌ ํŠธ๋ž˜ํ”ฝ์„ ์šด์˜
๐ŸŽฏ Problem ํ”„๋กœ์•ผ๊ตฌ ์‹œ์ฆŒ ๊ฒฝ๊ธฐ ์‹œ๊ฐ„๋Œ€์— ํญ์ฆํ•˜๋Š” ๋Œ€๊ทœ๋ชจ ๋™์‹œ ์‹œ์ฒญ ํŠธ๋ž˜ํ”ฝ์„ ์ €์ง€์—ฐ ยท ๋ฌด์ค‘๋‹จ์œผ๋กœ ๊ฐ๋‹นํ•  ๋ผ์ด๋ธŒ ์ŠคํŠธ๋ฆฌ๋ฐ ์ธํ”„๋ผ ํ•„์š”
๐Ÿ›  Action
  • KBO ๋ผ์ด๋ธŒ ์ค‘๊ณ„ ์ŠคํŠธ๋ฆฌ๋ฐ ์ธํ”„๋ผ / ๋ฐฐํฌ ํŒŒ์ดํ”„๋ผ์ธ ์„ค๊ณ„ยท๊ตฌ์ถ• ์ฃผ๋„
  • ํŠธ๋ž˜ํ”ฝ ํ”ผํฌ ๋Œ€๋น„ ์บ์‹œ ์ „๋žต โ†’ ์˜ค๋ฆฌ์ง„ ๋ณดํ˜ธ ๋ฐ ECS + EKS ๊ธฐ๋ฐ˜ ์˜คํ† ์Šค์ผ€์ผ๋ง ์ ์šฉ
  • ๊ฒฝ๊ธฐ ์ผ์ • ๊ธฐ๋ฐ˜ ํŠธ๋ž˜ํ”ฝ ๊ธ‰์ฆ์— ๋Œ€๋น„ํ•œ ์˜คํ† ์Šค์ผ€์ผ๋งยท๋ชจ๋‹ˆํ„ฐ๋ง ์ฒด๊ณ„ ๊ตฌ์ถ• ๋ฐ ์šด์˜
๐Ÿ“ˆ Impact KBO ๊ฒฝ๊ธฐ ๋Œ€๋น„ 00๋งŒ๋ช… ๊ทœ๋ชจ ๋™์‹œ์ ‘์†์ž ๋ผ์ด๋ธŒ ์ค‘๊ณ„ ๋ฌด์ค‘๋‹จ ์šด์˜
CloudFront WAF ECS/EKS Live Streaming

notion image

2. On-Premise (IDC) โ†’ AWS Cloud ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜

AWS ๊ธฐ์ˆ  ๋ธ”๋กœ๊ทธ
TVING ์‚ฌ๋ก€๋กœ ๋ณธ AWS ์ธํ”„๋ผ๋ฅผ ์ด์šฉํ•œ ๊ธ€๋กœ๋ฒŒ ๋น„์ฆˆ๋‹ˆ์Šค ํ™•์žฅ ๊ธฐ๋ฐ˜ ๋งˆ๋ จํ•˜๊ธฐ | Amazon Web Services
๋น„์ฆˆ๋‹ˆ์Šค ๋ฐฐ๊ฒฝ TVING์€ โ€˜NO.1 K-์ฝ˜ํ…์ธ  ํ”Œ๋žซํผโ€™์ด๋ผ๋Š” ๋ชฉํ‘œ ์•„๋ž˜ ๋‹ค์–‘ํ•œ ์ฝ˜ํ…์ธ ๋ฅผ ์ˆ˜๊ธ‰ ๋˜๋Š” ์ง์ ‘ ์ œ์ž‘ํ•˜๋Š” ์ฝ˜ํ…์ธ  ๊ธฐ์—…์ด์ž D2C ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ์ข…ํ•ฉ ์—”ํ„ฐํ…Œ์ด๋จผํŠธ ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค. ์‹ค์‹œ๊ฐ„ TV, ๋ฐฉ์†ก VOD, ์˜ํ™”๋Š” ๋ฌผ๋ก  ๋ถ„๋ฐ์Šค๋ฆฌ๊ฐ€, ๊ตญ๋‚ด ํ”„๋กœ์•ผ๊ตฌ, AFC, UFC ๋“ฑ ๋‹ค์–‘ํ•œ ์Šคํฌ์ธ  ์ฝ˜ํ…์ธ  ๊ทธ๋ฆฌ๊ณ , TVING ์˜ค๋ฆฌ์ง€๋„ ์ฝ˜ํ…์ธ ๊นŒ์ง€ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. 2010๋…„ 5์›” CJํ—ฌ๋กœ๋น„์ „์—์„œ ์ถœ์‹œ๋œ TVING์€ 2020๋…„ ๋…๋ฆฝํšŒ์‚ฌ๋กœ ์ถœ๋ฒ”ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๊ตญ๋‚ด ์ตœ์ดˆ MAU(Monthly Active Users) [โ€ฆ]
TVING ์‚ฌ๋ก€๋กœ ๋ณธ AWS ์ธํ”„๋ผ๋ฅผ ์ด์šฉํ•œ ๊ธ€๋กœ๋ฒŒ ๋น„์ฆˆ๋‹ˆ์Šค ํ™•์žฅ ๊ธฐ๋ฐ˜ ๋งˆ๋ จํ•˜๊ธฐ | Amazon Web Services
๐ŸŽฏProblem
๋‚ฎ์€ ๋ฏผ์ฒฉ์„ฑ๊ณผ IDC ํ™˜๊ฒฝ์˜ ํ•œ๊ณ„ โ€” ์žฅ๋น„ ์ฆ์„ค๊ณผ ํ™˜๊ฒฝ ๋ณ€ํ™”์— ๋น ๋ฅด๊ฒŒ ๋Œ€์‘ํ•˜๊ธฐ ์–ด๋ ต๊ณ , ์ตœ์‹  ๊ธฐ์ˆ  ์ ์šฉ๊ณผ ๊ธ€๋กœ๋ฒŒ ๋Œ€๋น„ ์‘๋‹ต ์†๋„์— ํ•œ๊ณ„๊ฐ€ ์žˆ์–ด ํด๋ผ์šฐ๋“œ ์ „ํ™˜์ด ํ•„์š”
๐Ÿ›  Action
  • ๋ฐฐํฌ ์ž๋™ํ™” โ€” GitHub Actions ๊ธฐ๋ฐ˜ ๋ฐฐํฌ ์ฒด๊ณ„๋ฅผ ์„ค๊ณ„ยท๊ตฌ์ถ•ํ•˜๊ณ  ๋ฐฐํฌ ํ”„๋กœ์„ธ์Šค ์ „๋ฐ˜์„ ์ฃผ๋„
  • ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€ ์ตœ์ ํ™” โ€” jdepsยทjlink ๊ฒฝ๋Ÿ‰ํ™” ๋ฐฉ์•ˆ์„ ์ฃผ๋„์ ์œผ๋กœ ๊ตฌํ˜„ํ•ด ์„œ๋น„์Šค ํˆฌ์ž… ์†๋„ ๊ฐœ์„ 
  • ๋„คํŠธ์›Œํฌ ์ „ํ™˜ โ€” VPC Peering ํ’€๋ฉ”์‰ฌ ๊ตฌ์กฐ๋ฅผ Transit Gateway๋กœ ์ „ํ™˜ํ•˜๋Š” ์ž‘์—…์„ ์ฃผ๋„์ ์œผ๋กœ ์ˆ˜ํ–‰, ์ž‘์—… ๊ฐ„ ์ž”์—ฌ IDC - Cloud ํ™˜๊ฒฝ ๊ฐ„ ํ†ต์‹ ์„ DX๋กœ ๊ตฌ์„ฑ
  • ์„œ๋ฒ„๋ฆฌ์Šค ์ปดํ“จํŒ… โ€” ECS + Fargate ๊ธฐ๋ฐ˜ ๊ตฌ์„ฑ ๋ฐ ๋ฉ”ํŠธ๋ฆญ ๊ธฐ๋ฐ˜ ์˜คํ† ์Šค์ผ€์ผ๋ง
  • ๋ฉ€ํ‹ฐ ์–ด์นด์šดํŠธ ๊ฑฐ๋ฒ„๋„Œ์Šค โ€” AWS Control Tower ๊ธฐ๋ฐ˜ OU ํ‘œ์ค€ํ™”ยทIAM Identity Center(SSO) ๋„์ž…
๐Ÿ“ˆ Impact
  • ๋ฐฐํฌ ์‹œ๊ฐ„ ๋‹จ์ถ•: 20 ~ 80% ๋‹จ์ถ•
  • Java ์ด๋ฏธ์ง€ ๊ฒฝ๋Ÿ‰ํ™”๋กœ ์„œ๋น„์Šค ํˆฌ์ž… ์†๋„ 65% ๊ฐœ์„ 
  • ํŠธ๋ž˜ํ”ฝ ๊ธ‰์ฆ ์ƒํ™ฉ์—๋„ ์ง€์—ฐ ์—†๋Š” ์•ˆ์ •์  ์„œ๋น„์Šค โ€” Operational Resilience ยท Staff Productivity ยท Business Agility ํ™•๋ณด
AWS Control Tower Transit Gateway Direct Connect ECS/Fargate Blue/Green Canary
ย 

notion image

3. ๊ด‘๊ณ  ์ธํ”„๋ผ โ€” AWS MediaTailor (SSAI)

์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๊ด‘๊ณ  ์‚ฝ์ž…(SSAI)์œผ๋กœ ๊ด‘๊ณ  ์ฐจ๋‹จ์— ๊ฐ•ํ•˜๊ณ  ๊ฐœ์ธํ™” ๊ฐ€๋Šฅํ•œ ๋Œ€์ฒด๊ด‘๊ณ  ์†ก์ถœ ์ธํ”„๋ผ ๊ตฌ์„ฑ
๐ŸŽฏ Problem ํด๋ผ์ด์–ธํŠธ ๊ด‘๊ณ ๋Š” ๊ด‘๊ณ  ์ฐจ๋‹จยท์žฌ์ƒ ๋Š๊น€์— ์ทจ์•ฝ โ†’ ์ŠคํŠธ๋ฆผ์— ๊ด‘๊ณ ๋ฅผ ์„œ๋ฒ„์—์„œ ๋ผ์›Œ ๋„ฃ๋Š” SSAI ์ธํ”„๋ผ ํ•„์š”
๐Ÿ›  Action
  • AWS Elemental MediaTailor ๊ธฐ๋ฐ˜ SSAI ๊ตฌ์„ฑ โ€” ๋ผ์ด๋ธŒ/VOD ์ŠคํŠธ๋ฆผ์— ๊ด‘๊ณ ๋ฅผ ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ์‚ฝ์ž…
  • ๊ด‘๊ณ  ๊ฒฐ์ • ์„œ๋ฒ„(ADS ๋“ฑ) ์—ฐ๋™ ๋ฐ ์„œ๋น„์Šค ๋ฐฐํฌ ํŒŒ์ดํ”„๋ผ์ธ ์šด์˜
  • ๊ด‘๊ณ  ์†ก์ถœ ๋ชจ๋‹ˆํ„ฐ๋ง ๊ตฌ์„ฑ
AWS MediaTailor SSAI CloudFront

notion image

4. ์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ… ์ธํ”„๋ผ

KBO ์ค‘๊ณ„ ๋“ฑ ๋ผ์ด๋ธŒ ์‹œ์ฒญ ์ค‘ ๋ฐœ์ƒํ•˜๋Š” ๋Œ€๊ทœ๋ชจ ๋™์‹œ ์ฑ„ํŒ…์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์‹ค์‹œ๊ฐ„ ์ธํ”„๋ผ๋ฅผ ์ฃผ๋„ ๊ตฌ์„ฑ
๐ŸŽฏ Problem ๋ผ์ด๋ธŒ ์ค‘๊ณ„ ์ค‘ ์ˆœ๊ฐ„์ ์œผ๋กœ ํญ์ฆํ•˜๋Š” ๋™์‹œ ์ฑ„ํŒ… ํŠธ๋ž˜ํ”ฝ์„ ์•ˆ์ •์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ธํ”„๋ผ ํ•„์š”
๐Ÿ›  Action
  • ์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ… ์ธํ”„๋ผ ์„ค๊ณ„ยท๊ตฌ์ถ• ์ฃผ๋„
  • ํญ์ฆํ•˜๋Š” ๋™์‹œ ์ ‘์†์„ ์ฑ„ํŒ…๋ฐฉ ์ˆ˜ํ‰ ํ™•์žฅ์œผ๋กœ ๋ถ„์‚ฐํ•˜๊ณ , ์ €์ง€์—ฐ ์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ…์„ ์•ˆ์ •์ ์œผ๋กœ ์ œ๊ณต
  • ๋ถ€ํ•˜ ํ…Œ์ŠคํŠธ(Locust ๋“ฑ) ๋ฐ ๋ชจ๋‹ˆํ„ฐ๋ง ์ฒด๊ณ„ ์ ์šฉ
EKS Locust

โš™๏ธ ํ”Œ๋žซํผ ์—”์ง€๋‹ˆ์–ด๋ง & ์šด์˜ ์ž๋™ํ™”

notion image

5. GitHub Actions CI/CD ํ‘œ์ค€ํ™” & ์˜์กด์„ฑ ๊ด€๋ฆฌ ์ž๋™ํ™”

์„œ๋น„์Šค ๋ฐฐํฌ์˜ ์•ˆ์ •์„ฑ์„ ์œ„ํ•œ CI/CD ๊ตฌ์„ฑ
๐ŸŽฏ Problem IDC ํ™˜๊ฒฝ์˜ Gitlab CICD โ†’ Github Action ์ด๊ด€ ํ•„์š”
๐Ÿ›  Action
  • Source Build - Dockerize - ECS CodeDeploy or EKS ArgoCD
  • CICD ์ „์ฒด ์ฃผ๊ธฐ ์ง€์†์ ์œผ๋กœ ์ตœ์ ํ™”, Datadog DORA Metrics ๊ตฌ์„ฑํ•˜์—ฌ ์ง€ํ‘œ๋กœ ํ™œ์šฉ
  • Dependabot, Renovate๋ฅผ ํ™œ์šฉํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ / ์˜์กด์„ฑ ๋ฒ„์ „ ๊ด€๋ฆฌ ์ž๋™ํ™”
๐Ÿ“ˆ Impact
Github Action ํ‘œ์ค€ํ™” ์ •๋ฆฝ โ†’ ์ „์ฒด CICD ํ”„๋กœ์„ธ์Šค ๋น„์šฉ 15~60% ๊ฐ์†Œ
๊ฐ์ข… ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฒ„์ „ ๊ด€๋ฆฌ ์ž๋™ํ™” / ์ผ๊ด„ ์ ์šฉ ํ”„๋กœ์„ธ์Šค ๊ตฌ์„ฑ
GitHub Actions

notion image

6. AWS Bedrock ๊ธฐ๋ฐ˜ ๋ฐฐํฌ ์‹คํŒจ ๋ถ„์„ ์—์ด์ „ํŠธ (tving deploy bot)

๋ฐฐํฌ ์‹คํŒจ ๋กœ๊ทธ ์ถ”์ ์„ LLM ์—์ด์ „ํŠธ๋กœ ์ž๋™ํ™”ํ•ด Slack์—์„œ 1์ฐจ ์›์ธ ๋ถ„์„ ์ œ๊ณต
๐ŸŽฏ Problem ๋ฐฐํฌ ์‹คํŒจ ์‹œ ์‚ฌ๋žŒ์ด ๋กœ๊ทธ๋ฅผ ์ผ์ผ์ด ์ถ”์  โ†’ ์›์ธ ํŒŒ์•…์— ์‹œ๊ฐ„ ์†Œ์š”
๐Ÿ›  Action
  • AWS Bedrock Agent๋กœ ๋ฐฐํฌ ์‹คํŒจ๋ฅผ Slack์—์„œ ์ž๋™ ๋ถ„์„ํ•˜๋Š” tving deploy bot ๊ตฌ์ถ•
  • Github action log, ECS Task / EKS Pod ๋ณ„ WAS Log ๋ถ„์„์„ ์œ„ํ•œ MCP ์ž์ฒด ๊ฐœ๋ฐœ
  • audit / improve / evaluate / QA ์„œ๋ธŒ์—์ด์ „ํŠธ ์ฒด๊ณ„๋กœ ํ’ˆ์งˆ ๋ฐ˜๋ณต ๊ฐœ์„ 
  • ์˜คํƒ์„ ์ค„์ด๊ธฐ ์œ„ํ•ด ํ‰๊ฐ€ ์„œ๋ธŒ์—์ด์ „ํŠธ๋กœ ์ •ํ™•๋„๋ฅผ ๋ฐ˜๋ณต ๊ฐœ์„ 
๐Ÿ“ˆ Impact ๋ฐฐํฌ ์‹คํŒจ 1์ฐจ ํŠธ๋ฆฌ์•„์ง€ ์ž๋™ํ™” โ†’ ์˜จ์ฝœ/์šด์˜ ๋ถ€๋‹ด ๊ฒฝ๊ฐ
AWS Bedrock LLM Agent Slack ECS Observability
GitHub Actions ArgoCD GitOps AWS CodeDeploy

notion image

7. EKS ์•„ํ‚คํ…์ฒ˜ ๋ฐ ์˜คํ† ์Šค์ผ€์ผ๋ง ์ตœ์ ํ™” (Karpenter + KEDA)

CPU ๋‹จ์ผ ๊ธฐ์ค€์˜ ํ•œ๊ณ„๋ฅผ ๋„˜์–ด RPS ๊ธฐ๋ฐ˜ ์Šค์ผ€์ผ๋ง์œผ๋กœ ํŠธ๋ž˜ํ”ฝ ๊ธ‰์ฆ ๋Œ€์‘๋ ฅ ๊ฐ•ํ™”
๐ŸŽฏ Problem ํŠธ๋ž˜ํ”ฝ ๋ณ€๋™์ด ํฐ ์ŠคํŠธ๋ฆฌ๋ฐ ํ™˜๊ฒฝ์—์„œ CPU ๊ธฐ๋ฐ˜ HPA๋งŒ์œผ๋กœ๋Š” RPS ๊ธ‰์ฆ ๋Œ€์‘์ด ์ง€์—ฐ
๐Ÿ›  Action
  • Karpenter๋ฅผ ํ†ตํ•œ Node Capacity ํ™•๋ณด
  • KEDA ์˜คํ† ์Šค์ผ€์ผ๋ง ์„ค๊ณ„ ยท ์šด์˜: CPUยท๋ฉ”๋ชจ๋ฆฌ + Prometheus RPS ํŠธ๋ฆฌ๊ฑฐ ์กฐํ•ฉ
  • ๋ฉ”ํŠธ๋ฆญ ์†Œ์Šค ์žฅ์•  ์‹œ fallback ๋™์ž‘ ๋ถ„์„ ยท ์„ค์ •์œผ๋กœ ์Šค์ผ€์ผ๋ง ์•ˆ์ •์„ฑ ํ™•๋ณด
  • ์šด์˜ ํ‘œ์ค€ ์ ์šฉ: ArgoCD + Argo Rollouts ยท HPA ยท IRSA ยท ALB/NLB Ingress ยท gRPC health probe
๐Ÿ“ˆ Impact ํŠธ๋ž˜ํ”ฝ ๊ธ‰์ฆ ๊ตฌ๊ฐ„ ๋Œ€์‘ ์†๋„ ํ–ฅ์ƒ
EKS KEDA Prometheus Argo Rollouts Karpenter

notion image

8. ๊ด€์ธก์„ฑยท๋กœ๊น… ํŒŒ์ดํ”„๋ผ์ธ ์šด์˜ & ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ…

๋กœ๊ทธ ์ˆ˜์ง‘๋ถ€ํ„ฐ ํ’ˆ์งˆ ์ •ํ•ฉ์„ฑ๊นŒ์ง€ โ€” ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ๊ด€์ธก ํŒŒ์ดํ”„๋ผ์ธ ์šด์˜
๐ŸŽฏ Problem ๋ถ„์‚ฐ๋œ ๋ชจ๋‹ˆํ„ฐ๋ง ๋„๊ตฌ๋ฅผ ํ†ตํ•ฉํ•˜๊ณ  ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์•Œ๋ฆผ ์ฒด๊ณ„๋ฅผ ๊ตฌ์ถ•ํ•  ํ•„์š”
๐Ÿ›  Action
  • Datadog : APM Trace ํ™˜๊ฒฝ ๊ตฌ์„ฑ, ๋น„์šฉ ์ตœ์ ํ™”
  • Grafana / Prometheus : Prometheus, Cloudwatch ๋ฉ”ํŠธ๋ฆญ ๊ธฐ๋ฐ˜ Grafana ๋Œ€์‹œ๋ณด๋“œ ๊ตฌ์„ฑ
  • OpenSearch: index pattern ๊ตฌ์„ฑ ยท DQL ์ฟผ๋ฆฌ ยท CloudWatch Subscription Filter ๊ธฐ๋ฐ˜ ๋กœ๊ทธ ์ˆ˜์ง‘
์œ„ ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ERROR Alert / Log ๋ถ„์„ ๋ด‡ ๊ตฌ์„ฑ
OpenSearch Datadog CloudWatch Grafana Prometheus

notion image

9. ์‚ฌ๋‚ด ํ”Œ๋žซํผ ๋„๊ตฌ ๊ฐœ๋ฐœ & ์ธํ”„๋ผ ์ž๋™ํ™”

ํƒœ๊ทธ ๊ฑฐ๋ฒ„๋„Œ์Šค ยท ECR ๋น„์šฉ ยท ๋ชจ๋‹ˆํ„ฐ๋ง๊นŒ์ง€ ์šด์˜ ํšจ์œจ์„ ๋Œ์–ด์˜ฌ๋ฆฌ๋Š” ์ž์ฒด ๋„๊ตฌ ๊ตฌ์ถ•
๐Ÿ›  Action
  • ISMS ๋Œ€๋น„ AWS ๋ฆฌ์†Œ์Šค ์ž์‚ฐ๋Œ€์žฅ ์›นํˆด ๊ตฌ์ถ•(FastAPI + React + boto3 w/Claude)
    • xlsx ์—…/๋‹ค์šด๋กœ๋“œ ยท ๋ฉ€ํ‹ฐํด๋ผ์šฐ๋“œ ํ™•์žฅํ˜• provider ์ถ”์ƒํ™” ๋ ˆ์ด์–ด ยท ํƒœ๊ทธ 3-state ๊ฒ€์ฆ(OK/MISSING/MISMATCH) ยท 16๊ฐœ ๋ฆฌ์†Œ์Šค ํƒ€์ž… ์ง€์›
  • ECR ์ด๋ฏธ์ง€ ์ œ๊ฑฐ ์ž๋™ํ™” ํ”„๋กœ์„ธ์Šค ๊ตฌ์„ฑ
  • ์ „์‚ฌ TVING Status Page ์ œ๊ณต์„ ์œ„ํ•œ ๋Œ€์‹œ๋ณด๋“œ ๊ตฌ์„ฑ
    • Uptime Kuma (๋งํฌ) ์˜คํ”ˆ์†Œ์Šค ํ™œ์šฉ
      • Playwright ยท Browserless v2 ํ˜ธํ™˜์„ฑ ๋ฌธ์ œ๋ฅผ ์ž„๋ฒ ๋””๋“œ Chromium ์ปค์Šคํ…€ ์ด๋ฏธ์ง€๋ฅผ ์ œ์ž‘ํ•˜์—ฌ ํ•ด๊ฒฐ
๐Ÿ“ˆ Impact ํƒœ๊ทธ ๊ฑฐ๋ฒ„๋„Œ์Šค ๊ฐ€์‹œ์„ฑ ํ™•๋ณด ยท ๋ณด์•ˆํŒ€ ์—…๋ฌด ์ž๋™ํ™” ๊ฐœ์„  ยท ๋น„๊ฐœ๋ฐœ์ž ํฌํ•จ ์ „์‚ฌ ๊ตฌ์„ฑ์›๋“ค์—๊ฒŒ status ํ˜„ํ™ฉ ์ œ๊ณต
Python FastAPI React boto3 ECR Lambda

notion image

10. Terraform ๊ธฐ๋ฐ˜ AWS ์ธํ”„๋ผ IaC ํ”„๋กœ๋น„์ €๋‹ ๊ตฌํ˜„

๋ฐ˜๋ณต๋˜๋Š” AWS ๋ฆฌ์†Œ์Šค ๊ตฌ์„ฑ์„ ๋ชจ๋“ˆ๋กœ ํ‘œ์ค€ํ™”ํ•˜๊ณ , ์„œ๋น„์Šค ๋‹จ์œ„ ์ธํ”„๋ผ๋ฅผ ์ฝ”๋“œ๋กœ ์ผ๊ด„ ์ƒ์„ฑยท๊ด€๋ฆฌ
๐ŸŽฏ Problem
์ฝ˜์†”/์ˆ˜์ž‘์—… ๊ธฐ๋ฐ˜ ๋ฆฌ์†Œ์Šค ์ƒ์„ฑ์€ ํ™˜๊ฒฝ ๊ฐ„ ๊ตฌ์„ฑ ํŽธ์ฐจยทํœด๋จผ ์—๋Ÿฌยท์žฌํ˜„์„ฑ ๋ถ€์กฑ ๋ฌธ์ œ๋ฅผ ์œ ๋ฐœ โ†’ ํ‘œ์ค€ํ™”๋œ IaC ์ฒด๊ณ„ ํ•„์š”
๐Ÿ›  Action
  • AWS ๋ฆฌ์†Œ์Šค๋ณ„ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ Terraform ๋ชจ๋“ˆ ์ž์ฒด ๊ฐœ๋ฐœ โ€” ์ž…๋ ฅ ๋ณ€์ˆ˜ํ™”๋กœ ํ™˜๊ฒฝ(dev/stg/prod)๋ณ„ ๋™์ผ ๊ตฌ์„ฑ ์žฌํ˜„
  • ๋ณตํ•ฉ ์ธํ”„๋ผ ๋‹จ์œ„๋ฅผ ์ฝ”๋“œํ™” โ€” LB + ECS + CodeDeploy์ฒ˜๋Ÿผ ํ•จ๊ป˜ ๋ฌถ์ด๋Š” ๋ฆฌ์†Œ์Šค๋ฅผ ํ•˜๋‚˜์˜ ๋‹จ์œ„๋กœ ์ผ๊ด„ ์ƒ์„ฑยท๋ฐฐํฌ
  • S3 ์›๊ฒฉ ๋ฐฑ์—”๋“œ + DynamoDB State Lock์œผ๋กœ ๋™์‹œ ์‹คํ–‰ ์ถฉ๋Œ ๋ฐฉ์ง€ ๋ฐ ํ˜‘์—… ์‹œ ์ƒํƒœ ์ผ๊ด€์„ฑ ํ™•๋ณด
  • ๊ธฐ์กด ๋ ˆ๊ฑฐ์‹œ AWS ์ธํ”„๋ผ์— ๋Œ€ํ•œ ๋Œ€๊ทœ๋ชจ Import ์ง„ํ–‰
  • ๋ชจ๋“ˆ ์กฐํ•ฉ์œผ๋กœ ์„œ๋น„์Šค ์‹ ๊ทœ ๊ตฌ์ถ• ๋ฆฌ๋“œํƒ€์ž„ ๋‹จ์ถ• ๋ฐ ๊ตฌ์„ฑ ์ผ๊ด€์„ฑ ํ™•๋ณด
๐Ÿ“ˆ Impact
์ธํ”„๋ผ ํ”„๋กœ๋น„์ €๋‹ ํ‘œ์ค€ํ™” ยท ํ™˜๊ฒฝ ๊ฐ„ ๊ตฌ์„ฑ ํŽธ์ฐจ ์ œ๊ฑฐ ยท ์‹ ๊ทœ ์„œ๋น„์Šค ๊ตฌ์ถ• ์†๋„ ํ–ฅ์ƒ
Terraform IaC ECS CodeDeploy S3 DynamoDB
ย