๐Ÿ“™ AWS EC2์— Jenkins ์„œ๋ฒ„ ๊ตฌ์ถ•

11996 ๋‹จ์–ด ec2jenkinsawsaws

AWS์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” EC2์— Jenkins ์„œ๋ฒ„๋ฅผ ๊ตฌ์ถ•ํ•œ ํ›„ GitLab Webhook๊นŒ์ง€ ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด์„œ ๋‘๊ณ ๋‘๊ณ  ์ฐธ๊ณ ํ•˜๋ ค๊ณ  ์ž‘์„ฑํ•˜๋Š” ๊ธ€ ๐Ÿ˜‰


๐Ÿ“ AWS EC2 ์ƒ์„ฑํ•˜๊ธฐ


1๏ธโƒฃ ย  ์šฐ์ธก ์ƒ๋‹จ ์ธ์Šคํ„ด์Šค ์‹œ์ž‘ ๋ฒ„ํŠผ ํด๋ฆญ

2๏ธโƒฃ ย  AMI ์„ ํƒ

์„ ํƒํ•˜๋Š” AMI์— ๋”ฐ๋ผ ์ƒˆ EC2 ์ธ์Šคํ„ด์Šค์— ์„ค์น˜๋˜๋Š” ๊ธฐ๋ณธ ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ๊ฒฐ์ •๋œ๋‹ค.
Amazon Linux ๋ฐฐํฌํŒ์„ ์„ ํƒํ•˜๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ ์ด๋ฏ€๋กœ Amazon Linux 2 AMI(HVM)๋ฅผ ์„ ํƒ

3๏ธโƒฃ ย  ์ธ์Šคํ„ด์Šค ์œ ํ˜• ์„ ํƒ

์ธ์Šคํ„ด์Šค ์œ ํ˜•์€ CPU, ๋ฉ”๋ชจ๋ฆฌ(RAM), ์Šคํ† ๋ฆฌ์ง€ ๋ฐ ๋„คํŠธ์›Œํฌ ์šฉ๋Ÿ‰์ด ํฌํ•จ๋œ ํŠน์ •ํ•œ ๊ตฌ์„ฑ์„ ๋งํ•œ๋‹ค.
๋‚ด๊ฐ€ ์„ ํƒํ•œ t2.micro ์ธ์Šคํ„ด์Šค๋Š” ํ”„๋ฆฌํ‹ฐ์–ด๋กœ ๋งค์›” 750์‹œ๊ฐ„์”ฉ ์‹คํ–‰ ๊ฐ€๋Šฅํ•˜๋‹ค. ๐Ÿ‘

4๏ธโƒฃ ย  ์ธ์Šคํ„ด์Šค ์„ธ๋ถ€ ์ •๋ณด ๊ตฌ์„ฑ

์ถ”๊ฐ€ ์„ค์ • ์—†์ด ๊ธฐ๋ณธ ๊ฐ’์œผ๋กœ ๋‹ค์Œ

5๏ธโƒฃ ย  ์Šคํ† ๋ฆฌ์ง€ ์ถ”๊ฐ€

์ธ์Šคํ„ด์Šค์˜ ์Šคํ† ๋ฆฌ์ง€๋ฅผ ์„ค์ •ํ•˜๋Š”๊ฑด๋ฐ Root ์žฅ์น˜๋Š” ํ•„์ˆ˜์ธ๋ฐ ๋ณผ๋ฅจ ์œ ํ˜•์— ๋”ฐ๋ผ ๊ธˆ์•ก์ด ๋‹ค๋ฅด๋‹ˆ ๊ธฐ๋ณธ ๊ฐ’์œผ๋กœ ์„ ํƒ!

  • magnetic: HDD๋ฅผ ์‚ฌ์šฉ
  • ๋ฒ”์šฉ SSD: SSD๋ฅผ ์‚ฌ์šฉ
  • IOPS SSD: SSD๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ, I/O ๋Œ€์—ญํญ ์„ค์ • ๊ฐ€๋Šฅ

6๏ธโƒฃ ย  ํƒœ๊ทธ ์ถ”๊ฐ€

์ถ”๊ฐ€ ์„ค์ • ์—†์ด ๊ธฐ๋ณธ ๊ฐ’์œผ๋กœ ๋‹ค์Œ

7๏ธโƒฃ ย  ๋ณด์•ˆ ๊ทธ๋ฃน ๊ตฌ์„ฑ

