๐ CI/CD
CI (์ง์์ ํตํฉ Continuous Integration)
- ์์ ํ ์ฝ๋๋ฅผ ์ฃผ๊ธฐ์ (์๋์ )์ผ๋ก ๋น๋ํ๊ณ ํ ์คํธํ์ฌ ๋ ํฌ์งํ ๋ฆฌ์ ํตํฉํ๋ ๊ฒ
- ์ฝ๋์ ๋ณ๊ฒฝ์ฌํญ์ด ๊ธฐ์กด ์ฝ๋์ ๋ฒ๊ทธ๋ฅผ ์ผ์ผํค์ง ์๋์ง, ์ ํธํ๋๋์ง๋ฅผ ์๋์ผ๋ก ๊ฒ์ฆ
- ์ฝ๋ ๋ณ๊ฒฝ์ฌํญ์ ์์ ๋จ์๋ก ์ง์์ ์ผ๋ก ๋จธ์ง(๋ณํฉ)ํ์ฌ ์ถฉ๋์ํฉ์ ๋ฏธ๋ฆฌ ์๋ฐฉํ ์ ์์
CD (์ง์์ ์ ๊ณต Continuous Delivery / ์ง์์ ๋ฐฐํฌ Continuous Deployment)
- ์ง์์ ์ ๊ณต (Delivery) : ๋ฐฐํฌ ์ ๋จ๊ณ๊น์ง ์๋ํ, ์๋์ผ๋ก ๋ฐฐํฌ ์น์ธ
- ์ง์์ ๋ฐฐํฌ (Deployment): ํ ์คํธ ํต๊ณผ ์ ์ด์ ํ๊ฒฝ๊น์ง ์๋์ผ๋ก ๋ฐฐํฌ
๐ Jenkins
Jenkins
Jenkins – an open source automation server which enables developers around the world to reliably build, test, and deploy their software
www.jenkins.io
์ ํจ์ค๋ ์ํํธ์จ์ด์ ๋น๋, ํ ์คํธ, ๋ฐฐํฌ ์๋ํ๋ฅผ ๊ฐํธํ๊ฒ ๋ง๋ค์ด์ฃผ๋ CI/CD ๋๊ตฌ๋ค.
Docker ์ด๋ฏธ์ง ํ์ผ, War ํ์ผ, ์ค์นํ๋ก๊ทธ๋จ ๋ฑ ๋ค์ํ ํํ๋ก ๋ฐฐํฌ๋๋ฏ๋ก ์ํ๋ ๋ฐฐํฌ ํ์ผ์ ๋ค์ด ๋ฐ์ ์ฌ์ฉํ๋ฉด ๋๋ค.
๐ AWS EC2 (Amazon Linux)์ Jenkins ์ค์นํ๊ธฐ
0. ์ ์
- EC2 ์ธ์คํด์ค๊ฐ ์์ฑ๋์ด ์์ผ๋ฉฐ ๋ณด์ ๊ทธ๋ฃน์ด ์๋์ฒ๋ผ ์ค์ ๋ ์ํ์ฌ์ผ ํ๋ค.
- ๋ณด์๊ทธ๋ฃน์ ์ธ์คํด์ค ์์ฑ ์ ์ค์ ํ๊ฑฐ๋ ์ค์ ํ ํธ์งํ ์ ์๋ค.
0.1 ๋ณด์๊ทธ๋ฃน ํฌํธ ์ค๋ช
- 80 (HTTP) : ์น ์ ๊ทผ์ฉ. ๋๋ฉ์ธ ์ฐ๊ฒฐ ๋ฐ HTTP๋ฅผ ํตํ ์๋น์ค ์ ๊ทผ ํ์ฉ ๋ชฉ์ ์ ํฌํธ
- 8080 : ์ ํจ์ค ์น UI ์ ๊ทผ์ฉ ํฌํธ. ์ ํจ์ค ์ค์น ํ ์ด๊ธฐ ์ค์ ๋ฐ ํ๋ฌ๊ทธ์ธ ์ค์น ์ ์น UI ํ์
- 22 (SSH) : EC2 ์๋ฒ ์๊ฒฉ ์ ์์ฉ ํฌํธ. ํฐ๋ฏธ๋์์ SSH ๋ช ๋ น์ด ์ฌ์ฉํ์ฌ ์ ๊ทผ
0.2 EC2 ์ธ์คํด์ค ์์ฑ ๋ฐฉ๋ฒ ์ฐธ๊ณ
[AWS] EC2 ์ธ์คํด์ค ์์ฑ ๋ฐ ์ ์
๐ ์ค๋น์ฌํญ1. AWS ํ์๊ฐ์ (ํ๋ฆฌํฐ์ด ์ด์ฉ)2. Ubuntu ์ค์น ๐ AWS EC2 ์ธ์คํด์ค ์์ฑํ๊ธฐ1. AWS ๋ก๊ทธ์ธ ํ Amazon EC2 ํน์ ์ฝ์์ ๋ก๊ทธ์ธ ์ ํ Amazon EC2 ์ ํํ์ ๊ฒฝ์ฐ, Amazon EC2 ์์ํ๊ธฐ ์ ํ 2.
apricoding.tistory.com
1. EC2 ์ธ์คํด์ค ์ ์
ssh -i "key.pem" ec2-user@ec2-public-ip
2. Java ์ค์น
- ์ ํจ์ค๋ Java ์ ํ๋ฆฌ์ผ์ด์ ์ผ๋ก Java๋ฅผ ๋จผ์ ์ค์นํด์ผํ๋ค.
- ์ค์น ๊ฐ๋ฅํ ํจํค์ง ์ค java๋ฅผ ํฌํจํ ํจํค์ง ๋ชฉ๋ก ๊ฒ์
sudo yum list | grep java
- ํจํค์ง ์ต์ ์ ๋ฐ์ดํธ ๋ฐ Java ์ค์น (Java 7, 8, 11, 17, 21 ์ง์ ๊ฐ๋ฅ / 11 ์ด์ ๊ถ์ฅ)
sudo yum update -y
sudo yum install java-17-amazon-corretto-devel.x86_64 -y
- Java ์ญ์ ์
sudo yum remove "์ค์นํ๋ฒ์ " -y
sudo yum remove java* -y
3. Jenkins ์ค์น
- Jenkins ๋ ํฌ์งํ ๋ฆฌ ์ถ๊ฐ
sudo wget -O /etc/yum.repos.d/jenkins.repo \
https://pkg.jenkins.io/redhat-stable/jenkins.repo
- Jenkins key ํ์ผ ์ถ๊ฐ
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key
- Jenkins ์ค์น
sudo yum install jenkins -y
4. Jenkins ์์
sudo systemctl start jenkins
- EC2 ์ธ์คํด์ค ์์ ์ ์๋ ์คํ ์ค์
sudo systemctl enable jenkins
- ์ํ ๋ฐ ๋ก๊ทธ ํ์ธ
sudo systemctl status jenkins
sudo journalctl -u jenkins -f
5. Jenkins ๊ตฌ์ฑ
- ๋ธ๋ผ์ฐ์ ์์ ec2 public ip:8080 ํฌํธ๋ก ์ ์ (์: 53.231.222.xx:8080)
- ์๋ ํ์ด์ง๊ฐ ์ ์์ ์ผ๋ก ์ถ๋ ฅ๋๋์ง ํ์ธ
- ํฐ๋ฏธ๋์ ์๋ ๋ช ๋ น์ด ์ ๋ ฅํ์ฌ ๋น๋ฐ๋ฒํธ ํ์ธ ํ ๋ณต์ฌํ์ฌ ์ฌ์ฉ
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
- ์ ์๋ ํ๋ฌ๊ทธ์ธ ์ค์น
- ๊ด๋ฆฌ์ ์์ฑ
- Jenkins ํ๋ฉด ํ์ธ
- ์ข์ธก ๋ฉ๋ด - Jenkins ๊ด๋ฆฌ - ํ๋ฌ๊ทธ์ธ
- ec2 ๊ฒ์ ํ Amazon EC2 ํ๋ฌ๊ทธ์ธ ์ค์น
- ์ ํด๋ผ์ฐ๋ ์์ฑ
- AWS ์๊ฒฉ์ฆ๋ช (Access Key ์์ฑ ํ์)
[AWS] IAM Access key ์์ฑํ๊ธฐ
1. ์ฝ์ ์ ์ https://us-east-1.console.aws.amazon.com/iam us-east-1.console.aws.amazon.com 2. IAM ์ฌ์ฉ์ ์์ฑ 3. ์์ฑ๋ ์ฌ์ฉ์ ์ ํํ์ฌ ์ก์ธ์ค ํค ๋ง๋ค๊ธฐ 4. ์ก์ธ์ค ํค ์์ฑ ์๋ฃ
apricoding.tistory.com
- ์ง์ญ ์ ํ ํ EC2 ํคํ์ด ์ถ๊ฐ
- ํคํ์ด ์ถ๊ฐ
- ํ ์คํธ ์ฐ๊ฒฐ ํ ์ ์ฅ
๐ AWS EC2 - Jenkins ๊ธฐ๋ณธ ์ค์ ์๋ฃ!
์ฐธ๊ณ
Jenkins on AWS
Jenkins – an open source automation server which enables developers around the world to reliably build, test, and deploy their software
www.jenkins.io
EC2 OS๊ฐ Ubuntu์ผ ๊ฒฝ์ฐ์๋ ์๋ ์์์ ๋ฐ๋ผ ์ค์น
Linux
Jenkins – an open source automation server which enables developers around the world to reliably build, test, and deploy their software
www.jenkins.io
'๋ฐฐํฌ & ์ด์ > AWS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[AWS] IAM Access key ์์ฑํ๊ธฐ (0) | 2024.05.27 |
---|---|
[AWS] ๋์ปค๋ก ๋ฆฌ์กํธ ๋ฐฐํฌํ๊ธฐ (0) | 2023.09.05 |
[AWS] ์ธ์คํด์ค์ ๋์ปค ์ค์นํ๊ธฐ (0) | 2023.09.04 |
[AWS] EC2 ์ธ์คํด์ค ์์ฑ ๋ฐ ์ ์ (0) | 2023.08.29 |