/images/avatar.png

๐Ÿž๐Ÿฅ๐Ÿฅ– ๋ผ์ผ๋ฆฌ์˜ ์ฝ”๋“œ ๋ถ€์Šค๋Ÿฌ๊ธฐ ๐Ÿž๐Ÿฅ๐Ÿฅ–

AWS Overview

Global Infrastructure Note AWS Regions AWS Availability Zones AWS Data Centers AWS Edge Locations / Points of Presence AWS Regions ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์˜ ์ง‘ํ•ฉ cluster of data centers ๋Œ€๋ถ€๋ถ„์˜ AWS ์„œ๋น„์Šค๋“ค์€ ํŠน์ • ๋ฆฌ์ „์— ๊ตญํ•œregion-scoped๋˜์–ด ์žˆ๋‹ค. ๊ฐ Region์€ ์ตœ์†Œ ๋‘ ๊ฐœ ์ด์ƒ์˜ ๊ฐœ๋ณ„ ๊ฐ€์šฉ ์˜์—ญAvailability Zones๋กœ ๊ตฌ์„ฑ AWS Region์„ ์„ ํƒํ•˜๋Š” ๋ฐฉ๋ฒ• Compliance with data governance and legal requirements : ๋ฐ์ดํ„ฐ์˜ ๋ฒ•๋ฅ  ์ค€์ˆ˜ ๋ฐ ์š”๊ตฌ์‚ฌํ•ญ Proximity to customers: : ๊ณ ๊ฐ๊ณผ์˜ ์ ‘๊ทผ์„ฑ. ๋Œ€๊ธฐ์‹œ๊ฐ„ ๋‹จ์ถ• Available services within a Region : ํŠน์ • ๋ฆฌ์ „์—์„œ๋งŒ ๊ฐ€๋Šฅํ•œ AWS ์„œ๋น„์ธ์ง€ ํ™•์ธ Pricing : ๋น„์šฉ์€ ์ง€์—ญ์— ๋”ฐ๋ผ ๊ฐ€๊ฒฉ์ด ๋‹ค๋ฅด๋‹ค.

[AWS EKS] 5. ์ธ๊ทธ๋ ˆ์Šค ์ปจํŠธ๋กค๋Ÿฌ ๋งŒ๋“ค๊ธฐ

โ˜๏ธ Amazon EKS ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌ์ถ•ํ•˜๊ธฐ ์›Œํฌ์ƒต์„ ์‹ค์Šตํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค. ์ธ๊ทธ๋ ˆ์Šค Ingress ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด์˜ ์„œ๋น„์Šค์— ๋Œ€ํ•œ ์™ธ๋ถ€ ์š”์ฒญ์„ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ•  ๊ฒƒ์ธ์ง€ ๋„คํŠธ์›Œํฌ 7๊ณ„์ธต ๋ ˆ๋ฒจ์—์„œ ์ •์˜ํ•˜๋Š” ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์˜ค๋ธŒ์ ํŠธ์ด๋‹ค. ์ธ๊ทธ๋ ˆ์Šค ์˜ค๋ธŒ์ ํŠธ์˜ ๊ธฐ๋ณธ ๊ธฐ๋Šฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ์™ธ๋ถ€ ์š”์ฒญ์˜ ๋ผ์šฐํŒ… : ํŠน์ • ๊ฒฝ๋กœ๋กœ ๋“ค์–ด์˜จ ์š”์ฒญ์„ ์–ด๋–ค ์„œ๋น„์Šค๋กœ ์ „๋‹ฌํ• ์ง€ ์ •์˜ํ•˜๋Š” ๋ผ์šฐํ„ฐ ๊ทœ์น™ ์„ค์ • ๊ฐ€์ƒ ํ˜ธ์ŠคํŠธ ๊ธฐ๋ฐ˜์˜ ์š”์ฒญ ์ฒ˜๋ฆฌ : ๊ฐ™์€ IP์— ๋Œ€ํ•ด ๋‹ค๋ฅธ ๋„๋ฉ”์ธ ์ด๋ฆ„์œผ๋กœ ์š”์ฒญํ–ˆ์„ ๋•Œ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ•  ๊ฒƒ์ธ์ง€ ์ •์˜ SSL/TLS ๋ณด์•ˆ ์—ฐ๊ฒฐ ์ฒ˜๋ฆฌ : ์š”์ฒญ์„ ๋ผ์šฐํŒ… ํ•  ๋•Œ, ๋ณด์•ˆ ์—ฐ๊ฒฐ์„ ์œ„ํ•œ ์ธ์ฆ์„œ ์ ์šฉ ์ธ๊ทธ๋ ˆ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ  ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์„œ๋น„์Šค ํƒ€์ž… ์ค‘ NodePort ํ˜น์€ LoadBalancer ํƒ€์ž…์˜ ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•ด๋„ ์™ธ๋ถ€๋กœ ๋…ธ์ถœํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์ธ๊ทธ๋ ˆ์Šค ์—†์ด ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ SSL/TLS ๋ณด์•ˆ ์—ฐ๊ฒฐ ๋“ฑ์˜ ์ƒ์„ธ ์˜ต์…˜์„ ๊ฐ๊ฐ์˜ ์„œ๋น„์Šค์™€ ๋””ํ”Œ๋กœ์ด๋จผํŠธ์— ๋Œ€ํ•ด ์ผ์ผ์ด ์„ค์ •์„ ํ•ด์•ผ ํ•œ๋‹ค.