๋ณด์•ˆ ๊ทธ๋ฃน์€ EC2 ์ธ์Šคํ„ด์Šค์— ํ—ˆ์šฉ๋˜๋Š” ๋„คํŠธ์›Œํฌ ํŠธ๋ž˜ํ”ฝ ์ข…๋ฅ˜๋ฅผ ์„ค๋ช…ํ•˜๋Š” ๋„คํฌ์›Œํ‚น ๊ทœ์น™์ด๋‹ค.
๋‚ด๊ฐ€ ์ถ”๊ฐ€ํ•œ ํŠธ๋ž˜ํ”ฝ ์ข…๋ฅ˜๋Š” SSH, HTTP, HTTPS, ์‚ฌ์šฉ์ž ์ง€์ •, MYSQL/Aurora์ด๋‹ค.

  • SSH: SSH ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์—ฌ EC2 ์ธ์Šคํ„ด์Šค์— ๋กœ๊ทธ์ธํ•˜๊ณ  WordPress๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก ํ˜„์žฌ IP ์ฃผ์†Œ์—์„œ ๋“ค์–ด์˜ค๋Š” SSH ํŠธ๋ž˜ํ”ฝ์„ ํ—ˆ์šฉํ•œ๋‹ค๋Š” ๊ทœ์น™
  • HTTP or HTTPS: ์‚ฌ์šฉ์ž๊ฐ€ WordPress ์‚ฌ์ดํŠธ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋„๋ก ๋ชจ๋“  IP ์ฃผ์†Œ์—์„œ ๋“ค์–ด์˜ค๋Š” HTTP or HTTPS ํŠธ๋ž˜ํ”ฝ์„ ํ—ˆ์šฉํ•œ๋‹ค๋Š” ๊ทœ์น™
  • ์‚ฌ์šฉ์ž ์ง€์ •: ํ•ด๋‹น ์ธ์Šคํ„ด์Šค์˜ IP๋กœ ์ ‘์†ํ•  ๋•Œ ๋’ค์— ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ 8080์œผ๋กœ ์ค„ ์˜ˆ์ •์ด๊ธฐ์— ๋”ฐ๋กœ ์„ค์ •ํ•œ ๊ทœ์น™
  • MYSQL/Aurora: MySQL ๋˜๋Š” Aurora ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์•ก์„ธ์Šค๋ฅผ ์œ„ํ•œ ๊ธฐ๋ณธ ํฌํŠธ

8๏ธโƒฃ ย  ์ธ์Šคํ„ด์Šค ์‹œ์ž‘ ๊ฒ€ํ† 

์•ž์— ์ž‘์„ฑํ•œ ๋‚ด์šฉ์„ ๊ฒ€ํ† ํ•˜๋Š” ๋ถ€๋ถ„์œผ๋กœ ํ™•์ธ ํ›„ ์ด์ƒ ์—†์œผ๋ฉด ์‹œ์ž‘ํ•˜๊ธฐ ํด๋ฆญ

9๏ธโƒฃ ย  ํ‚ค ํŽ˜์–ด ์„ ํƒ

ํ‚ค ํŽ˜์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ธ์Šคํ„ด์Šค์— SSH๋ฅผ ํ†ตํ•ด ์•ก์„ธ์Šคํ•ด์„œ ์„œ๋ฒ„์—์„œ ๋ช…๋ น์„ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ํ•„์š”ํ•˜๋‹ค.
๊ธฐ์กด์— ์ƒ์„ฑ๋˜์–ด์žˆ๋Š” ํ‚คํŽ˜์–ด๊ฐ€ ์žˆ๋‹ค๋ฉด ๊ธฐ์กด ํ‚คํŽ˜์–ด๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๊ทธ๊ฒŒ ์•„๋‹ˆ๋ผ๋ฉด ์ƒˆ ํ‚ค ํŽ˜์–ด ์ƒ์„ฑ!
์ƒˆ๋กœ์šด ํ‚ค ํŽ˜์–ด๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ™”๋ฉด์— ๋ณด์ด๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ํ‚ค ํŽ˜์–ด ์ด๋ฆ„ ์„ค์ • ํ›„ ํ‚ค ํŽ˜์–ด ๋‹ค์šด๋กœ๋“œ
โœ… ํ‚ค ํŽ˜์–ด๋Š” ์™ธ๋ถ€์— ๋…ธ์ถœ๋˜๋ฉด ์•ˆ๋˜๊ณ  ์žƒ์–ด๋ฒ„๋ ค๋„ ์•ˆ๋˜๋‹ˆ ์‹ ๊ฒฝ์จ์„œ ๋ณด๊ด€ ํ•„์ˆ˜โ—๏ธ

๐Ÿ”Ÿ ย  ์ธ์Šคํ„ด์Šค ์‹œ์ž‘

ํ‚ค ํŽ˜์–ด ์„ค์ • ํ›„ ์ธ์Šคํ„ด์Šค ์‹œ์ž‘!

๐Ÿ†— ย  ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ ์™„๋ฃŒ!๐Ÿ˜Ž

