์ด๋ฒ ๊ธ์ ์ ๋ฒ๊ธ์์ ์ด์ด์ง๋ ์ ๋ฒ๊ธ์ ์์ง ๋ณด์ง ์์ ๋ถ๋ค์ ์ ๋ฒ๊ธ์ ์ฝ์ด์ฃผ์ธ์.
https://programmer-may.tistory.com/172
GitHub Actions, EC2, RDS๋ฅผ ํ์ฉํ ์๋ ๋ฐฐํฌ ํ์ดํ ๋ผ์ธ ๊ตฌ์ถํ๊ธฐ 1ํธ
์ง๋๋ฒ ํผ์์ ๋๋๋๊ณ ์ง์ธ์์ ๋ฌผ์ด๋ด์ develop ๋ธ๋์น์ ์๋๋ฐฐํฌ ํ์ดํ ๋ผ์ธ์ ๊ตฌ์ถํด ๋ณด์๋ค. ์ด๋ฒ์ ํผ์์ ์ค์ ๋๋์ผ๋ก release ๋ธ๋์น์ ์๋ ๋ฐฐํฌ ์๋ฒ๋ฅผ ๋ง๋ค์ด ๋ณด๊ฒ ๋ค. ๋จผ์ ์ฌ์ฉํ
programmer-may.tistory.com
์ ๋ฒ์ OpenSSH key๋ฅผ ๋ง๋๋ ๊ฒ ๊น์ง ํ๋ค. ์ด์ ๋์ EC2 ์๋ฒ์ ๋ค์ด๊ฐ์ Open JDK ๋ฅผ ๊น์ ๋์ JAR ํ์ผ์ด ์คํ ๋ ์ ์๋๋ก ํ๊ฒ ๋ค. (์ถ๊ฐ์ ์ผ๋ก MySQL ํด๋ผ์ด์ธํธ๊น์ง ๋ค์ด)
SSH ํด๋ผ์ด์ธํธ ํด๋ก MobaXterm ์ ์ฌ์ฉํ๋ค. MobaXterm ๋ SSH ์ ์์ ํ์ฌ CLI ๋ก ๋ช ๋ น์ด๋ ์ ๋ ฅํ ์ ์๊ณ , SFTP ํ๋กํ ์ฝ์ ์ฌ์ฉํ์ฌ GUI ํ๊ฒฝ์์ ํ์ผ์ ์ฝ๊ฒ ํ์ํ๊ณ ์ ์ก๋ ๊ฐ๋ฅํ๋ค. MobaXterm ์ ์ฌ์ฉํ์ง ์์๋ค๋ฉด SSH ์ ์ ํด๊ณผ FTP ํด ๋๊ฐ์ง๋ฅผ ๊ฐ์ด ์จ์ค์ผํ์ํ ๋ฐ, MobaXterm์ ํตํด ์ด๋ฅผ ํ๋ฒ์ ๊ฐ๋ฅํ๊ฒ ๋๋ค. ๋จ์ ์ด ํ๋ ์๋ค๋ฉด, Window OS ์์๋ง ๊ฐ๋ฅํด์ Mac OS ๋ Termius ๋ฑ ๋ค๋ฅธ ํด์ ์ฌ์ฉํด์ผ ํ๋ค. Filezilla ๋ CLI ๊ธฐ๋ฅ์ ํ์ฉํ ์ ์์ง๋ง, ์ด๊ฑด ๊ตฌ๋ ํ์ฌ ์ ๋ฃ๋ฒ์ ์ผ ๋๋ง ๊ฐ๋ฅํ๋ค.
MobaXterm(SSH ์๊ฒฉ์ ์ ํ๋ก๊ทธ๋จ)์ ๋ค์ด๋ก๋ ํด์ค๋ค.
https://mobaxterm.mobatek.net/download-home-edition.html
MobaXterm free Xserver and tabbed SSH client for Windows
The ultimate toolbox for remote computing - includes X server, enhanced SSH client and much more!
mobaxterm.mobatek.net
๋ค์ด๋ก๋ ์ฌ์ดํธ(ํ์๋ Portable edition์ ๋ค์ด ๋ฐ๊ธดํ๋ค.)
MobaXterm์ ์คํํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ํ๋ฉด์ ๋ณด๊ฒ ๋๋ค.
Session ์ ๋๋ฅด๊ณ SSH ํด๋ฆญํ๋ค,
1 : EC2์ ํผ๋ธ๋ฆญ DNS ์ฃผ์๋ฅผ ๋ฃ์ด์ค๋ค.
2 : ์ฒดํฌ๋ฐ์ค๋ฅผ ํด๋ฆญํ๊ณ , ubuntu ๋ก ๋ง๋ค์ด ์คฌ์ผ๋ ubuntu๋ผ๊ณ ๊ธฐ์ ํ๋ค.
3: ์ฒดํฌ๋ฐ์ค ํด๋ฆญํ ํ์ผ์ ๋๋ฌ OpenSSH ํค๋ฅผ ๋ถ๋ฌ์จ๋ค. (์ด ๊ณผ์ ์ ๋ชจ๋ฅด๊ฒ ์ผ๋ฉด ์๋จ ๋ธ๋ก๊ทธ ๋งํฌ ํ์ธ)
๋ค์ด ๋ฐ์ PEM ํค ๋๋ PPK ํค๋ฅผ PuTTY๋ฅผ ํตํด ์ป์ OpenSSH ํค
๋ชจ๋ ๊ธฐ์ ํ๋ฉด ๋ค์๊ณผ ๊ฐ์์ง๊ณ ok๋ฅผ ๋๋ฅธ๋ค.
๊ทธ๋ผ SSH ํต์ ์ 22ํฌํธ๋ก ์ฐ๊ฒฐํ๋ค๋ ๋ฌธ๊ตฌ๊ฐ ๋์ค๊ณ Accept๋ฅผ ๋๋ฅธ๋ค.
๋ช ๋ น์ด๋ฅผ ์ณ์ cicd ํด๋๋ฅผ ๋ง๋ ๋ค.
์ด๊ณณ์ jar ํ์ผ์ ๋์ด ์๋ ์คํ ์ํฌ ๊ฒ์ด๋ค.
$ sudo apt update
$ sudo apt install openjdk-17-jdk
๋ค์ ๋ช ๋ น์ด๋ฅผ ์ณ์ EC2 ์๋ฒ์ JDK 17์ ์ค์นํ๋ค. ํ์๋ ์๋ฐ 17์ ์ฌ์ฉํ์ฌ ์ฝ๋ฉํ์๊ธฐ์ 17์ ๋ค์ด ๋ฐ์ง๋ง, 11์ด๋ 8์ ์ด ์ฌ๋๋ค์ 11์ด๋ 8์ ๋ค์ด ๋ฐ์๋ ๋ฌด๋ฐฉํ๋ค.
์ค๊ฐ์ค๊ฐ ์๊ฐ์ด ๊ฑธ๋ฆด ์ ์์ผ๋ ์ฒ์ฒํ ์งํํ๋ค.
$ java -version
๋ช ๋ น์ด๋ฅผ ์ณ์ ์๋ฐ ๋ง๋ ๋ฒ์ ์ด ์ ๋ค์ด ๋ฐ์ ์ก๋์ง ํ์ธํ๋ค.
which java
๋ช ๋ น์ด๋ก java ์ค์น ์์น๊น์ง ํ์ธํ๋ค.
์ด์ ์ถํ์ MySQL์ ๋ช ๋ น์ด ํ๋กฌํํธ์์ ์กฐ์ํด์ผํ ์ง๋ ๋ชจ๋ฅด๋,,, MySQL Client๋ ๋ค์ด ๋ฐ๋๋ค.
์ด์ Repository secrets๋ฅผ ์ค์ ํด ๋๊ฒ์ด๋ค. ์ฌ๊ธฐ์ ์ค์ ํ๋๋ก cd-release.yml ํ์ผ์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์์ ์ ์์ด ์ผ์ด๋ ๊ฒ์ด๋ค.
๊ธฐ์กด์ ์๋ ๊ฑธ๋ก ์ค๋ช ํ๋ฉด
DEVELOP_APPLICATION_YML ์ application.yml ํ์ผ ๋ฎ์ด์ธ ํ์ผ๋ก, ๋ฐ์ดํฐ ์์ค ๊ฒฝ๋ก ๊ทธ๋ฆฌ๊ณ ๊ณ์ ๋ช ๋น๋ฐ๋ฒํธ๋ฅผ ๋ฃ์ด์ค์ผํ๋ค.
๊ทธ๋ผ ์ฌ๊ธฐ์ ์ ๋ณด๋ฅผ ๋ฃ์ RDS ๋ฅผ ๋ง๋ค์ด ๋ณด๋ฌ ๊ฐ์.
AWS ์ฌ์ RDS ์๋น์ค๋ฅผ ์ด์ฉํ ๊ฒ์ด๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ฑ์ ํด๋ฆญํ๋ค.
์ฐ๋ฆฐ MySQL์ ์ฌ์ฉํ ๊ฒ์ด๋ฏ๋ก MySQL์ ํํ๋ค.
๋ฐ์ดํฐ ๋ฒ ์ด์ค ์ธ์คํด์ค ์ด๋ฆ์ ์ ๊ณ , ๋ฐ์ดํฐ ์์ค์ username์ ํด๋นํ๋ ๋ง์คํฐ ์ฌ์ฉ์ ์ด๋ฆ์ ์ ๋๋ค.
์ค์ํ ์ํธ๋ ์ ๋๋ค.
๋ฐ์ดํฐ ์์ค์ password ์ ํด๋นํ๋ค.
๋๋ถ๋ถ์ ๊ฒ๋ค์ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ํ๊ณ ์ปดํจํ ๋ฆฌ์์ค๋ ์ฐ๊ฒฐ ์ํจ์ผ๋ก ํ๋ค.
develop ๋ธ๋์น์ ํ ์คํธ ์๋ฒ๋ ํด๋น EC2์ ์ฐ๋ํด ๋จ์ง๋ง, ์ด๋ฒ ๋ฉ์ธ์๋ฒ๋ ์ฐ๋ํ์ง ์๊ณ ์ฌ์ฉํด ๋ณด๋ ค๊ณ ํ๋ค.
ํผ๋ธ๋ฆญ ์ก์ธ์ค๋ "์" ์ค์ ํ์ฌ ๋ก์ปฌ์์ MySQL ์ํฌ ๋ฒค์น์์๋ ์ ๊ทผ ๊ฐ๋ฅํ๊ฒ ํ๋ค.
๋ณด์ ๊ทธ๋ฃน์ ๊ธฐ์กด์ ๋ง๋ค์ด๋๊ฒ ์๋ค๋ฉด ๊ธฐ์กดํญ๋ชฉ์ ํ ์๋ก ๋ง๋ค๊ณ ์ถ์ผ๋ฉด ์๋ก ์์ฑ์ ํ๋ฉด๋๋ค.
๋๋จธ์ง๋ ๋ชจ๋ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ํ์ฌ RDS ์ธ์คํด์ค๋ฅผ ํ๋ ์์ฑํ๋ค.
์๋ถ์ด ์ง๋๊ณ ๋๋ฉด ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ๋ง๋ค์ด ์ง ๊ฒ์ด๋ค.
์ด์ ์ด ๋ฐ์ดํฐ ๋ฒ ์ด์ค์ ๋ณด์๊ทธ๋ฃน์ ํธ์งํด ์ค๊ฒ์ด๋ค. EC2 ์๋ฒ ๋ ์ฒ๋ผ ๋ง์ด๋ค.
Connection Name์ ์ํ๋ ๊ฑธ ์ ๋๋ค.
Hostname์ ๋ด๊ฐ ๋ง๋ RDS์ ์๋ํฌ์ธํธ๋ฅผ ์ ์ผ๋ฉด ๋๋ค.
ํฌํธ๋ 3306ํฌํธ๋ก ํต์ ํ๊ธฐ์ ๊ณ ์ ์ด๊ณ
Username์ ์ฒ์ ๋ง๋ค ๋ ๋ง์คํฐ ๋ค์์ด๋ค. ๋์ ๊ฒฝ์ฐ admin ์ด๋ค.
Password ๋ํ RDS ์์ฑํ ๋ password๋ฅผ ์ ๋ ฅํ๋ฉด ๋๋ค.
๊ทธ๋ฌ๋ฉด Successfully ๋ผ๊ณ ๋จ๋ฉด์ ์ปค๋ฅ์ ์ด ํ๋ ์๊ธด๋ค.
์ ์ํ์ฌ ์คํค๋ง๋ฅผ ํ๋ ๋ง๋ ๋ค.
์ด์ ์ฌ๊ธฐ ๊น์ง ๋ง๋ค์ด์ค ์ ๋ณด๋ฅผ RELEASE_APPLICATION_YML ์ ๋ฃ์ ๊ฒ์ด๋ค.
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://{RDS ์ํธํฌ์ธํธ}:3306/{๋ง๋ค์ด๋ ์คํค๋ง(database๋ช
)}
username: {์ฌ์ฉ์๋ช
}
password: {๋น๋ฐ๋ฒํธ}
h2:
console:
enabled: true
jpa:
show-sql: true
hibernate:
ddl-auto: update
server:
port: 80
์์ ๊ฐ์ ์ ๋ณด๋ฅผ ๋ฃ์ ๊ฒ์ด๋ค. ์ฌ์ฉ์๋ช ๊ณผ ๋น๋ฐ๋ฒํธ๋ ์ํฌ๋ฒค์น์์ ์ปค๋ฅ์ ๋งบ์ ๋ ์ฐ๋ Username ๊ณผ Password์ ๊ฐ๋ค.
์ด์ GitHub Actions์ ์ฐ๋์ ํด๋ณด๊ฒ ๋ค!
(๋ค์ํธ์์ ๊ณ์....)
๋๊ธ