2023. 4. 7. 20:23ใ๐ AWS

[ AWS ] ์ ๋ด๊ฐ ๋ฐฑ์๋์ธ๋ฐ AWS ํด๋ผ์ฐ๋๋ฅผ ๋ฐฐ์์ผ ํ๋๊ฐ?
๋ด๊ฐ ์ AWS๋ฅผ ๋ฐฐ์์ผ ํ๋๊ฐ? ๋ฐฑ์๋ ๊ฐ๋ฐ์ ํ๋ฉด์ Spring์ผ๋ก ๊ฐ๋ฐ์ ํ๋ฉด ๋๋๋ฐ ์ ์ทจ์ ์ ํ๋ ค๋ฉด AWS๊ฐ ํ์์ฑ์ ๋ํด์ ์๊ฐ์ ํ๊ฒ ๋์๋ค. ๋ฐฑ์๋ ๊ฐ๋ฐ์๋ ์๋ฒ์ ๋ํด์ ์๊ณ ์์ด์ผ ํ
pos04167.tistory.com
1. AWS์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฐฐํฌํ๋ ๋ฐฉ๋ฒ์ ์์๋ณด์
์ผ๋จ ์์์ ์์ ์ด๋ฒ์๋ AWS์ ๋ด๊ฐ ์์ฑํ ์ฝ๋๋ฅผ ๋ฐฐํฌํ์ฌ ์คํํ๋ ๋ฐฉ์์ ์ค๋ช ์ ํ๋ ค๊ณ ํ๋ค. ๊ธฐ๋ณธ์ ์ธ ํ๋ฆ์ผ๋ก๋ Github์ ์๋ ๊ฐ๋จํ ํ๋ก์ ํธ๋ฅผ Cloneํ์ฌ AWS์๋ฒ์ ๋ฐ์ ํ๋ ฅ์ IP์ ์ ์ํ์ฌ ์คํํ์ฌ ์ ์์ ์ผ๋ก ๋ฐฐํฌ๊ฐ ๋์๋์ง ํ์ธ์ ํ๋ ค๊ณ ํ๋ค.
2. AWS ํ๋ ฅ์ IP ์ฃผ์ ์ฐ๊ฒฐ ๋ฐ ๋ณด์ ์ค์

๊ณ ์ IP ์ค์
๋ง์ฝ์ ์ง 5๊ฐ๊ฐ ํ๋์ ์ ๋ด๋์ ์ฐ๊ฒฐ์ด ๋์ด์๋ค๊ณ ์๊ฐ์ ํ๋ฉด 5๊ณณ ๋ชจ๋ IP๋ฅผ ์ ๊ณตํ๋๊ฑด ์๋๋ค. ์๋ํ๋ฉด ๋ชจ๋ ์ง์์ ์ง์์ ์ผ๋ก ํน์ ๋์์ ์ธํฐ๋ท์ ์ฌ์ฉํ์ง ์๋๋ค.
ํต์ ์ฌ๊ฐ IP๋ฅผ 5๊ฐ๊ฐ ์๋ 3~4๊ฐ๋ฅผ ์ค๋นํ๊ณ ํ์ํ ๋ถ๋ถ์ ์ ๋์ ์ผ๋ก ๋ถ๋ฐฐ๋ฅผ ํ๋ค. A์ง์์ IP๋ฅผ ์ฌ์ฉํ๋ค๊ฐ A์ง์ด ์ข ๋ฃํ๊ณ B์ง์์ ์ฌ์ฉํ๋ฉด A์ง์์ ์ฌ์ฉํ IP๋ฅผ B์ง์ด ์ฌ์ฉํ๋ค. ์ด๋ ๊ฒ ๋ณํํ๋ ๊ตฌ์กฐ๋ฅผ ์ ๋ IP๋ผ๊ณ ํ๋ค.
ํ์ง๋ง ์๋น์ค๋ ์ด๋ฌํ ์ ๋ IP๋ฅผ ์ฌ์ฉํ์ง ๋ชปํ๋ค. ์๋ํ๋ฉด ๊ฐ์ ์ง์์๋ IP๊ฐ ๋ณํํด๋ ์๊ด์ด ์์ง๋ง ์๋น์ค ๋๋ฉ์ธ์ด ๋ณํํ๊ฒ ๋๋ค๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค. ๊ทธ๋์ ์๋น์ค๋ฅผ ํ๊ธฐ ์ํด์๋ ๊ณ ์ IP๋ฅผ ์ฌ์ฉํ๋ค.
AWS์ ๊ธฐ๋ณธ ์ค์ ์ ์ ๋ IP ์ด๋ค. ์ฐ๋ฆฌ๋ ์ด๊ฑธ ๊ณ ์ IP๋ก ์ค์ ์ ํ๋ ค๊ณ ํ๋ค. - ํ๋ ฅ์ IP ์ค์