์ดˆ๊ธฐ ์ƒ์„ฑ ์‹œ์— ์ธ์Šคํ„ด์Šค ์ƒํƒœ๊ฐ€ running ์ƒํƒœ์ธ๋ฐ ๋ฌธ์ œ ์—†๋‹ค๋ฉด ์ž ์‹œ ํ›„ ์‹คํ–‰ ์ค‘ ์ƒํƒœ๋กœ ๋ณ€ํ•จ!


๐Ÿ“ EC2์— Jenkins ์„ค์น˜ํ•˜๊ธฐ


โœ… ย  EC2 ์ ‘์†

$ ssh -i "your-pem-file.pem" ec2-user@your-ec2-dns-์ฃผ์†Œ
  • your-pem-file.pem: EC2 ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ ์‹œ ์„ค์ •ํ•œ ํ‚ค ํŽ˜์–ด ์ด๋ฆ„
  • your-ec2-dns-์ฃผ์†Œ: ec2 ํผ๋ธ”๋ฆญIPv4 DNS ์ฃผ์†Œ

โ›”๏ธ ๋งŒ์•ฝ ์—ฌ๊ธฐ์„œ Permission Denied ์—๋Ÿฌ๊ฐ€ ๋œฌ๋‹ค๋ฉด your-pem-file.pem ์ด ํ‚ค๊ฐ€ ์œ„์น˜ํ•œ ๊ณณ์—์„œ ec2์ ‘์†์„ ํ•œ๊ฑด์ง€ ํ™•์ธํ•ด๋ด์•ผ ํ•œ๋‹ค. ํ•ด๋‹น ํ‚ค๊ฐ€ ์œ„์น˜ํ•œ ๊ณณ์—์„œ ์ ‘์†ํ•˜๊ฑฐ๋‚˜, ํ•ด๋‹น ํ‚ค ๊ฒฝ๋กœ๊นŒ์ง€ ์ž…๋ ฅํ•ด์„œ ์ ‘์†ํ•˜๋ฉด ๋œ๋‹ค.

๐Ÿฅฒ ๊ทธ๋ž˜๋„ ์•ˆ๋œ๋‹ค๋ฉด? ๊ถŒํ•œ์„ ์ค€๋‹ค

$ chmod 600 your-pem-file.pem

โœ… ย  yum ํŒจํ‚ค์ง€ ์—…๋ฐ์ดํŠธ

$ sudo yum -y update

โœ… ย  JAVA ์„ค์น˜

AWS Linux์— ๊ธฐ๋ณธ์œผ๋กœ ์„ค์น˜๋œ ์ž๋ฐ” ๋ฒ„์ „์€ 7์ด๋ฏ€๋กœ ํ•ด๋‹น ์ž๋ฐ” ๋ฒ„์ „์„ ์ง€์šฐ๊ณ  ํ•„์š”ํ•œ ์ž๋ฐ” ๋ฒ„์ „์œผ๋กœ ์žฌ์„ค์น˜
(์˜ˆ์‹œ๋Š” JAVA 8 ์„ค์น˜)

//JAVA 7 ์‚ญ์ œ
$ sudo yum remove java-1.7.0-openjdk

โ›”๏ธ ย  ๋งŒ์•ฝ JAVA 7 ๋ฒ„์ „์„ ์‚ญ์ œํ•˜๋ ค๊ณ  ํ•  ๋•Œ ์ด๋Ÿฐ ์—๋Ÿฌ๊ฐ€ ๋‚˜ํƒ€๋‚œ๋‹ค๋ฉด ํ•ด๋‹น ์ž๋ฐ”๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค๋Š” ๋œป์ด๋‹ˆ ๊ทธ๋ƒฅ ๋ฌด์‹œํ•˜๊ณ  ์›ํ•˜๋Š” ์ž๋ฐ” ๋ฒ„์ „์œผ๋กœ ์žฌ์„ค์น˜ ํ•˜๋ฉด ๋œ๋‹ค.

//JAVA 8 ์„ค์น˜ (์‚ฌ์šฉ ๊ถŒ์žฅ โญ•๏ธ )
$ sudo yum install java-1.8.0-openjdk-devel.x86_64 -y

//JAVA 8 ์„ค์น˜ (javac๊ฐ€ ํ•จ๊ป˜ ์„ค์น˜๋˜์ง€ ์•Š์œผ๋‹ˆ ์‚ฌ์šฉ ๊ถŒ์žฅ โŒ  ์ด์œ ๋Š” ์•„๋ž˜์— ์„ค๋ช…)
//$ sudo yum install java-1.8.0

๐Ÿ›‘ JAVA8 ์„ค์น˜ ์‹œ ๋ช…๋ น์–ด ์ˆ˜์ • ๐Ÿ›‘

