Infra (8) ์ธ๋ค์ผํ ๋ฆฌ์คํธํ AWS ) ์ ์ ์น ์ฌ์ดํธ ๋ฐฐํฌ ๋ฐฉ์ ๋น๊ต ( nginx / cloudFront / amplify ) ์์ AWS ๋ฐฐํฌ ๊ณผ์ ์ ํฌ์คํ ํ๋ฉด์ EC2 + WebServer๋ฅผ ํ์ฉํ์ฌ ์ค์ต์ ํด๋ณด์๋๋ฐ์. ๊ทธ ์ธ์๋ ์น์ฌ์ดํธ๋ฅผ ๋ฐฐํฌํ๋ ๋ฐฉ๋ฒ์๋ ์ฌ๋ฌ๊ฐ์ง ๋ฐฉ๋ฒ๋ค์ด ์์ด์ ํ๋ฒ ๋น๊ตํด๋ณด๋ ค๊ณ ํฉ๋๋ค. 1. AWS - EC2 + WebServer(Nginx) ๋ฅผ ํ์ฉํ ๋ฐฐํฌ 2. AWS - CloudFront + S3๋ฅผ ํ์ฉํ ๋ฐฐํฌ 3. AWS - Amplify๋ฅผ ํ์ฉํ ๋ฐฐํฌ 1. EC2 + WebServer ( Nginx ) ๋ฅผ ํ์ฉํ ๋ฐฐํฌ - AWS EC2 ์ธ์คํด์ค ์์ Nginx ์น์๋ฒ๋ฅผ ์ด์ฉํ์ฌ ์๋ฒ ํธ์คํ ์ ์งํํ๋ ๋ฐฉ๋ฒ. EC2๋ ํ๋์ ์์ ๊ฐ์์ ์๋ฒ์ด๊ณ , Nginx๋ OS์์ ์น ์๋น์ค๋ฅผ ๋์ฐ๊ธฐ ์ํ ์น ์๋ฒ. EC2์ Nginx๋ฅผ ์ด์ฉํด์ ๊ฐ๋จํ๊ฒ ์ ์ ์ธ ์ฌ์ดํธ๋ฅผ ๋ฐฐํฌํ ์ ์๋ค. ์ฅ์ 1) Ngi.. AWS ๋ฐฐํฌ์๋ํ ๊ตฌ์ถ _ 6. React ํ๋ก์ ํธ ๋ฐฐํฌ ์ด์ ์ index.html ํ์ผํ๋๋ก ๋ฐฐํฌ ํ ์คํธ๋ฅผ ํ์๋๋ฐ, ์ค์ ๋ก ๋ฐฐํฌํด์ผํ๋ ํ๋ก์ ํธ๋ React ํ๋ก์ ํธ๋ก ๊ตฌ์ฑํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ React ํ๋ก์ ํธ๋ฅผ ๋ง๋ค๊ณ ์ ๋จ๋์ง ํ์ธํด๋ณด์. 1. React ํ๋ก์ ํธ ์์ฑ - ๋ฆฌ์กํธ ํ๋ก์ ํธ๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ๊ฐ๋จํ๋ค. - ์ด์ ์ ์งํํ๋ ํด๋์์ ๊ทธ๋๋ก React ํ๋ก์ ํธ๋ฅผ ๋ง๋ค์ด์ฃผ์๋ค. Node.js ์ค์น ์์ ์ฉ ํด๋ ๋ง๋ค๊ธฐ ํฐ๋ฏธ๋์์ npx create-react-app ํ๋ก์ ํธ๋ช ์ด๋ ๊ฒ ํ๋ฉด ์๋์ ์ผ๋ก ํ์ํ ํด๋๋ค์ด ์ธํ ๋๋ค. 2. Docker ํ์ผ ์์ ์๋์ ๊ฐ ์ฝ๋ ์ค๋ช ์ ์ ์ด๋์๋ค. # base image ์ค์ (as build ๋ก ์๋ฃ๋ ํ์ผ์ ๋ฐ์์ ์ฌ์ฉํ ์ ์๋ค.) FROM node:14-alpine as build # ์ปจํ ์ด๋ ๋ด๋ถ ์.. AWS ๋ฐฐํฌ์๋ํ ๊ตฌ์ถ _ 5. Route53 / ELB ์ฐ๊ฒฐ / HTTPS ๋ฆฌ๋ค์ด๋ ์ ํ์ฌ ์ธํฐ๋ท ๋ธ๋ผ์ฐ์ ์์ฒญ์ LB๊ฐ ๋ฐ์ EC2์ ์์ฒญ์ ๋ณด๋ด๊ณ ์๋ ๊ตฌ์กฐ๋ก ๋์ด์๋ค. ์ด๋ฒ์๋ ๋๋ฉ์ธ์ ๋ฐ๊ธ ๋ฐ๊ณ AWS์ Route53์ ๋ฑ๋กํ๋ค, ELB์ ์ฐ๊ฒฐํด์ ๋๋ฉ์ธ์ผ๋ก ์ ์ํ ๊ฒ์ด๋ค. 1. ๋๋ฉ์ธ ๋ฐ๊ธ ์ฌ์ดํธ https://www.freenom.com/en/index.html?lang=en Freenom - A Name for Everyone Sorry, is not available. IMPORTANT NOTICE: Because of technical issues the Freenom application for new registrations is temporarily out-of-order. Please accept our apologies for the inconvenience. W.. AWS ๋ฐฐํฌ์๋ํ ๊ตฌ์ถ _ 4. ECS ์์ฑ ๋ฐ ELB ์ฐ๊ฒฐ / ECR image ๋ฐฐํฌ ์ด๋ฒ ํ๋ก์ธ์ค๋ ๋ค์๊ณผ ๊ฐ๋ค. - ECS ์์ฑ : Cluster, Service, Task Definition - ELB ์์ฑ , ์ฐ๊ฒฐ - EC2 ์ธ์คํด์ค ์์ฑ : Auto Scaling Group ์์ํ๊ธฐ ์ ์ ๊ฐ๋จํ ๊ฐ๋ ์ ์ ๋ฆฌํ๊ณ ๋์ด๊ฐ์. 1. EC2 : ๊ฐ์ ์๋ฒ์ธ EC2 ์ธ์คํด์ค๋ฅผ ํ๋ก๋น์ ๋ํ๊ณ ์คํํ ์ ์์ต๋๋ค. EC2 ์ธ์คํด์ค๋ ๊ฐ์ ์ปดํจํฐ๋ก, ๋ค์ํ ์ด์ ์ฒด์ ์ ์ํํธ์จ์ด๋ฅผ ์คํํ ์ ์์ต๋๋ค. EC2 ์ธ์คํด์ค๋ ๊ฐ์ ํ๋ผ์ด๋น ํด๋ผ์ฐ๋(VPC) ๋ด์์ ์คํ๋๋ฉฐ, ์ธํฐ๋ท์ ํตํด ์ก์ธ์คํ ์ ์์ต๋๋ค. 2. Auto Scaling Group : ์คํ ์ค์ผ์ผ๋ง ๊ทธ๋ฃน์ EC2 ์ธ์คํด์ค์ ๊ทธ๋ฃน์ ๋๋ค. ์ด ๊ทธ๋ฃน์ ์ฌ์ฉ์๊ฐ ์ ์ํ ์กฐ๊ฑด์ ๋ฐ๋ผ EC2 ์ธ์คํด์ค๋ฅผ ์๋์ผ๋ก ํ๋ก๋น์ ๋ํ๊ณ ์กฐ์ ํ์ฌ ์ ํ๋ฆฌ์ผ.. AWS ๋ฐฐํฌ์๋ํ ๊ตฌ์ถ _ 3. Github Actions์ผ๋ก docker image ์ ๋ก๋ ์๋ํ AWS ๋ฐฐํฌ์๋ํ ๊ตฌ์ถ _ 2. Docker ํ๊ฒฝ ๊ตฌ์ถ / ECR์ ์ด๋ฏธ์ง ์ ๋ก๋ ์ด๋ฒ์๋ ECRํ ์คํธ ์ฉ EC2๋ฅผ ๋ง๋ค๊ธฐ, ๋์ปค ํ๊ฒฝ ๊ตฌ์ถ, ๋น๋ํ ๋์ปค ์ด๋ฏธ์ง๋ฅผ ์ ์ฅํ ์ ์๋ ECR์ ์ ๋ก๋ ํ๋ ๊ณผ์ ์ด๋ค. - ์ต์ข flow๋ ์์ ๊ฐ๋ค. ๊ฐ๋ฐ์๊ฐ github ๋ ํฌ์งํ ๋ฆฌ์ Push ํ์ ๋ github act suvera.tistory.com ์์ ํฌ์คํ ์์ ์๋์ผ๋ก ํ๋ ์์ ( ๋์ปค ์ด๋ฏธ์ง๋ฅผ ๋น๋ํ๊ณ ECR์ ์ ๋ก๋ํ๋ ๊ณผ์ )์ Github Actions์ ์ฌ์ฉํ์ฌ ๊ฐ๋ฐ์๊ฐ ๊นํ์ push๋ฅผ ํ์ ๋ ์๋์ผ๋ก ์ํ๋๋๋ก ํ๋ ๊ณผ์ ์ ๋ค๋ฃฐ ๊ฒ์ด๋ค ! ์น ์๋ฒ : nginx ํ๋ก์ธ์ค : ๊นํ main ๋ธ๋์น์ push ๋ช ๋ น์ด ์ผ์ด๋ ๊ฒฝ์ฐ, test, formatting & code analysis๋ฅผ.. AWS ๋ฐฐํฌ์๋ํ ๊ตฌ์ถ _ 2. Docker ํ๊ฒฝ ๊ตฌ์ถ / ECR์ ์ด๋ฏธ์ง ์ ๋ก๋ ์ด๋ฒ์๋ ECRํ ์คํธ ์ฉ EC2๋ฅผ ๋ง๋ค๊ธฐ, ๋์ปค ํ๊ฒฝ ๊ตฌ์ถ, ๋น๋ํ ๋์ปค ์ด๋ฏธ์ง๋ฅผ ์ ์ฅํ ์ ์๋ ECR์ ์ ๋ก๋ ํ๋ ๊ณผ์ ์ด๋ค. - ์ต์ข flow๋ ์์ ๊ฐ๋ค. ๊ฐ๋ฐ์๊ฐ github ๋ ํฌ์งํ ๋ฆฌ์ Push ํ์ ๋ github actions๋ฅผ ํตํด workflow๊ฐ ์๋์ผ๋ก ๋์๊ฐ๊ณ , ๋์ปค ์ด๋ฏธ์ง๊ฐ ๋น๋ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋น๋๋ ์ด๋ฏธ์ง๋ ECR์ ์ ๋ก๋ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ต์ข ์ ์ผ๋ก ECS Task Definition์ ์๋ก์ด ์ด๋ฏธ์ง ID๊ฐ ๋ค์ด๊ฐ๊ณ , ECS์ ์์ ์์ฑ ๋ช ๋ น์ ํ๋ค. ๊ทธ๋ฌ๋ฉด ๋ฐฐํฌ๊ฐ ์๋ฃ ๋๋ค ! 1. ECR์ ํ ์คํธ ํ EC2๋ฅผ ์์ฑ - ์์ง AutoScalingGroup ์์ฑ ์ ์ด๋ผ ์ธ์คํด์ค๊ฐ ์๋ค. ํ ์คํธ ํ ์ญ์ ํด์ฃผ์. ์ด๋ฆ : ECR-test AMI : Amazon Linux 2023 .. AWS ๋ฐฐํฌ์๋ํ ๊ตฌ์ถ _ 1. ๋คํธ์ํฌ ํ๊ฒฝ ๊ตฌ์ฑ AWS๋ฅผ ์ด์ฉํด์ ๋ฐฐํฌ์๋ํ ํ๊ฒฝ์ ๊ตฌ์ถํ๋ฉด์ ๋ค์ํ ๋คํธ์ํฌ ์ง์์ ์ฑ์๋๊ฐ ์ ์๋ ์ข์ ๊ธฐํ์๋ค. ๊ตฌ์ถํ๋ ๊ณผ์ ์ ๋ค์ ํ๋ฒ ์ ๋ฆฌํ๋ฉด์ ๊ณต๋ถํ ๋ด์ฉ์ ๋ณด์ถฉํด๋๊ฐ๊ณ ์ ํ๋ค. ์ฐ์ ์ด๋ค ์์ผ๋ก ๊ตฌ์ฑํ ์ง ์ํคํ ์ฒ๋ฅผ ์ง์ผํ๋๋ฐ, ์์ง AWS์ ๋ํ ์ดํด๊ฐ ์๋ฒฝํ์ง ์์์ ๋ค๋ฅธ๋ถ์ ์ํคํ ์ฒ๋ฅผ ๋ณด๊ณ ๋ฐ๋ผํ๋ ์์ผ๋ก ํด๋ณด์๋ค. ( ๋ฒ๋๋๊ป ๊ฐ์ฌ ์ธ์ฌ๋ฅผ ๋๋ฆฝ๋๋ค _ _ ) AWS ๋ฐฐํฌ์๋ํ ์ค์ ๋ก ๊ตฌ์ถํ๊ธฐ - ์ํคํ ์ฒ ์ด๋ฒ ํฌ์คํ ๋ถํฐ๋ ๊ทธ๋์ ๊ณต๋ถํ๋ ๊ฒ๋ค์ ํ ๋๋ก github / gitlab ๊ฐ์ ํ์๊ด๋ฆฌ ํด์ ์ด์ฉํด์, AWS... blog.naver.com ๊ณ์ ์ ์ฒ์ ๋ง๋ค์์ ๋ ํ๋์ ๋ฆฌ์ ์์ ๋ง๋ค์ด์ง๋ ๋ฆฌ์์ค๋ค์ ๋ค์๊ณผ ๊ฐ๋ค. - 1 VPC - n Subnet : n์ ์ฌ์ฉํ ์ ์๋ AZ์ ๊ฐ์ - .. CI/CD) Github Actions - Slack ์ฐ๋ ๋ฐฐํฌ ์๋ํ ํ๊ฒฝ์ ๊ตฌ์ถํ๋ฉด์ Github Actions์ ์ฌ์ฉํ์ฌ Docker ์ด๋ฏธ์ง๋ฅผ ๋น๋ํ๊ณ ECR์ Pushํ๋ ๊ณผ์ ์ ์งํํ์์ต๋๋ค. ์ด๋ฒ์๋ ๊ทธ ๊ณผ์ ์์ ๋น๋์ ์คํจํ๊ฑฐ๋ ์ค๋ฅ๊ฐ ๋ฌ์ ๊ฒฝ์ฐ์ ํธ๋ฆฌํ๊ฒ ๋ชจ๋ํฐ๋งํ๊ธฐ ์ํด์ ์ ๋ฌด ํ์ ํด๋ก ์ฌ์ฉ๋๋ Slack๊ณผ ์ฐ๋ํ๋ ๊ณผ์ ์ ์งํํด๋ณด๊ฒ ์ต๋๋ค. 1. Slack์ ์๋ก์ด ์ฑ ์์ฑ https://api.slack.com/apps Slack API: Applications | Slack Your Apps Don't see an app you're looking for? Sign in to another workspace. api.slack.com 1) Create New App -> From Scratch ์ ํ 2) App Name์๋ ์ฌ์ฉํ ์ด๋ฆ์ ์ .. ์ด์ 1 ๋ค์