KR_AWS - somaz94/DevOps-Engineer GitHub Wiki

AWS

DevOps ์—”์ง€๋‹ˆ์–ด๋ฅผ ์œ„ํ•œ AWS ํ•ต์‹ฌ ๊ฐœ๋… ์ •๋ฆฌ. ์ƒ์„ธ ๋‚ด์šฉ์€ ๊ฐ ๋งํฌ๋ฅผ ํด๋ฆญํ•˜์„ธ์š”.


์ฃผ์š” ์šฉ์–ด ํ†ตํ•ฉ ์ •๋ฆฌ

IAM & ์ธ์ฆ

  • Assume Role: ์ž„์‹œ ๋ณด์•ˆ ์ž๊ฒฉ ์ฆ๋ช…์„ ํ†ตํ•ด ๋‹ค๋ฅธ ๊ณ„์ • ๋˜๋Š” ๋™์ผ ๊ณ„์ • ๋‚ด ๋‹ค๋ฅธ ์—ญํ•  ๊ถŒํ•œ์„ ํš๋“
  • sts:AssumeRole: IAM ์ž๊ฒฉ ์ฆ๋ช… ๊ธฐ๋ฐ˜ ์—ญํ•  ์œ„์ž„ โ€” ๊ต์ฐจ ๊ณ„์ • ์•ก์„ธ์Šค์— ํ™œ์šฉ
  • sts:AssumeRoleWithWebIdentity: OIDC/SAML ํ† ํฐ ๊ธฐ๋ฐ˜ ์—ญํ•  ์œ„์ž„ โ€” GitHub Actions, Kubernetes SA ๋“ฑ ์™ธ๋ถ€ ID ๊ณต๊ธ‰์ž ์—ฐ๋™
  • ์ž„์‹œ ์ž๊ฒฉ ์ฆ๋ช…: ์•ก์„ธ์Šค ํ‚ค + ๋ณด์•ˆ ์•ก์„ธ์Šค ํ‚ค + ์„ธ์…˜ ํ† ํฐ์œผ๋กœ ๊ตฌ์„ฑ, ์œ ํšจ ๊ธฐ๊ฐ„ ์„ค์ • ๊ฐ€๋Šฅ

ALB Ingress ์–ด๋…ธํ…Œ์ด์…˜

  • Ingress Group: ์—ฌ๋Ÿฌ Ingress๋ฅผ ํ•˜๋‚˜์˜ ALB๋กœ ํ†ตํ•ฉ ๊ด€๋ฆฌ (alb.ingress.kubernetes.io/group.name)
  • group.order: Ingress ๊ทœ์น™ ์šฐ์„ ์ˆœ์œ„ ์„ค์ • โ€” ๋‚ฎ์€ ์ˆซ์ž๊ฐ€ ๋จผ์ € ์ ์šฉ
  • listen-ports: ALB๊ฐ€ ์ˆ˜์‹ ํ•˜๋Š” ํฌํŠธ ์ง€์ • (HTTP/HTTPS)
  • ssl-redirect: HTTP โ†’ HTTPS ๋ฆฌ๋””๋ ‰์…˜ ํฌํŠธ ์„ค์ •
  • target-type: instance (NodePort ๊ฒฝ์œ ) ๋˜๋Š” ip (Pod ์ง์ ‘ ๋ผ์šฐํŒ…) ๋ชจ๋“œ ์„ ํƒ
  • scheme: internet-facing (๊ณต๊ฐœ) ๋˜๋Š” internal (VPC ๋‚ด๋ถ€) ALB ์ ‘๊ทผ ์œ ํ˜• ์„ค์ •
  • inbound-cidrs: ALB ์ ‘๊ทผ ํ—ˆ์šฉ IP ๋ฒ”์œ„ ์ œํ•œ
  • security-groups: ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ์— ์—ฐ๊ฒฐํ•  ๋ณด์•ˆ ๊ทธ๋ฃน ์ง€์ •