๊ธฐ์กด์ฒ˜๋Ÿผ java-1.8.0์œผ๋กœ ์„ค์น˜ํ•˜๊ฒŒ ๋˜๋ฉด javac๊ฐ€ ์„ค์น˜๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์‚ฌ์‹ค์„ ๋ฐœ๊ฒฌํ–ˆ๋‹ค.
๋”ฐ๋ผ์„œ ์•„๋ž˜ ๊ธฐ์žฌํ•œ javac๊ฐ€ ํ•จ๊ป˜ ์„ค์น˜๋˜๋Š” ๋ช…๋ น์–ด๋กœ ์„ค์น˜ํ•ด์ฃผ๊ธฐ ๋ฐ”๋ž€๋‹ค.
(์ด๋ฏธ ์„ค์น˜๋œ java๊ฐ€ ์žˆ์–ด๋„ ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ๋‹ค์‹œ ์ž…๋ ฅํ•˜๋ฉด ์•Œ์•„์„œ ๋‹ค์‹œ ์„ค์น˜๋œ๋‹ค.๐Ÿ˜‰)

$ sudo yum install java-1.8.0-openjdk-devel.x86_64 -y

โœ… ย  ์„ค์น˜ํ•œ JAVA ํ™•์ธ

$ java -version

โ›”๏ธ ย  ๋งŒ์•ฝ ์ด๋Ÿฐ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๋ฉด Java๊ฐ€ ์ œ๋Œ€๋กœ ์„ค์น˜๋˜์–ด ์žˆ์ง€ ์•Š์•˜๋‹ค๋Š” ๋œป์ด๋‹ˆ ์žฌ์„ค์น˜ ํ•ด๋ณด๋ฉด ๋œ๋‹ค.

โœ… ย  Jenkins repository ์ถ”๊ฐ€

yum์ด jenkins๋ฅผ ์„ค์น˜ํ•ด์•ผ ํ•˜๋Š” ๊ณณ์„ ์•Œ๋ ค์ฃผ๊ธฐ ์œ„ํ•ด ์ถ”๊ฐ€ํ•ด์ค˜์•ผ ํ•œ๋‹ค.

$ sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo

โœ… ย  Jenkins GPG Key ์ถ”๊ฐ€

Jenkins๋ฅผ ์„ค์น˜ํ•  ๋•Œ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์†Œ์Šค๋กœ๋ถ€ํ„ฐ ์ œ๊ณต๋˜๋Š” ํŒŒ์ผ์ด๋ผ๋Š” ๊ฒƒ์„ ์ฆ๋ช…ํ•˜๊ธฐ ์œ„ํ•ด ๋กœ์ปฌ GPG ํ‚ค๋ง์— Jenkins GPG Key๋ฅผ ์ถ”๊ฐ€ํ•ด์ค˜์•ผ ํ•œ๋‹ค.

$ sudo rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key

โœ… ย  Jenkins ์„ค์น˜

$ sudo yum install jenkins

โ›”๏ธ ย  ๋‚˜๋Š” ์„ค์น˜ํ•˜๋Š” ๊ณผ์ •์—์„œ ์•„๋ž˜์™€ ๊ฐ™์€ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค.

โŒ ย  ํ•ด๊ฒฐ์„ ์œ„ํ•ด EPEL์„ ์„ค์น˜ํ•ด๋ณด๋ ค๊ณ  ํ–ˆ์ง€๋งŒ ์‹คํŒจ โ›ˆ

  • EPEL(Extra Packages for Enterprise Linux)์€ Fedora Project์—์„œ ์ œ๊ณต๋˜๋Š” ์ €์žฅ์†Œ๋กœ ๊ฐ์ข… ํŒจํ‚ค์ง€์˜ ์ตœ์‹  ๋ฒ„์ „์„ ์ œ๊ณตํ•˜๋Š” community ๊ธฐ๋ฐ˜์˜ ์ €์žฅ์†Œ

โญ•๏ธ ย  ์œ„์— ์—๋Ÿฌ๋‚œ ๋ถ€๋ถ„์—์„œ ๊ฐ€์ด๋“œ ๋ช…๋ น์–ด๋ฅผ ์ค˜์„œ ๊ทธ๊ฑธ๋กœ ํ•ด๊ฒฐ โ˜€๏ธ

$ sudo amazon-linux-extras install epel

epel ์„ค์น˜ ์ค‘๊ฐ„์— ์•„๋ž˜์™€ ๊ฐ™์ด ๋ฌผ์–ด๋ณด๋ฉด y๋ผ๊ณ  ์ž…๋ ฅ ํ›„ ์—”ํ„ฐ ๋ˆ„๋ฅด๋ฉด ๋œ๋‹ค.

โŒ ย  ์—ฌ๊ธฐ๊นŒ์ง€ ํ•œ ํ›„ ๋‹ค์‹œ Jenkins๋ฅผ ์„ค์น˜ํ•˜๋ ค๊ณ  ํ–ˆ์œผ๋‚˜ ์‹คํŒจโ—๏ธโ—๏ธ

