์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- deveops
- ๋ฐฐํฌ
- ๋ฐฐํฌ์๋ํ
- github
- nginx
- react
- docker
- CSS
- ์กฐ์ธ
- CI/CD
- aws devops
- Azure
- ๋์ปค
- devops
- ๋ฐ๋ธ์ต์ค
- PIPELINE
- azure deveops
- slack
- MySQL
- ํด๋ผ์ฐ๋
- azure devops
- node.js
- AWS
- ๋ฐ์ดํฐํ์
- git
- ์๋ํ
- ๋ฆฌ์กํธ
- ์๋๋ฐฐํฌ
- Pull
- ๋ง์ด์์คํ์
- Today
- Total
Full_Stack developer
AWS CodeDeploy๋ก EC2์ ๋ฐฐํฌ ์๋ํํ๊ธฐ ๋ณธ๋ฌธ
๐ AWS CodeDeploy๋ก EC2์ ๋ฐฐํฌ ์๋ํํ๊ธฐ
์ด์ ๊ธ์์๋ CodeBuild๋ก ์๋ ๋น๋ํ๋ ๋ฒ์ ์์๋ดค์ฃ .
์ด๋ฒ์๋ ๊ทธ ๋น๋๋ ๊ฒฐ๊ณผ๋ฌผ์ EC2์ ์๋์ผ๋ก ๋ฐฐํฌํ๋
์ค์ DevOps ์ํฌํ๋ก์ฐ์ ํต์ฌ ์ค ํ๋์ธ
AWS CodeDeploy๋ฅผ ๋ค๋ค๋ณผ๊ฒ์!
๐ก CodeDeploy๋?
AWS CodeDeploy๋
EC2, Lambda, ๋๋ ์จํ๋ ๋ฏธ์ค ์๋ฒ์
์ ํ๋ฆฌ์ผ์ด์
์ ์๋์ผ๋ก ๋ฐฐํฌํ ์ ์๊ฒ ํด์ฃผ๋ ์๋น์ค์์.
"๋งค๋ฒ ์๋ฒ์ ์ ์ํด์ git pull ํ๊ณ , ์๋น์ค ์ฌ์์ํ๊ณ ..."
์ด ์์์ ์ ๋ชจ๋ ์๋ํํด์ฃผ๋ ๊ฒ์ด ๋ฐ๋ก CodeDeploy!
๐ฏ CodeDeploy๋ ์ด๋ฐ ์์ ์ ์๋์ผ๋ก ํด์ค์
- EC2์ ์ ํ๋ฆฌ์ผ์ด์ ํ์ผ ์ ๋ก๋
- ์ค์น ์คํฌ๋ฆฝํธ ์คํ (npm install, systemctl restart ๋ฑ)
- ๋ธ๋ฃจ/๊ทธ๋ฆฐ ๋ฐฐํฌ, ๋กค๋ฐฑ ์ง์
- ๋ฐฐํฌ ์ํ ์ถ์ ๋ฐ ์คํจ ์ ์๋ ๋ณต๊ตฌ
๐งฉ ๊ตฌ์ฑ ์์ ๊ฐ๋จ ์์ฝ
- CodePipeline: ์ ์ฒด ํ๋ฆ ์ปจํธ๋กค๋ฌ
- CodeBuild: ์ ํ๋ฆฌ์ผ์ด์ ๋น๋
- CodeDeploy: EC2์ ๋ฐฐํฌ
- EC2 ์ธ์คํด์ค: ์ค์ ์๋น์ค๊ฐ ๋์๊ฐ๋ ์๋ฒ
๐ ๏ธ ์ค์ต: React ์ฑ์ EC2์ ์๋ ๋ฐฐํฌํ๊ธฐ
์ ์ ์กฐ๊ฑด
- EC2 ์ธ์คํด์ค 1๋ (Amazon Linux 2)
- CodeDeploy Agent ์ค์น๋จ
- IAM ์ญํ ๋ฐ ๊ถํ ์ค์ ์๋ฃ
1. EC2์ CodeDeploy Agent ์ค์น
[bash]
sudo yum update -y
sudo yum install ruby wget -y
cd /home/ec2-user
wget https://aws-codedeploy-us-east-1.s3.amazonaws.com/latest/install
chmod +x ./install
sudo ./install auto
sudo service codedeploy-agent start
์ค์น ํ์๋ ์ํ ์ฒดํฌ!
[bash]
sudo service codedeploy-agent status
2. EC2์ IAM Role ์ฐ๊ฒฐ
- AmazonEC2RoleforAWSCodeDeploy ๊ถํ ํฌํจ
- EC2 ์ธ์คํด์ค์ ์ด ์ญํ ์ ์ฐ๊ฒฐํด์ค์ผ CodeDeploy๊ฐ ์ ๊ทผ ๊ฐ๋ฅ
3. appspec.yml ํ์ผ ์์ฑ
version: 0.0
os: linux
files:
- source: /
destination: /home/ec2-user/my-app
hooks:
AfterInstall:
- location: scripts/install.sh
timeout: 300
runas: ec2-user
ApplicationStart:
- location: scripts/start.sh
timeout: 300
runas: ec2-user
๐ก appspec.yml์ CodeDeploy๊ฐ ์ด๋ค ์์ ์ ์ด๋ค ์์๋ก ์คํํ ์ง ์ ์ํ๋ ํต์ฌ ํ์ผ!
4. ๋ฐฐํฌ ์คํฌ๋ฆฝํธ ์์
/scripts/install.sh
[bash]
#!/bin/bash
cd /home/ec2-user/my-app
npm install
/scripts/start.sh
[bash]
#!/bin/bash
pm2 restart app || pm2 start app.js
5. CodeDeploy ์ ํ๋ฆฌ์ผ์ด์ ์์ฑ
- AWS ์ฝ์ → CodeDeploy → ์ ํ๋ฆฌ์ผ์ด์ ์์ฑ
- ์ปดํจํ ํ๋ซํผ: EC2/์จํ๋ ๋ฏธ์ค
- ๋ฐฐํฌ ๊ทธ๋ฃน ์์ฑ:
- ๋์ ์ธ์คํด์ค: ํ๊ทธ๋ก ์ง์ (ex: Name = MyServer)
- ์๋น์ค ์ญํ : CodeDeployRole (AWS์์ ์ ๊ณตํ๋ ๊ถํ ์ฌ์ฉ)
6. CodePipeline์ ๋ฐฐํฌ ๋จ๊ณ ์ถ๊ฐ
- Source → Build → Deploy (CodeDeploy๋ก EC2 ๋ฐฐํฌ)
- appspec.yml ๋ฐ ์คํฌ๋ฆฝํธ ํฌํจํ zip ํ์ผ์ ์ํฐํฉํธ๋ก ์ ๋ฌ
โ ๊ฒฐ๊ณผ
์ด์ ๋ถํฐ๋ GitHub์ ํธ์ํ๋ฉด:
- CodePipeline์ด ๊ฐ์ง
- CodeBuild๊ฐ ๋น๋
- CodeDeploy๊ฐ EC2์ ์๋ ๋ฐฐํฌ
- EC2์์ ์ฑ์ด ์คํ๋๊ณ ์ฌ์ฉ์์๊ฒ ์๋น์ค ์ ๊ณต!
๐ง ๋ง๋ฌด๋ฆฌ ํ
- ๋ฐฐํฌ ๋ก๊ทธ๋ CodeDeploy ์ฝ์์์ ํ์ธ ๊ฐ๋ฅ (์คํจ ์์ธ ์ถ์ ์ ์ ์ฉ)
- ๋ธ๋ฃจ/๊ทธ๋ฆฐ ๋ฐฐํฌ ์ค์ ํ๋ฉด ๋ฌด์ค๋จ ๋ฐฐํฌ ๊ฐ๋ฅ
- pm2, systemctl, docker ๋ฑ์ผ๋ก ์๋น์ค ์คํ ์๋ํ ๊ฐ๋ฅ
- AfterInstall, ApplicationStart ์ธ์๋ ๋ค์ํ hook ์ฌ์ฉ ๊ฐ๋ฅ
๋ง๋ฌด๋ฆฌ ๐ฏ
AWS CodeDeploy๋
๋ณต์กํ๊ณ ๋ฐ๋ณต์ ์ธ ์๋ฒ ๋ฐฐํฌ ์์
์ ์๋ํํด์
๊ฐ๋ฐ์/์ด์์ ๋ชจ๋์ ์ถ์ ์ง์ ๋์ฌ์ฃผ๋ ๋๊ตฌ์์.
ํนํ EC2 ๊ธฐ๋ฐ ์ ํ๋ฆฌ์ผ์ด์
์ ์ด์ํ๋ ํ์ด๋ผ๋ฉด
๊ผญ ์ตํ์ผ ํ ํต์ฌ DevOps ๋๊ตฌ์
๋๋ค.
'Devops > AWS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
AWS Lambda์ AWS DevOps ํตํฉํ์ฌ ์๋ฒ๋ฆฌ์ค ๋ฐฐํฌ (0) | 2025.04.09 |
---|---|
AWS Elastic Beanstalk์ ์ด์ฉํ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐฐํฌ ์๋ํ (0) | 2025.04.09 |
AWS CodeBuild๋ก ๋น๋ ์๋ํํ๊ธฐ (0) | 2025.04.08 |
AWS CodePipeline์ผ๋ก CI/CD ๊ตฌ์ฑํ๊ธฐ (0) | 2025.04.08 |
AWS DevOps๋ ๋ฌด์์ธ๊ฐ? (0) | 2025.04.08 |