EC2 ์ธ์คํด์ค์ ์์ ํ๋ฉด์ ๋ณด๋ฉด ํ๋ ฅ์ IP ์ค์ ์ด ์๋ค. ํ๋ ฅ์ IP ์ฃผ์ ํ ๋น์ ์ ํํ๊ณ ์ฐ๋ฆฌ์ ์ธ์คํด์ค์ ์ธ์คํด์ค. ํ๋ฆฌ์ด๋น IP ์ฃผ์๋ฅผ ์ฐ๊ฒฐํ๋ฉด ์ฐ๋ฆฌ์ EC2์ ์ธ์คํด์ค๋ ๊ณ ์ IP๋ก ์ค์ ์ด ๋๋ค.
๋ณด์

์ธ์คํด์ค์ ๋ณด์์ ๋๋ฅด๋ฉด ์๋ง๋ ํฌํธ ๋ฒ์ 22 1๊ฐ๋ง ์ค์ ์ด ๋์ด์๋ค. ์ฐ๋ฆฌ๋ ์ฐ๋ฆฌ IP๋ฅผ ์์ฉ์ ํ๊ฑฐ๋ ๋ชจ๋ ์ธ์์ด ๋ค์ด๋ก๊ฒ ๋ง๋ค์ด์ผ ํ๋ค.
๋ณด์ ๊ทธ๋ฃน์ ํด๋ฆญํ๊ณ ์ธ๋ฐ์ด๋ ๊ท์น ํธ์ง์ ๋๋ฅด๊ณ ์๋์ ์ค์ ์ ์ถ๊ฐ๋ฅผ ํ๋ค.
ํฌํธ๋ฅผ 8080์ผ๋ก ์ค์ ํ๊ณ 0.0.0.00์ ๋ชจ๋ ์ธ์์ ์ค์ ํ๋ค. ๋ง์ฝ์ ์์ ๋ง ํ๊ณ ์ถ๋ค๋ฉด ์๊ธฐ IP๋ฅผ ์ถ๊ฐํ๋ฉด ๋๋ค.
3. MobaXterm๋ฅผ ์ด์ฉํด EC2 ์ ์ํด์ Git Clone ํ๊ธฐ
ํ๋ก์ ํธ๋ฅผ Cloneํ๊ธฐ ์ด์ ์ ๋ช๊ฐ์ง ์ค์ ์ ํด์ผ๋๋ค.
์ผ๋จ ์๊ฐ๊ณผ JDK์ ๋ํ ์ค์ ์ ํด์ผ๋๋๋ฐ ์๊ฐ์ ๋ฐ์ ์ค์ ์ ํ๊ฒ ๋ค.
์ผ๋จ JDK๋ฅผ ์ค์น๋ฅผ ํ๊ฒ ๋ค.
chmod u+x gradlew
sudo apt update
sudo a[t-cache search jdk
sudo apt-cache search jdk | grep openjdk-11
sudo apt install openjdk-11-jdk
java --version
๋ช ๋ น์ด ์๊ฐ
chmod u+x gradlew : gradlew๋ฅผ ํตํด์ j์คํํ์ผ๋ก ๋ณ๊ฒฝ์ด ๊ฐ๋ฅํ๋ค.(.jar) ํ์ง๋ง ์ด ํ์ผ์๋ ์คํ ๊ถํ์ด ์์ด์ ์์ ์ ์ฐ๋ถํฌ์ด๊ธฐ ๋๋ฌธ์ ๋ฐ๋ก ์คํ ๊ถํ์ ๋ถ์ฌ๋ฅผ ํด์ผํ๋ค.
sudo apt update : ๋ฉ๋ดํ์ ์ ๋ฐ์ดํธ ํ๋ค.
sudo apt-cache search jdk: ๋ฉ๋ดํ ์ ๋ฐ์ดํธ๊ฐ ๋๋๋ฉด ๋ฉ๋ดํ ๋ชฉ๋ก์ ํ์ธํ๋ค.
sudo apt-cache search jdk | grep openjdk-11 : ๊ฒ์ ๊ฒฐ๊ณผ๊ฐ ๋ง๊ธฐ ๋๋ฌธ์ grep์ ํตํด jdk๋ง ํ์ธํ๋ค.
sudo apt install openjdk-11-jdk: ์๋ฐ11์ ์ค์นํ๋ ๋ช ๋ น์ด
git --version
๋ช ๋ น์ด๋ฅผ ํตํ์ฌ git์ ๋ฒ์ ์ ํ์ธํ๋ค.

์๋์ ํ๋ก์ ํธ๋ฅผ Clone์ ํ๋ค๊ณ ์๊ฐํ๋ค.
GitHub - KMGeon/DeployAWS
Contribute to KMGeon/DeployAWS development by creating an account on GitHub.
github.com
git clone https://github.com/KMGeon/DeployAWS.git
๋ช ๋ น์ด๋ฅผ ํตํ์ฌ Github์ ์ฌ๋ผ์จ ํ๋ก์ ํธ๋ฅผ CLONE์ด ๊ฐ๋ฅํ๋ค.
์ดํ ls -l์ ํตํด์ ๋๋ ํ ๋ฆฌ๋ฅผ ํ์ธ์ด ๊ฐ๋ฅํ๋ฉฐ cd๋ฅผ ํตํด์ ํด๋์ ๋ค์ด๊ฐ๋ค.

./gradlew clean build
์คํ ํ์ผ๋ก ๋ณ๊ฒฝ์ gradlew build๋ผ๊ณ ํ๋๋ฐ ๊ทธ๋ฅ ์ด๋ ๊ฒ ์ ์ผ๋ฉด gradlew๋ฅผ ํ์ผ์ด ์๋ ์ ์ญ์ ์ธ ํ๊ฒฝ ๋ณ๊ตฌ๋ก ์ธ์ํ๋ค. ํ์ฌ ํด๋์ ์๋ ์คํ ํ์ผ๋ก ๋น๋ ํ๋ผ๊ณ ์๋ ค์ค์ผ ํ๋ค.
cd {ํ๋ก์ ํธ ํด๋}
./gradlew clean build
# test ๊ฑด๋๋ฐ๊ณ ๋น๋
./gradlew clean build -x test
jar ์คํ
# ๋น๋๋ฅผ ํตํด ์์ฑ
cd /build/libs
java -jar app-0.0.1-SNAPSHOT.jar
๊ทธ๋ฐ๋ฐ .jar ํ์ผ์ด 2๊ฐ๊ฐ ์์๊ฑฐ๋ค.
//์๋ ์ฝ๋๋ JAR ๋น๋ ์์ Plain.jar ํ์ผ์ด ์์ฑ๋์ง ์๊ฒ ํด์ฃผ๋ ์ฝ๋
jar{
enabled=false
}
์์ ์ฝ๋๋ฅผ build์ ์ถ๊ฐํ๋ฉด plain.jar๋ฅผ ์์ฑํ์ง ์๋๋ค. ์ plain.jar ํ์ผ์ ํ์ง ์๋ ์ด์ ๋ plain.jar๋ ํ์ผ์ ํ๋ก์ ํธ์ ๊ด๋ จ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํฌํจํ์ง ์๊ณ ์์ฑํ ์ฝ๋๋ง ๊ฐ์ ธ์ค๊ธฐ ๋๋ฌธ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค.


์ดํ build๋ฅผ ์ํค๋ฉด ๊ธฐ์กด์ ์คํ๋ง ๋ถํธ๋ก ์คํ์ด ๋๋ค.
@Slf4j
@RestController
public class TestController {
@GetMapping("/test")
public String test() {
log.info("=========================");
log.info(">>>>>ํ
์คํธ<<<<<<<<<<");
log.info("=========================");
return "<h1>ํ
์คํธ</h1>";
}
}

4. nohup์ ํตํ์ฌ ๋ฐฑ๊ทธ๋ผ์ด๋๋ก ์คํํ๊ธฐ
๊ธฐ์กด์ ์คํ์ ํ๋ฉด ์๋ฒ๊ฐ ๊บผ์ง๋ฉด ๋ฐฑ๊ทธ๋ผ์ด๋๋ก ์คํ์ด ๋์ง ์๋๋ค. ๊ทธ๋ฌ๋ฉด ๋ฐฑ๊ทธ๋ผ์ด๋๋ก ์คํ์ ํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ๋ ๊น?
nobup java -jar *.jar &
nohup์ ํ๋ฉด ๋ฐฑ๊ทธ๋ผ์ด๋์์ ์คํ์ด ๋๋ค. ํฐ๋ฏธ๋ ์ฐฝ์ ์ข ๋ฃํ ๋ค ๋ค์ ๋ธ๋ผ์ฐ์ ๋ก ์ ์ํด ๋ณด๋ฉด ์๋ฒ๊ฐ ์ข ๋ฃ๋์ง ์๊ณ ๋์๊ฐ๊ณ ์๋ค.
๋ค์ ๋ช ๋ น์ด๋ก ํฌํธ๋ฅผ ํ์ธ์ด ๊ฐ๋ฅํ๋ค.
netstat -nlpt
5. ํ๋ก์ธ์ค ์ข ๋ฃํ๊ธฐ
๊ธฐ๋ณธ์ ์ผ๋ก 8080ํฌํธ๋ฅผ ํ์ธํ๊ธฐ ์ํด์ PID๋ฅผ ์์์ผ ํ๋ค.
ps -ef

์ด ๋ช ๋ น์ด๋ฅผ ํตํ์ฌ 8080์ด ์คํ๋๋ ํ๋ก์ธ์ค๋ฅผ ์ฐพ๊ธฐ ํ๋ค๊ธฐ ๋๋ฌธ์ ๋๋ pgrep ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ๋ค.
//์คํํ๋ jarํ์ผ ํ๋ก์ธ์ค๋ฅผ ์ฐพ์์ค๋ค.
pgrep -f *.jar
[ 1234 ]
// kill์ ํตํ์ฌ ํ๋ก์ธ์ค๋ฅผ ์ข
๋ฃ๋ฅผ ์ํจ๋ค.
kill -9 1234
'๐ AWS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ Jenkins ] Jenkins Item Freestyle CI/CD ๋ฐฐํฌ (0) | 2023.04.19 |
---|---|
[ Jenkins ] Jenkins CI/CD ๋ฌด์์ธ๊ฐ? (0) | 2023.04.15 |
[ AWS ] AWS๋ ์นํด์ง๊ธฐ - 3 (Docker๋ฅผ ์ด์ฉํด์ ๋ฐฐํฌํ๊ธฐ) (0) | 2023.04.07 |
[ AWS ] AWS๋ ์นํด์ง๊ธฐ -2 (์๊ฐ ์ค์ ) (0) | 2023.04.07 |
[ AWS ] ์ ๋ด๊ฐ ๋ฐฑ์๋์ธ๋ฐ AWS ํด๋ผ์ฐ๋๋ฅผ ๋ฐฐ์์ผ ํ๋๊ฐ? (0) | 2023.04.07 |