โญ•๏ธ ย  NOKEY๋ผ๊ณ  ๋˜์–ด์žˆ๋Š”๊ฑธ ๋ณด๊ณ  Jenkins GPG Key๋ฅผ ๋‹ค์‹œ ์„ค์น˜ํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ ๊ฐ™์•„์„œ GPG Key ์žฌ์„ค์น˜ ํ›„ Jenkins๋ฅผ ์„ค์น˜ํ–ˆ๋”๋‹ˆ ํ•ด๊ฒฐ๋˜์—ˆ๋‹ค.

// Jenkins GPG Key ์„ค์น˜
$ sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

// Jenkins ์„ค์น˜
$ sudo yum install jenkins

โœ… ย  Jenkins ์„œ๋ฒ„ ์‹œ์ž‘

$ sudo service jenkins start

// ๋ช…๋ น์–ด ์‹คํ–‰ ์‹œ ์ด๋ ‡๊ฒŒ ๋‚˜์˜ค๋ฉด ์ •์ƒ
Starting jenkins (via systemctl):                          [  OK  ]

โœ… ย  8080 ํฌํŠธ LISTEN ์—ฌ๋ถ€ ํ™•์ธ

$ netstat -na | grep 8080

// ๋ช…๋ น์–ด ์‹คํ–‰ ์‹œ ์ด๋ ‡๊ฒŒ ๋‚˜์˜ค๋ฉด ์ •์ƒ(EC2 ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ ์‹œ ์ธ๋ฐ”์šด๋“œ ๊ทœ์น™์— ์ถ”๊ฐ€ํ•œ ํฌํŠธ ๋ฒˆํ˜ธ)
tcp6       0      0 :::8080                 :::*                    LISTEN   

โœ… ย  ํ”„๋ฆฌํ‹ฐ์–ด EC2 ์Šค์™‘ ํŒŒํ‹ฐ์…˜ ์ƒ์„ฑ

ํ”„๋ฆฌํ‹ฐ์–ด EC2๋Š” ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋ถ€์กฑํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉํ•˜๋‹ค ๋ณด๋ฉด ๋ฉ”๋ชจ๋ฆฌ ๋ถ€์กฑ์œผ๋กœ ํ”„๋กœ๊ทธ๋žจ์ด ๋ฉˆ์ถœ ์ˆ˜ ์žˆ๋‹ค.
๊ทธ๋Ÿฌ๋ฏ€๋กœ ์ง์ ‘ ์Šค์™‘ ํŒŒํ‹ฐ์…˜์„ ์ƒ์„ฑํ•ด์ค˜์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ ์ง€์žฅ์ด ์—†๋„๋ก ํ•ด์ค€๋‹ค.
(ํ”„๋ฆฌํ‹ฐ์–ด๊ฐ€ ์•„๋‹Œ ์ƒ์œ„ EC2 ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ํŒจ์Šคํ•ด๋„ ๋˜๋Š” ๋ถ€๋ถ„ ๐Ÿ˜‰)

// ๋ฉ”๋ชจ๋ฆฌ ์ƒํƒœ ํ™•์ธ
$free -h

์•„๋ž˜ ์ด๋ฏธ์ง€์ฒ˜๋Ÿผ swap ํŒŒ์ผ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ 0์ธ ๊ฒƒ์„ ํ™•์ธํ•ด๋ณผ ์ˆ˜ ์žˆ๋‹ค.

// swap ํŒŒ์ผ์„ ์ƒ์„ฑํ•ด์ค€๋‹ค. (๋ฉ”๋ชจ๋ฆฌ ์ƒํƒœ ํ™•์ธ ์‹œ swap์ด ์žˆ์—ˆ์ง€๋งŒ ๋””๋ ‰ํ† ๋ฆฌ ํŒŒ์ผ์€ ๋งŒ๋“ค์–ด์ค˜์•ผํ•œ๋‹ค.)
$ sudo mkdir /var/spool/swap
$ sudo touch /var/spool/swap/swapfile
$ sudo dd if=/dev/zero of=/var/spool/swap/swapfile count=2048000 bs=1024

// swap ํŒŒ์ผ์„ ์„ค์ •ํ•œ๋‹ค.
$ sudo chmod 600 /var/spool/swap/swapfile
$ sudo mkswap /var/spool/swap/swapfile
$ sudo swapon /var/spool/swap/swapfile

