๐๐ฅ๐ฅ ๋ผ์ผ๋ฆฌ์ ์ฝ๋ ๋ถ์ค๋ฌ๊ธฐ ๐๐ฅ๐ฅ
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 : ๋น์ฉ์ ์ง์ญ์ ๋ฐ๋ผ ๊ฐ๊ฒฉ์ด ๋ค๋ฅด๋ค.
โ๏ธ Amazon EKS ์น ์ ํ๋ฆฌ์ผ์ด์
๊ตฌ์ถํ๊ธฐ ์ํฌ์ต์ ์ค์ตํ ๋ด์ฉ์
๋๋ค.
์ธ๊ทธ๋ ์ค Ingress ํด๋ฌ์คํฐ ๋ด์ ์๋น์ค์ ๋ํ ์ธ๋ถ ์์ฒญ์ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ ๊ฒ์ธ์ง ๋คํธ์ํฌ 7๊ณ์ธต ๋ ๋ฒจ์์ ์ ์ํ๋ ์ฟ ๋ฒ๋คํฐ์ค ์ค๋ธ์ ํธ์ด๋ค.
์ธ๊ทธ๋ ์ค ์ค๋ธ์ ํธ์ ๊ธฐ๋ณธ ๊ธฐ๋ฅ์ ๋ค์๊ณผ ๊ฐ๋ค.
์ธ๋ถ ์์ฒญ์ ๋ผ์ฐํ
: ํน์ ๊ฒฝ๋ก๋ก ๋ค์ด์จ ์์ฒญ์ ์ด๋ค ์๋น์ค๋ก ์ ๋ฌํ ์ง ์ ์ํ๋ ๋ผ์ฐํฐ ๊ท์น ์ค์ ๊ฐ์ ํธ์คํธ ๊ธฐ๋ฐ์ ์์ฒญ ์ฒ๋ฆฌ : ๊ฐ์ IP์ ๋ํด ๋ค๋ฅธ ๋๋ฉ์ธ ์ด๋ฆ์ผ๋ก ์์ฒญํ์ ๋ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ ๊ฒ์ธ์ง ์ ์ SSL/TLS ๋ณด์ ์ฐ๊ฒฐ ์ฒ๋ฆฌ : ์์ฒญ์ ๋ผ์ฐํ
ํ ๋, ๋ณด์ ์ฐ๊ฒฐ์ ์ํ ์ธ์ฆ์ ์ ์ฉ ์ธ๊ทธ๋ ์ค๋ฅผ ์ฌ์ฉํ๋ ์ด์ ์ฟ ๋ฒ๋คํฐ์ค ์๋น์ค ํ์
์ค NodePort ํน์ LoadBalancer ํ์
์ ์๋น์ค๋ฅผ ์ฌ์ฉํด๋ ์ธ๋ถ๋ก ๋
ธ์ถํ ์ ์์ง๋ง, ์ธ๊ทธ๋ ์ค ์์ด ์๋น์ค๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ SSL/TLS ๋ณด์ ์ฐ๊ฒฐ ๋ฑ์ ์์ธ ์ต์
์ ๊ฐ๊ฐ์ ์๋น์ค์ ๋ํ๋ก์ด๋จผํธ์ ๋ํด ์ผ์ผ์ด ์ค์ ์ ํด์ผ ํ๋ค.
โ๏ธ 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) ๋ฒํผ์ ํด๋ฆญํ๋ฉด ํธ์ ๋ช
๋ น์ด๋ฅผ ํ์ธ ํ ์ ์๋ค.
โ๏ธ 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)๋ฅผ ์ฝ๊ฒ ํ์
ํ๊ณ ๊ด๋ฆฌํ ์ ์๋ ์ด์ ์ด ์๋ค.
โ๏ธ 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์์ ์์ฃผ ์ฌ์ฉ๋๋ ๊ตฌ์ฑ ์ค์ ๊ณผ ์๊ฒฉ ์ฆ๋ช
์ ์ ์ฅํ ์ ์๋ค.
โ๏ธ 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 ์์ฑํ๋ค.