์ด์ ๊ธ์์ 1) EC2 ์์ฑ 2) ๋ณด์ ๊ทธ๋ฃน ์ค์ 3) RDS ์์ฑ 4) RDS ๋ณด์ ๊ทธ๋ฃน๊ณผ ํ๋ผ๋ฏธํฐ ๊ทธ๋ฃน ์ค์ ์ ์์๋ณด์๋ค. ์ด๊ฐ๋จ ๋ฐฐํฌ์ ๋ง์ง๋ง ์๊ฐ์ผ๋ก 5) PUTTY ์ค์ 6) PUTTY์์ RDS์ฐ๊ฒฐ ๋ฐ DB ์์ฑ 7) ํ๋ก์ ํธ ์ค์ 8) PUTTY์์ ์๋ฒ ์๋์ํค๊ธฐ๋ฅผ ๊ณ์ํด์ ์์๋ณด์.
5. PUTTY ์ค์
PUTTY์ ์ ์ํ์ฌ Connection - SSH - Auth๋ก ์ด๋ํ๋ค. ๊ทธ๋ฆฌ๊ณ Browse... ๋ฅผ ํด๋ฆญํ์ฌ EC2 ์ธ์คํด์ค๋ฅผ ์์ฑํ๋ฉด์ ๋ค์ด๋ก๋ํ ppk๋ฅผ ๊ฐ์ ธ์จ๋ค.
๊ทธ๋ฆฌ๊ณ ๋ค์ Session์ผ๋ก ์ด๋ํ๋ค.
Host Name์๋ ec2-user@์ธ์คํด์ค์ ํผ๋ธ๋ฆญIPv4 DNS๋ฅผ ์ ๋ ฅํ๊ณ , Saved Settings ๋ถ๋ถ์ ppk๋ฅผ ๋ฑ๋กํ ์ด๋ฆ์ ์ค์ ํ๋ค. ๊ทธ๋ฆฌ๊ณ Save ํด๋ฆญ!!(์ถํ์ ์ค์ ๋ ์ด๋ฆ์ ์ด์ฉํ์ฌ ์ ๊ทผํ๋ค๋ฉด ๋ฐ๋ก ํ์ผ์ ์ฐพ์ง ์์๋ ๋๋ค.)
Open์ ํด๋ฆญํ๋ค.
6. PUTTY์์ RDS ์ฐ๊ฒฐ ๋ฐ DB ์์ฑ
1. MySQLCLI ์ค์น
sudo yum install mysql
2. RDS์ ์ ๊ทผ
mysql -u ๊ณ์ -p -h Host์ฃผ์
(ex. $mysql -u yeonjae -p -h ์๋ํฌ์ธํธ)(์๋ํฌ์ธํธ๋ AWS์ RDS์์ ํ์ธ ๊ฐ๋ฅ)
3. Welcome์ด๋ผ๋ ๊ธ๊ณผ ํจ๊ป ์ ์ ์ฑ๊ณต
4. ํ์ฌ ์๋ databaseํ์ธ
show databases;
5. DB ์์ฑ
CREATE DATABASE DB๋ช
;
(ex. $CREATE DATABASE board)
6. ํ์ธ
show databases;
7. ์ ์ ์ข ๋ฃ
exit
7. ํ๋ก์ ํธ ์ค์
ํ๋ก์ ํธ์ ์ค์ ์ application.yml๊ณผ build.gradle์ ๊ธฐ์ค์ผ๋ก ํ๋ค.
1. application.yml ํ์ผ ์ค์
spring:
datasource:
url: jdbc:mariadb://์๋ํฌ์ธํธ:3306/DB๋ช
username:
password:
driver-class-name: org.mariadb.jdbc.Driver
jpa:
database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
(์์ ์ฌ๋์๋ ์ฃผ์์ ๋ํ๋ด๋ ๊ฒ์ด ์๋๋ค.)
jpa ํ์์ hibernate: ๋๋ properties: ์์ ์ ํ๋ก์ ํธ ์ฑ๊ฒฉ์ ๋ง๊ฒ ์ค์ ํ๋๋ก ํ์.
PUTTY์ ์ ์ํ ํ ๊นํ์ผ๋ก clone์ ํ๋ ๋ฐฉ์์ผ๋ก ํ๋ก์ ํธ๋ฅผ ๊ฐ์ ธ์ฌ ๊ฒ์ด๋ค. ๊ทธ๋ฌ๋ฏ๋ก db์ ์์ด๋์ ๋น๋ฒ์ ๋ํ๋ด๋ username๊ณผ password๋ ๊ธฐ์ ํ์ง ์๋๋ก ํ์. ์ด๋ ์๋ฒ์์ ์ค์ ํ๋๋ก ํ์.
2. build.gradle ์ค์
dependencies{
implementation 'org.mariadb.jdbc:mariadb-java-client:2.1.2'
}
dependencies์ implementation์ ์ถ๊ฐํด์ค๋ค. (๋ฒ์ ์ ์์์ ๋ง์ถ๋๋ก ํ์.)
(+ ํ๋ก์ ํธ์์ ํ ์คํธ ์ผ์ด์ค๊ฐ ํต๊ณผ๋์ง ์๋ ๊ฒ์ด ์์ผ๋ฉด ์ญ์ ํด์ฃผ๋๋ก ํ์.)
8. PUTTY์์ ์๋ฒ ์๋์ํค๊ธฐ
ํ๋ก์ ํธ๋ฅผ ๋์์ํค๊ธฐ์ ์์ PUTTY์์ ๋ช ๊ฐ์ง ์ค์ ์ ํ์.
1. ์๋ฐ ์ค์น
1. AWS coretto ๋ค์ด๋ก๋
sudo curl -L https://corretto.aws/downloads/latest/amazon-corretto-11-x64-linux-jdk.rpm -o jdk11.rpm
2. jdk11 ์ค์น
sudo yum localinstall jdk11.rpm
3. jdk version ์ ํ
sudo /usr/sbin/alternatives --config java
4. java ๋ฒ์ ํ์ธ
java --version
5. ๋ค์ด๋ฐ์ ์ค์น ํคํธ ์ ๊ฑฐ
rm -rf jdk11.rpm
2. ํ์ธ์กด ์ค์
sudo rm /etc/localtime
sudo ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime
์๋์ ๋ช ๋ น์ด๋ฅผ ํตํด์ ์๊ฐ์ ํ์ธํ์
date
3. ํธ์คํธ ๋ค์ ๋ณ๊ฒฝ
sudo hostnamectl set-hostname ์ด๋ฆ
sudo reboot
๋ค์ ec2์ ์ ์ํ๋๋ก ํ์. (๋๋ฌด ๋นจ๋ฆฌํ๋ฉด ์ฌ๋ถํ ์ด ์๋๊ธฐ ๋๋ฌธ์ ์ด๋ ์ ๋ ์๊ฐ์ด ํ์ํ๋ค.)
์ฌ์ ์์ ํ๊ณ ๋ ํ, ํธ์คํธ ์ฃผ์๋ฅผ ์ฐพ์ ๋ ๊ฐ์ฅ ๋จผ์ ๊ฒ์ํด๋ณด๋ /etc/hosts์ ๋ณ๊ฒฝํ host์ ๋ฑ๋กํ์. (vim์ ์ฌ์ฉ๋ฒ์ ์ฌ๊ธฐ์ ๋ฐ๋ก ์ธ๊ธํ์ง ์๊ฒ ๋ค.)
sudo vim /etc/hosts
๋ค์ด๊ฐ ๋ณด๋ฉด, ์ฒซ ๋ฒ์งธ ์ค๊ณผ ๋ ๋ฒ์งธ ์ค์ 127.0.0.1 ~~~ ๊ณผ ::1 ~~~ ์ ํ์ธํ ์ ์๋ค. ๊ทธ ๋ฐ์ ์๋์ ๋ด์ฉ์ ์ถ๊ฐํ์.
127.0.0.1 ์ด๋ฆ
์๋์ ๋ช ๋ น์ด๋ฅผ ํตํด์ ํ์ธํด๋ณด์. ๋ง์ฝ Failed to connect๋ผ๊ณ ๋ฌ๋ค๋ฉด ์ฑ๊ณตํ ๊ฒ์ด๋ค. (์ด๋ ์์ง ํด๋น ํฌํธ๋ก ์คํ๋ ์๋น์ค๊ฐ ์์์ ์๋ฏธํ๋ ๊ฒ์ผ ๋ฟ์ด๋ค.)
curl ์ด๋ฆ
4. ํ๋ก์ ํธ ๊ฐ์ ธ์ค๊ธฐ
sudo yum install git
mkdir ~/app
cd ~/app
git clone ๊น์ฃผ์
๊น ์ฃผ์๋ ํด๋น repository์์ ์๋์ ๊ฐ์ด ํ์ธํ ์ ์๋ค.
5. application.yml ์ถ๊ฐ ์ค์
application.yml๋ก ์ด๋ํ์ฌ DB์ ์์ด๋์ ๋น๋ฐ๋ฒํธ๋ฅผ ์ค์ ํด์ค๋ค.
6. ์คํ
cd ํ๋ก์ ํธ๋ช
ํ๋ก์ ํธ์ ์์ ๋ชฉ๋ก์ผ๋ก ์ด๋ํ๋ค. (build.gradle, gradle, gradlew, gradlew.bat, settings.gradle, src ๋ฑ์ด ์๋ ์์น)
chmod +x ./gradlew
./gradlew build
cd build
cd libs
java -jar ํ๋ก์ ํธ๋ช
SNAPSHOT.jar
ํ๋ก์ ํธ๊ฐ ์คํ๋๋ฉด ec2 ์ธ์คํด์ค์ 'ํผ๋ธ๋ฆญ IPv4 DNS:8080'์ ํตํ์ฌ ์ ๊ทผํด๋ณธ๋ค. ์ ๋์ํ ๊ฒ์ด๋ค๐ฅ๐ฅ๐ฅ
์ด๋ ๊ฒ ์ด 8๋จ๊ณ๋ฅผ ํตํ์ฌ ๊ฐ๋จํ๊ฒ ๋ฐฐํฌ๋ฅผ ํ๋ ๋ฐฉ๋ฒ์ ์์๋ณด์์ต๋๋ค. ์ค์ง ๊ฐ๋จํ๊ฒ ๋ฐฐํฌ๋ฅผ ํ๋ ๊ฒ์ ์ด์ ์ ๋ง์ท๊ธฐ ๋๋ฌธ์ ๋ฏธํกํ ๋ถ๋ถ์ด ๋ง์ต๋๋ค. ์ด ๋ถ๋ถ์ ๋ํด์๋ ๋ง์ ์ํด๋ฅผ ๊ตฌํฉ๋๋ค.๐
ํด๋น ๊ธ์ ์ด๋์ฑ ๋์ '์คํ๋ง ๋ถํธ์ AWS๋ก ํผ์ ๊ตฌํํ๋ ์น ์๋น์ค'๋ฅผ ์กฐ๊ธ ๋ ๊ฐ๋จํ๊ฒ ๋ณํํ ๊ฒ์ ๋๋ค.
'๐ DevOps > ๋ฐฐํฌ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
AWS๋ฅผ ํ์ฉํ ์ด๊ฐ๋จ ๋ฐฐํฌ - 1 (2) | 2022.11.27 |
---|