// swap ํŒŒ์ผ์„ ๋“ฑ๋กํ•œ๋‹ค.
$ sudo vim /etc/fstab
ํŒŒ์ผ์ด ์—ด๋ฆฌ๋ฉด ํ•ด๋‹น ํŒŒ์ผ ์•„๋ž˜์ชฝ์— ํ•˜๋‹จ ๋‚ด์šฉ ์ž…๋ ฅ ํ›„ ์ €์žฅ
- ์ž…๋ ฅ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋ช…๋ น์–ด -> i
- ํŒŒ์ผ ์ˆ˜์ • ํ›„ ์ €์žฅํ•˜๋Š” ๋ช…๋ น์–ด-> escํ‚ค ๋ˆ„๋ฅธ ํ›„ :wq ์ž…๋ ฅ ํ›„ ์—”ํ„ฐ
/var/spool/swap/swapfile    none    swap    defaults    0 0

// ๋ฉ”๋ชจ๋ฆฌ ์ƒํƒœ ํ™•์ธ
$free -h

์ž˜ ์„ค์ •๋œ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.๐Ÿ™Œ


๐Ÿ“ Jenkins ์ดˆ๊ธฐ ์„ค์ •


๐Ÿ”… ย  Jenkins ์ ‘์†

http://your-ec2-dns-์ฃผ์†Œ:8080 ์œผ๋กœ ์ ‘์†ํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ํ™”๋ฉด์ด ๋œฌ๋‹ค.

  • your-ec2-dns-์ฃผ์†Œ: ec2 ํผ๋ธ”๋ฆญIPv4 DNS ์ฃผ์†Œ (EC2์— ์ ‘์† ํ•  ๋•Œ ์‚ฌ์šฉํ•œ ์ฃผ์†Œ์™€ ๋™์ผํ•œ ์ฃผ์†Œ ์‚ฌ์šฉ)
  • 8080: EC2 ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ ์‹œ ์ธ๋ฐ”์šด๋“œ ๊ทœ์น™์— ์ถ”๊ฐ€ํ•œ ํฌํŠธ ๋ฒˆํ˜ธ

๐Ÿ”… ย  Jenkins ์ดˆ๊ธฐ ์ ‘์† ๋น„๋ฐ€๋ฒˆํ˜ธ ์ž…๋ ฅ

์•„๋ž˜ ๋ช…๋ น์–ด ์‹คํ–‰ ํ›„ ๋‚˜์˜จ ๋ฌธ์ž์—ด์„ ๋ณต์‚ฌํ•ด์„œ ๋นˆ ์นธ์— ์ž…๋ ฅ

$ sudo cat /var/lib/jenkins/secrets/initialAdminPassword

๐Ÿ”… ย  Jenkins Plugin ์„ค์น˜

  • Install suggested plugins: ๋””ํดํŠธ๋กœ ์„ค์ •๋œ Plugin์„ ์ „๋ถ€ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ (๋ณดํ†ต ์ด๊ฑธ ์„ ํƒ)
  • Select plugins to install: ์šฐ์ธก์€ ํ•„์š”ํ•œ ๊ฒƒ๋งŒ ๊ณจ๋ผ์„œ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

๐Ÿ”… ย  Jenkins ์‚ฌ์šฉ์ž ๊ณ„์ • ์ƒ์„ฑ

๐Ÿ”… ย  Jenkins ์„ค์ • ์™„๋ฃŒ ๐Ÿค—


์—ฌ๊ธฐ๊นŒ์ง€ Jenkins๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ™”๋ฉด ์„ค์ •๊นŒ์ง€ ์™„๋ฃŒํ•ด๋ดค๋‹ค.
๋‚˜๋Š” ์—ฌ๊ธฐ์— Jenkins๊ฐ€ ์Šค์Šค๋กœ ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ด์šฉํ•ด ๋นŒ๋“œ์™€ ํ…Œ์ŠคํŠธ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋ ค๊ณ  ํ•œ๋‹ค.
์ถ”๊ฐ€๋กœ GitLab Webhook์„ ์ด์šฉํ•ด์„œ ์ž๋™ ๋นŒ๋“œ๊นŒ์ง€!๐Ÿ˜Ž


โž•โž•) ๐Ÿ– ๋‚˜๋Š” ์  ํ‚จ์Šค์— AWS Route53์„ ํ†ตํ•ด ๋„๋ฉ”์ธ์„ ์—ฐ๊ฒฐํ•ด์„œ ์ ‘์†ํ•˜๊ธฐ ํŽธํ•˜๊ฒŒ ์„ค์ •ํ•ด๋’€๋Š”๋ฐ, ๋‚˜์ค‘์— ์ •ํ™•ํžˆ ๊ธฐ์–ตํ•˜๊ธฐ ์œ„ํ•ด ์ถ”๊ฐ€๋กœ ์ž‘์„ฑํ•ด๋ณธ๋‹ค.๐Ÿ‘

๐Ÿ“ AWS Route53์„ ํ†ตํ•ด Jenkins ๋„๋ฉ”์ธ ์„ค์ •


