๐Ÿ“Œ 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

 

+ Recent posts