๋„คํŠธ์›Œํฌ ๋ณด์•ˆ

  • Security Group (Stateful): ์ธ์Šคํ„ด์Šค ๋‹จ์œ„ ๋ณด์•ˆ โ€” ํ—ˆ์šฉ ๊ทœ์น™๋งŒ ์ง€์›, ์•„์›ƒ๋ฐ”์šด๋“œ ์‘๋‹ต ์ž๋™ ํ—ˆ์šฉ
  • Network ACL (Stateless): ์„œ๋ธŒ๋„ท ๋‹จ์œ„ ๋ณด์•ˆ โ€” ํ—ˆ์šฉยท๊ฑฐ๋ถ€ ๊ทœ์น™ ๋ชจ๋‘ ์ง€์›, ๋ฒˆํ˜ธ์ˆœ ํ‰๊ฐ€
  • VPC: ๊ฒฉ๋ฆฌ๋œ ๊ฐ€์ƒ ๋„คํŠธ์›Œํฌ โ€” ์„œ๋ธŒ๋„ทยท๋ผ์šฐํŠธ ํ…Œ์ด๋ธ”ยท์ธํ„ฐ๋„ท ๊ฒŒ์ดํŠธ์›จ์ด๋กœ ๊ตฌ์„ฑ

Q&A ๋ชฉ๋ก

Q1: IAM Assume Role

AWS STS์˜ sts:AssumeRole์„ ์‚ฌ์šฉํ•œ ๊ต์ฐจ ๊ณ„์ • ์•ก์„ธ์Šค ๋ฐฉ๋ฒ•(4๋‹จ๊ณ„: IAM ์—ญํ•  ์ƒ์„ฑ โ†’ ์ •์ฑ… ์—ฐ๊ฒฐ โ†’ ์—ญํ•  ์œ„์ž„ โ†’ ์ž„์‹œ ์ž๊ฒฉ ์ฆ๋ช… ์‚ฌ์šฉ)๊ณผ OIDC/SAML ๊ธฐ๋ฐ˜ sts:AssumeRoleWithWebIdentity์˜ ์ฐจ์ด๋ฅผ ๋น„๊ตํ•œ๋‹ค.

โ†’ ์ƒ์„ธ ๋ณด๊ธฐ


Q2-Q5: ALB Ingress ์„ค์ •

์—ฌ๋Ÿฌ Ingress๋ฅผ ๋‹จ์ผ ALB๋กœ ํ†ตํ•ฉํ•˜๋Š” IngressGroup ๊ตฌ์„ฑ, ํฌํŠธ ์ˆ˜์‹ (listen-ports) ๋ฐ SSL ๋ฆฌ๋””๋ ‰์…˜ ์„ค์ •, instance/ip ๋ชจ๋“œ ํŠธ๋ž˜ํ”ฝ ๋ผ์šฐํŒ… ์–ด๋…ธํ…Œ์ด์…˜, ๊ทธ๋ฆฌ๊ณ  schemeยทinbound-cidrsยทsecurity-groups๋ฅผ ํ™œ์šฉํ•œ ์ ‘๊ทผ ์ œ์–ด ๋ฐฉ๋ฒ•์„ ์ •๋ฆฌํ•œ๋‹ค.

โ†’ ์ƒ์„ธ ๋ณด๊ธฐ


Q6: Network ACL vs Security Group

Stateful Security Group(์ธ์Šคํ„ด์Šค ๋‹จ์œ„ยทํ—ˆ์šฉ ๊ทœ์น™๋งŒ)๊ณผ Stateless Network ACL(์„œ๋ธŒ๋„ท ๋‹จ์œ„ยทํ—ˆ์šฉยท๊ฑฐ๋ถ€ ๊ทœ์น™ยท๋ฒˆํ˜ธ์ˆœ ํ‰๊ฐ€)์˜ ๋™์ž‘ ๋ฐฉ์‹ ์ฐจ์ด์™€ VPC ๋‚ด ํŠธ๋ž˜ํ”ฝ ํ๋ฆ„(IGW โ†’ Router โ†’ Route Table โ†’ ACL โ†’ Subnet โ†’ SG โ†’ EC2)์„ mermaid ๋‹ค์ด์–ด๊ทธ๋žจ์œผ๋กœ ์„ค๋ช…ํ•œ๋‹ค.

โ†’ ์ƒ์„ธ ๋ณด๊ธฐ


์ฐธ๊ณ  ์ž๋ฃŒ

โš ๏ธ **GitHub.com Fallback** โš ๏ธ