๐Ÿงถ ย  AWS Route53 ๊ฒ€์ƒ‰

์ƒ๋‹จ ๋ถ€๋ถ„์— route53์„ ๊ฒ€์ƒ‰ํ•ด์„œ ๋‚˜์˜ค๋Š” ์„œ๋น„์Šค๋ฅผ ์„ ํƒํ•œ๋‹ค.

๐Ÿงถ ย  ๋„๋ฉ”์ธ ๋“ฑ๋ก

๋„๋ฉ”์ธ > ๋“ฑ๋ก๋œ ๋„๋ฉ”์ธ > ๋„๋ฉ”์ธ ๋“ฑ๋ก ํด๋ฆญ๐Ÿ–ฑ

๐Ÿงถ ย  ์›ํ•˜๋Š” ๋„๋ฉ”์ธ๋ช… ์ž…๋ ฅ

์„ค์ •ํ•˜๊ณ  ์‹ถ์€ ์›ํ•˜๋Š” ๋„๋ฉ”์ธ๋ช…์„ ์ž…๋ ฅํ•˜๊ณ , ์šฐ์ธก์— ๋ณด์ด๋Š” ํ™•์žฅ์ž ์ค‘ ์›ํ•˜๋Š” ๊ฑธ ์„ ํƒํ•˜๋ฉด ๋œ๋‹ค.
๋„๋ฉ”์ธ์€ 1๋…„ ๋‹จ์œ„๋กœ ๋“ฑ๋ก๋œ๋‹ค!
ํ™•์žฅ์ž ์„ ํƒ ์‹œ ๋ณด์ด๋Š” ๊ธˆ์•ก์€ 1๋…„์น˜ ์‚ฌ์šฉ ๊ธˆ์•ก์œผ๋กœ ์ข…๋ฅ˜์— ๋”ฐ๋ผ ๊ธˆ์•ก์ด ๋‹ค๋ฅด๋‹ค! ์•„๋งˆ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ๊ฒŒ ๋น„์‹ธ๊ฒ ์ง€๐Ÿ’ฉ

๐Ÿงถ ย  ๋„๋ฉ”์ธ ์‚ฌ์šฉ ๊ฐ€๋Šฅ ์—ฌ๋ถ€ ํ™•์ธ

์›ํ•˜๋Š” ๋„๋ฉ”์ธ๋ช…๊ณผ ํ™•์žฅ์ž๋ฅผ ์„ ํƒํ•˜๋ฉด ํ•ด๋‹น ๋„๋ฉ”์ธ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”์ง€์— ๋Œ€ํ•œ ์—ฌ๋ถ€๋ฅผ ์•Œ ์ˆ˜ ์žˆ๋‹ค.
์˜ˆ์‹œ ์ด๋ฏธ์ง€๋Š” ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ๋„๋ฉ”์ธ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋น„์Šทํ•œ ๋„๋ฉ”์ธ์„ ์ถ”์ฒœํ•ด์ฃผ๋Š” ์ค‘!
์ด๋ ‡๊ฒŒ ์›ํ•˜๋Š” ๋„๋ฉ”์ธ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค๋ฉด ๋„๋ฉ”์ธ๋ช…์„ ๋‹ค์‹œ ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜, ๊ด€๋ จ ๋„๋ฉ”์ธ์—์„œ ๋งˆ์Œ์— ๋“œ๋Š” ๋„๋ฉ”์ธ์„ ์„ ํƒํ•˜์—ฌ ์žฅ๋ฐ”๊ตฌ๋‹ˆ์— ์ถ”๊ฐ€ํ•œ๋‹ค. (์ฐธ๊ณ ๋กœ ๋“ฑ๋กํ•˜๊ณ ์ž ํ•˜๋Š” ๋„๋ฉ”์ธ์€ ์˜ˆ์‹œ ์ด๋ฏธ์ง€์ฒ˜๋Ÿผ ์ค‘๋ณต ์„ ํƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค! ๐Ÿ‘)
๋งŒ์•ฝ ์›ํ•˜๋Š” ๋„๋ฉ”์ธ๋ช…์ด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค๋ฉด ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉ ๐Ÿค

๐Ÿงถ ย  ๋„๋ฉ”์ธ์— ๋Œ€ํ•œ ์—ฐ๋ฝ์ฒ˜ ์„ธ๋ถ€ ์ •๋ณด ๋“ฑ๋ก

๐Ÿงถ ย  ์—ฐ๋ฝ์ฒ˜ ์„ธ๋ถ€ ์ •๋ณด ํ™•์ธ ๋ฐ ์ธ์ฆ