[AWS EKS] 4. Amazon ECR ์— ์ด๋ฏธ์ง€ ์˜ฌ๋ฆฌ๊ธฐ

โ˜๏ธ Amazon EKS ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌ์ถ•ํ•˜๊ธฐ ์›Œํฌ์ƒต์„ ์‹ค์Šตํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค. Amazon ECR ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ƒ์„ฑ ๋ฐ ์ด๋ฏธ์ง€ ์˜ฌ๋ฆฌ๊ธฐ Amazon ECR(Elastic Container Registry) ์€ ๋„์ปค ์ปจํ…Œ์ด๋„ˆ์˜ ์ด๋ฏธ์ง€๋ฅผ ์ €์žฅํ•˜๋Š” Repository ์„œ๋น„์Šค์ด๋‹ค. Docker hub์˜ ๊ธฐ๋Šฅ๊ณผ ๋™์ผํ•˜๋‹ค. AWS CLI๋กœ ์ด๋ฏธ์ง€ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ƒ์„ฑ 1 2 3 4 aws ecr create-repository \ --repository-name demo-flask-backend \ --image-scanning-configuration scanOnPush=true \ --region ap-northeast-2 ๋ช…๋ น์–ด๊ฐ€ ์ˆ˜ํ–‰๋˜๋ฉด ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ์ถœ๋ ฅ๋˜๋ฉฐ Amazon ECR ์ฝ˜์†”์ฐฝ์—์„œ๋„ ์ƒ์„ฑ๋œ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฏธ์ง€๋ฅผ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋กœ ํ‘ธ์‹œ ์ด๋ฏธ์ง€๋ฅผ ํ‘ธ์‹œํ•˜๋ ค๋Š” ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์„ ํƒ ํ›„ ์˜ค๋ฅธ์ชฝ ์ƒ๋‹จ์— ํ‘ธ์‹œ ๋ช…๋ น ๋ณด๊ธฐ(View push commands) ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด ํ‘ธ์‹œ ๋ช…๋ น์–ด๋ฅผ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค.

[AWS EKS] 3. EKS Cluster ์ƒ์„ฑํ•˜๊ธฐ

โ˜๏ธ Amazon EKS ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌ์ถ•ํ•˜๊ธฐ ์›Œํฌ์ƒต์„ ์‹ค์Šตํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค. Amazon EKS ํด๋Ÿฌ์Šคํ„ฐ๋Š” ๋‹ค์–‘ํ•œ ๋ฐฉ์‹์œผ๋กœ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋‹ค. AWS ์ฝ˜์†” ์ฐฝ์œผ๋กœ ๋ฐฐํฌ AWS CloudFormation ํ˜น์€ AWS CDK ์™€ ๊ฐ™์€ IaC(Infrastructure as Code) ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•ด ๋ฐฐํฌ EKS์˜ ๊ณต์‹ CLI์ธ eksctl ๋กœ ๋ฐฐํฌ Terraform, Pulumi, Rancher ๋“ฑ์œผ๋กœ ๋ฐฐํฌ eksctl๋กœ Cluster ์ƒ์„ฑํ•˜๊ธฐ ์•„๋ฌด ์˜ต์…˜์—†์ด eksctl create cluster ์‹คํ–‰ํ•˜๋ฉด default parameter๋กœ ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ๋ฐฐํฌ๋œ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ yaml ํŒŒ์ผ๋กœ ์ž‘์„ฑํ•œ ๊ตฌ์„ฑ ํŒŒ์ผ์„ ์ž‘์„ฑํ•˜์—ฌ ๋ฐฐํฌํ•˜๋ฉด ๊ตฌ์„ฑํŒŒ์ผ์— ๋ช…์‹œํ•œ ์˜ค๋ธŒ์ ํŠธ๋“ค์˜ ๋ฐ”๋ผ๋Š” ์ƒํƒœ(desired state)๋ฅผ ์‰ฝ๊ฒŒ ํŒŒ์•…ํ•˜๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์ด์ ์ด ์žˆ๋‹ค.

