์ํฉ ๊ฐ์
Java + Spring Boot ๊ธฐ๋ฐ์ ํฌํธํด๋ฆฌ์ค ํ๋ก์ ํธ๋ฅผ AWS EC2 ์ธ์คํด์ค์์ ์คํํ๋ ค๊ณ ํ๊ณ , ๋ค์๊ณผ ๊ฐ์ ํ๋ฆ์ผ๋ก ํ๊ฒฝ์ ์ค์ ํ์๋ค.
์ฃผ์ ๋ชฉํ
- GitHub์ ์๋ ํ๋ก์ ํธ ํด๋ก
- Java17 ์ค์น ๋ฐ Gradle ๋น๋
- EC2 ์ธ์คํด์ค์์ ํ๋ก์ ํธ ์คํ ๋ฐ ๋ฐฐํฌ ํ ์คํธ
EC2 ํ๊ฒฝ ๋ฐ ์ฌ์
- ์ธ์คํด์ค ํ์ : t2.micro
- ํ๋ซํผ : Amazon Linux 2023 (์ปค๋ 6.1 ๊ธฐ๋ฐ)
- ํ๋ก์ ํธ ์ ์ฅ์ : https://github.com/MyYeonbi/spring-portfolio-trilingual.git
์งํ ๋จ๊ณ ์์ฝ ๋ฐ ๋ฐ์ํ ์ด์๋ค
1. Git ์ค์น ๋ฐ ํ๋ก์ ํธ ํด๋ก
yum install -y git
git clone https://github.com/MyYeonbi/spring-portfolio-trilingual.git
- ์ฑ๊ณต์ ์ผ๋ก Git ์ค์น ๋ฐ ํ๋ก์ ํธ ๋ค์ด๋ก๋ ์๋ฃ.
2. Node.js ์ค์น
yum install -y nodejs npm
node -v
npm -v
- ๋ฒ์ ํ์ธ ๊ฒฐ๊ณผ Node.js ๋ฐ npm ๋ชจ๋ ์ ์ ์ค์น.
3. Java 17 ์ค์น
yum install -y java-17-amazon-corretto
java -version
- Java17(Amazon Corretto)์ค์น ๋ฐ ๋ฒ์ ํ์ธ ์ฑ๊ณต.
4. Gradle ๋น๋ ์คํ
cd spring-portfolio-trilingual
./gradlew clean build
* ์๋ฌ ๋ฐ์.
> Cannot find a Java installation on your machine (Linux ...) matching: {languageVersion=17, vendor=any vendor, implementation=vendor-specific}
- Gradle์ด "Java Toolchain"์ ์ฌ์ฉํ๋๋ก ์ค์ ๋์ด ์๋๋ฐ, ์ ์ ํ toolchain ์ค์ ์ด ์์ด ์ธ์ ๋ถ๊ฐ.
- build.gradle ํ์ผ์ ๋ค์ ์ฝ๋๊ฐ ์์๊ธฐ ๋๋ฌธ :
java {
toolchain {
languageVersion = JavaLanguageVersion.of(17)
}
}
- ์กฐ์น : ์ ์ค์ ์ ์ฃผ์์ฒ๋ฆฌ ํ๊ฑฐ๋ ์ญ์ ํจ์ผ๋ก์จ Gradle์ด ๋ก์ปฌ Java17์ ์ง์ ์ฌ์ฉํ๋๋ก ์ ๋ํจ.
5. ๋น๋ ์ฌ์๋ (Gradle ์บ์ ์ญ์ ํฌํจ)
./gradlew --no-daemon clean build --refresh-dependencies
๊ฒฐ๊ณผ : ๋ฌดํ ๋๊ธฐ
- Gradle์ด "CONFIGURING"๋จ๊ณ์์ 10๋ถ ์ด์ ๋ฉ์ถค
- ์ด์ : Gradle Daemon์ด Toolchain ๊ด๋ จ ์๋ ๋ค์ด๋ก๋๋ฅผ ์๋ํ๋ฉฐ ๋ฌดํ ๋ฃจํ์ ๋น ์ก์ ๊ฐ๋ฅ์ฑ.
- ์กฐ์น : ๊ฐ์ ์ค์ง ์๋ํ๋ ค ํ์ผ๋, Mac์์ EC2 ์ธ์คํด์ค ์ ์์ด ๋ถ๊ฐ๋ฅํด์ง.
์น๋ช ์ ๋ฌธ์ ๋ฐ์ : EC2 SSH ์ ์ ๋ถ๊ฐ
ํ์
- EC2 Instance Connect๋ก ์ ์ ์๋ ์ ๋ค์๊ณผ ๊ฐ์ ์๋ฌ ๋ฐ์ :
Failed to connect to your instance
Error establishing SSH connection to your instance. Try again later.
์์ธ
- Gradle ๋น๋ ๋ฌดํ ๋๊ธฐ๋ก ์ธํด CPU 100% ์ฌ์ฉ ์ํ ์ง์ -> ์ธ์คํด์ค ๋ด๋ถ ์ปค๋ ๋๊ฒฐ
- ์์คํ ์ด ๊ฐ์ ์ข ๋ฃ๋๋ฉฐ ๋น์ ์ ์ํ๋ก ์ง์
์ดํ ์ธ์คํด์ค๋ฅผ ์๋ ์ค์งํ ํ ์์ํ๋ ค ํ์ง๋ง ์คํจ
The instance is not in a state from which it can be started.
์กฐ์น ํ์ :
1. EBS ๋ณผ๋ฅจ ๋ถ๋ฆฌ ํ ์ ์ธ์คํด์ค์ ๋ง์ดํธํ์ฌ ๋ฐ์ดํฐ ๋ณต๊ตฌ
2 ๋๋ ๊ธฐ์กด ์ธ์คํด์ค๋ ํ๊ธฐํ๊ณ ์๋ก์ด ์ธ์คํด์ค์ git clone๋ถํฐ ๋ค์ ์ค์ .
์ ๋ฆฌ : ์ง๊ธ๊น์ง ๋ด๊ฐ ํด๊ฒฐํ ๊ฒ vs ํด๊ฒฐ ๋ชป ํ ๊ฒ
ํด๊ฒฐ๋ ๊ฒ
| ํญ๋ชฉ | ์ํ |
| Git ์ค์น ๋ฐ ํ๋ก์ ํธ clone | ์๋ฃ |
| Node.js + npm ์ค์น | ์๋ฃ |
| Java 17 ์ค์น | ์๋ฃ |
| Gradle ์คํ ํ๊ฒฝ ๊ตฌ์ฑ | ์๋ฃ |
ํด๊ฒฐ๋์ง ์์ ๊ฒ
| ํญ๋ชฉ | ๋ฌธ์ |
| Gradle ๋น๋ | Toolchain ์ค์ ๋ฌธ์ ๋ก ์ธํด ๋น๋ ์คํจ |
| Gradle ๋ฌดํ ๋๊ธฐ | --refresh-dependencies ์ต์ ์คํ ์ CONFIGURING์์ ๋ฉ์ถค |
| EC2 ์ธ์คํด์ค | ํ์ฌ SSH ์ ์ ๋ถ๊ฐ, ๊ฐ์ ์ค์ง ํ ๋ณต๊ตฌ ์คํจ |
๋ค์ ๋จ๊ณ
์ต์ 1: EBS ๋ณผ๋ฅจ ๋ถ๋ฆฌ ํ ๋ณต๊ตฌ
1. EBC ์ฝ์ -> ์ค์ง๋ ์ธ์คํด์ค -> ์คํ ๋ฆฌ์ง ํญ์์ ๋ฃจํธ ๋ณผ๋ฅจ ํ์ธ
2. EBS ์ฝ์๋ก ์ด๋ -> ํด๋น ๋ณผ๋ฅจ ์ ํ -> "๋ณผ๋ฅจ ๋ถ๋ฆฌ"
3. ์ ์ธ์คํด์ค ์์ฑ
4. ์ ์ธ์คํด์ค์ ์ ๋ณผ๋ฅจ์ ๋ง์ดํธํ์ฌ /mnt/recover์ ์ฐ๊ฒฐ
5. ๊ธฐ์กด ํ๋ก์ ํธ ํ์ผ์ ๋ฐฑ์
์ต์ 2: ์ ์ธ์คํด์ค์์ ์ด๊ธฐํ
yum install -y git java-17-amazon-corretto
git clone https://github.com/MyYeonbi/spring-portfolio-trilingual.git
cd spring-portfolio-trilingual
./gradlew clean build
๋จ, build.gradle์์ toolchain ๊ด๋ จ ์ค์ ์ ๋ฐ๋์ ์ ๊ฑฐํ๊ฑฐ๋ ์์ ํ ๊ฒ.
๋๋ ์ ๋ฐ ๊ตํ
- Gradle์ toolchain ๊ธฐ๋ฅ์ ๊ฐ๋ ฅํ์ง๋ง, ์๋ฒ ํ๊ฒฝ์์๋ ์๋ ๋ค์ด๋ก๋ ์ค์ ์ด ์์ผ๋ฉด ๋ฌธ์ ๋ฅผ ์ผ์ผํฌ ์ ์๋ค.
- EC2 ์ธ์คํด์ค์ CPU๋ฅผ ๊ณ ๊ฐ์ํค๋ ๋ช ๋ น์ ๋๋๋ก screen ๋๋ tmux๋ฅผ ํตํด ๋ณ๋๋ก ์คํํ๊ณ , ๋ฐฑ๊ทธ๋ผ์ด๋ ์ํ๋ฅผ ํ์ธํ๋ฉด์ ์คํํ ๊ฒ.
- ctrl + c ๊ฐ ๋ถ๊ฐ๋ฅํ ์ํฉ์์ ๋ฌดํ ๋ฃจํ์ ๋น ์ง ์ ์๋ค๋ ์ ์ ํด๋ผ์ฐ๋ ํ๊ฒฝ์์๋ ์น๋ช ์ ์ด๋ค.
- EC2 ์ธ์คํด์ค๋ฅผ ๋ณต๊ตฌํ๋ ค๋ฉด "์คํ ๋ฆฌ์ง ๋ง์ดํธ ์ ๋ต"์ ๋ฐ๋๋ฆฌ ์ตํ๋ฌ์ผ๊ฒ ๋ค.
์ฐธ๊ณ ์๋ฃ
- Gradle Toolchains ๊ณต์ ๋ฌธ์
- Amazon Linux 2023 Java ์ค์น ๊ฐ์ด๋
- EC2 ์ธ์คํด์ค ์๋ ๋ณต๊ตฌ ๊ฐ์ด๋
์ด๋ ๊ฒ ๋๋ AWS EC2์์์ ์ค์ต ํ๊ฒฝ ์ค์ ์ค ๋ฐ์ํ Gradle ๋น๋ ์คํจ -> ์์คํ ๊ณผ๋ถํ -> SSH ์ ์ ๋ถ๊ฐ -> ์ธ์คํด์ค ๋ณต๊ตฌ ์คํจ๋ผ๋ ํ๋ฆ์ ์ง์ ๊ฒช์ผ๋ฉฐ ๋ค์ ๋จ๊ณ๋ฅผ ์ํ ํ์ต๊ณผ ๊ฒฝํ์ ์์ ์ ์์๋ค.
๋ค์์ ๋ ์์ ์ ์ด๊ณ ๊ฒฌ๊ณ ํ ๋ฐฐํฌ ์๋ํ ํ๊ฒฝ์ ๊ตฌ์ฑํ๋ ๊ฒ์ด ๋ชฉํ์ด๋ค.
'๐ฐ๐ท ํ๊ตญ์ด (Korean) > AWS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [3] ๋ฆฌ์ (Region) ์ค์ ํ๊ธฐ (0) | 2025.06.10 |
|---|---|
| [2] EC2(Elastic Compute Cloud)๋? (0) | 2025.06.10 |
| [1] ๋ฐฐํฌ (Deployment)๋? (0) | 2025.06.10 |
| EC2 + Gradle ๋ฐฐํฌ๋ฅผ ํ๋ฉฐ ์ตํ ๋ด์ฉ๋ค ์ ๋ฆฌ (2) | 2025.06.09 |
| ๋ฐฐํฌ ์ ๋ฐฑ์๋ ๊ฐ๋ฐ ํ๊ฒฝ ๊ตฌ์ถ ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ๋น๋ ์๋ํ ์ค๋น (1) | 2025.06.09 |