์•ž์—์„œ ์ž…๋ ฅํ•œ ๋„๋ฉ”์ธ์— ๋Œ€ํ•œ ์—ฐ๋ฝ์ฒ˜ ์„ธ๋ถ€ ์ •๋ณด๋ฅผ ํ™•์ธํ•˜๊ณ  ์ž…๋ ฅํ•œ ์—ฐ๋ฝ์ฒ˜ ์ค‘ ๋ฉ”์ผ ์ฃผ์†Œ๋ฅผ ์ธ์ฆํ•˜๋Š” ๋ถ€๋ถ„์„ ํ™•์ธํ•ด๋ณผ ์ˆ˜ ์žˆ๋‹ค.
ํ•ด๋‹น ๋ฉ”์ผ๋กœ ๋ฐœ์†ก๋œ ๋งํฌ๋ฅผ ์„ ํƒํ•˜์—ฌ ์ธ์ฆํ•˜๊ฒŒ๋˜๋ฉด ์šฐ์ธก ํ•˜๋‹จ '์ฃผ๋ฌธ ์™„๋ฃŒ' ๋ฒ„ํŠผ์ด ํ™œ์„ฑํ™” ๋  ๊ฒƒ์ด๋‹ค.
ํ™œ์„ฑํ™” ๋˜๋ฉด ์„ ํƒ!๐Ÿ–ฑ

๐Ÿงถ ย  ํ˜ธ์ŠคํŒ… ์˜์—ญ ์ƒ์„ฑ

ํ˜ธ์ŠคํŒ… ์˜์—ญ > ํ˜ธ์ŠคํŒ… ์˜์—ญ ์ƒ์„ฑ ํด๋ฆญ๐Ÿ–ฑ

๋“ฑ๋กํ•œ ๋„๋ฉ”์ธ๋ช… ์ž…๋ ฅ ํ›„ ๋‚˜๋จธ์ง€ ์„ค์ •์€ ๊ธฐ๋ณธ ๊ฐ’์œผ๋กœ ํ˜ธ์ŠคํŒ… ์˜์—ญ ์ƒ์„ฑ ํด๋ฆญ๐Ÿ–ฑ

๐Ÿงถ ย  ์ƒ์„ฑ๋œ ํ˜ธ์ŠคํŒ… ์˜์—ญ ํ™•์ธ

์ƒ์„ฑ๋œ ํ˜ธ์ŠคํŒ… ์˜์—ญ์„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
ํ•ด๋‹น ํ˜ธ์ŠคํŒ…์— ๋ ˆ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ๋„๋ฉ”์ธ ์—ฐ๊ฒฐ์ด ํ•„์š”ํ•˜๋‹ˆ ๋„๋ฉ”์ธ๋ช… ํด๋ฆญ๐Ÿ–ฑ

๐Ÿงถ ย  ํ˜ธ์ŠคํŒ…์— ๋ ˆ์ฝ”๋“œ ์ƒ์„ฑ

AWS EC2 ํผ๋ธ”๋ฆญ ์ฃผ์†Œ ๋Œ€์‹  ํŽธํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์€ ์ฃผ์†Œ๋ฅผ ๋ ˆ์ฝ”๋“œ ์ด๋ฆ„์— ์ž…๋ ฅํ•œ๋‹ค.
๊ฐ’ ๋ถ€๋ถ„์—๋Š” AWS EC2 ํผ๋ธ”๋ฆญ ์ฃผ์†Œ๋ฅผ ๋„ฃ์–ด์ฃผ๋ฉด ๋œ๋‹ค! ํ•ด๋‹น ์ฃผ์†Œ๋Š” EC2 ์ธ์Šคํ„ด์Šค์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

๐Ÿงถ ย  DNS ์—ฐ๊ฒฐ ์„ฑ๊ณต

๋ ˆ์ฝ”๋“œ ์ด๋ฆ„์œผ๋กœ ๋งŒ๋“  ์ฃผ์†Œ๋กœ ์ ‘์†์ด ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•ด๋ณผ ์ˆ˜ ์žˆ๋‹ค!
์—ฌ๊ธฐ์—์„œ ๋’ค์— 8080 ํฌํŠธ๊ฐ€ ๋ถ™์€ ์ด์œ ๋Š” ํ•ด๋‹น EC2 ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ–ˆ์„ ๋•Œ 8080 ํฌํŠธ๋ฅผ ์ง€์ •ํ•ด์ฃผ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์• ์ดˆ์— IP์ฃผ์†Œ๋กœ ์ ‘์†ํ–ˆ์„ ๋•Œ์—๋„ 8080 ํฌํŠธ๋ฅผ ๋™์ผํ•˜๊ฒŒ ์‚ฌ์šฉํ•œ ๊ฒƒ์ด๋‹ค!
์„ฑ๊ณต ๐Ÿค 

์ข‹์€ ์›นํŽ˜์ด์ง€ ์ฆ๊ฒจ์ฐพ๊ธฐ