[AWS EKS] 2. AWS CLI, eksctl, kubectl ์„ค์น˜ ๋ฐ ์„ค์ •

โ˜๏ธ Amazon EKS ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌ์ถ•ํ•˜๊ธฐ ์›Œํฌ์ƒต์„ ์‹ค์Šตํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค. โ˜๏ธ ์›Œํฌ์ƒต์—๋Š” Cloud9์„ ๊ตฌ์ถ•ํ–ˆ์ง€๋งŒ ๋‚˜๋Š” ๋”ฐ๋กœ ๊ตฌ์ถ•ํ•˜์ง€๋Š” ์•Š์•˜๋‹ค. AWS CLI AWS CLI ์„ค์น˜ํ•˜๊ธฐ (Mac OS) AWS Command Line Interface๋Š” command-line shell ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ AWS ์„œ๋น„์Šค์˜ EC2, VPC ๋“ฑ๊ณผ ๊ฐ™์€ AWS์˜ ๋ฆฌ์†Œ์Šค๋ฅผ ํ”„๋กœ๋น„์ €๋‹ ํ•  ์ˆ˜ ์žˆ๋‹ค. Mac OS๋Š” pkg ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œ ํ•˜์—ฌ ์„ค์น˜ํ•œ๋‹ค. Mac OS : https://awscli.amazonaws.com/AWSCLIV2.pkg ๋‹ค๋ฅธ OS์—์„œ AWS CLI ์„ค์น˜ํ•˜๊ธฐ 1 2 3 $ aws --version aws-cli/2.6.1 Python/3.9.11 Darwin/21.4.0 exe/x86_64 prompt/o AWS Credential Configure AWS CLI์—์„œ ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ๊ตฌ์„ฑ ์„ค์ •๊ณผ ์ž๊ฒฉ ์ฆ๋ช…์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค.

[AWS EKS] (Optional) AWS Cloud9์œผ๋กœ ์‹ค์Šต ํ™˜๊ฒฝ ๊ตฌ์ถ•ํ•˜๊ธฐ

โ˜๏ธ Amazon EKS ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌ์ถ•ํ•˜๊ธฐ ์›Œํฌ์ƒต์„ ์‹ค์Šตํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค. \ AWS Cloud9 AWS Cloud9 ์€ ๋ธŒ๋ผ์šฐ์ €๋งŒ์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑ, ์‹คํ–‰ ๋ฐ ๋””๋ฒ„๊น…ํ•  ์ˆ˜ ์žˆ๋Š” IDE(ํ†ตํ•ฉ๊ฐœ๋ฐœํ™˜๊ฒฝ)์ด๋‹ค. ์ฝ”๋“œ ํŽธ์ง‘๊ธฐ, ๋””๋ฒ„๊ฑฐ ๋ฐ ํ„ฐ๋ฏธ๋„ ๊ธฐ๋Šฅ์„ ํฌํ•จํ•˜๊ณ  ์žˆ๊ณ  ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ์œ„ํ•œ ํ•„์ˆ˜ ๋„๊ตฌ๊ฐ€ ์‚ฌ์ „์— ํŒจํ‚ค์ง• ๋˜์–ด ์ œ๊ณต๋œ๋‹ค. AWS Cloud9 ์‹œ์ž‘ํ•˜๊ธฐ AWS Cloud9 IDE ๊ตฌ์„ฑ AWS Cloud9 ์ฝ˜์†” ์ ‘์† ํ›„ Create environment ๋ฒ„ํŠผ ํด๋ฆญํ•œ๋‹ค. IDE์˜ Environment ์ด๋ฆ„ ๋ฐ ์„ค๋ช…์„ ์ž‘์„ฑํ•œ๋‹ค. ์ธ์Šคํ„ด์Šค ํƒ€์ž…์„ t3.medium์œผ๋กœ, ํ”Œ๋žซํผ์˜ ๊ฒฝ์šฐ Amazon Linux 2 (recommended) ์„ค์ • Next Step์„ ํด๋ฆญํ•˜์—ฌ ์ง€์ •ํ•œ ์†์„ฑ ํ™•์ธ ํ›„ Create environment ํด๋ฆญํ•˜์—ฌ environment ์ƒ์„ฑํ•œ๋‹ค.