๐EC2(Elastic Compute Cloud)๋?
EC2๋ AWS ์์ ์ ๊ณตํ๋ ํด๋ผ์ฐ๋ ์ปดํจํ ์๋น์ค๋ก, ์๋ง์กด์ด ์ฌ์ฉ์๋ค์๊ฒ ๋ ๋ฆฝ๋ ์ปดํจํฐ๋ฅผ ์๋ํด์ฃผ๋ ์๋น์ค๋ผ๊ณ ๋ณผ ์ ์๋ค.
- EC2๋ฅผ ์ฌ์ฉํด ๊ฐ์ ์๋ฒ๋ฅผ ๊ตฌ์ถํ๊ณ , ๋ณด์ ๋ฐ ๋คํธ์ํน์ ๊ตฌ์ฑํด ๋ณด๋ค ๋น ๋ฅด๊ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ๊ณ ๋ฐฐํฌํ ์ ์๋ค.
- ์ธ์คํด์ค ์ ํ, ์ด์์ฒด์ , ์ํํธ์จ์ด ํจํค์ง ๋ฑ์ ์ ํํ ์ ์์ผ๋ฉฐ, ๋ฉ๋ชจ๋ฆฌ, CPU, ์คํ ๋ฆฌ์ง, ๋ถํ ํํฐ์ ํฌ๊ธฐ ๋ฑ์ ์ ํํ ์ ์๋ ์ ์ฐํ ํด๋ผ์ฐ๋ ํธ์คํ ์๋น์ค์ด๋ค.
1. AWS EC2
- AWS์ ์ ์ํ์ฌ ์๋น์ค > EC2์ ๋ค์ด์จ ๋ค ์ธ์คํด์ค ์์ ๋ฒํผ์ ํด๋ฆญํ๋ค.
- EC2 ์ธ์คํด์ค๋ ๊ฐ์ ์ปดํจํ ํ๊ฒฝ์ผ๋ก ๊ฐ์ ๋จธ์ ์ ์์ฑํ๊ณ ์คํํ๋๋ฐ ์ฌ์ฉ๋๋ค.
- ๋ฌด๋ฃ๋ก ์ด์ฉ์ด ๊ฐ๋ฅํ AWS Linux๋ฅผ ์ ํํ๋ค.
- ์ธ์คํด์ค ์ ํ์ ๋ฌด๋ฃ๋ก ์ด์ฉ์ด ๊ฐ๋ฅํ t2.micro๋ฅผ ์ ํํ๋ค.
- ํค ํ์ด๋ rsa๋ก ์ค์ ํ๋ค.
2. Elastic IP ํ ๋น
- ํ๋ ฅ์ IP๋ฅผ ์ ํํ๊ณ ํ๋ ฅ์ IP ์ฃผ์ ํ ๋น์ ์ ํ์ ํฉ๋๋ค. ์ดํ running ec2๋ฅผ ์ ํ์ ํ๊ณ ํ ๋นํ๋ค.
- ์ดํ ํด๋น EC2์ ์ ํํ๊ณ ํ๋ ฅ์ IP ํ ๋น์ ๋ณด๋ฉด ์ถ๊ฐ๋ ๋ชจ์ต์ ๋ณผ ์ ์๋ค.
3. SSH ํด๋ผ์ด์ธํธ๋ก ์๋ฒ ์ ์
- mobaxterm์ ์ค์นํ์ฌ ์ฝ๊ฒ SSH ์ฐ๊ฒฐ์ ํ ์ ์๋ค.
- Remote host์ ํ๋ ฅ์ IP ๋๋ PUBLIC IP๋ฅผ ์ ๋ ฅ์ ํ๊ณ Username์ ec2-user๋ฅผ ์ ๋ ฅํ๋ค.
- ์ดํ private key์ ec2์ rsa๋ก ์ํธํ๋ ํค๋ฅผ ์ ํํ๋ค.
4. ๋ณด์ ๊ทธ๋ฃน ์ค์
5. Docker Compose ์ค์น ๋ฐ ๋ฐฐํฌ
5-1. Git ์ค์น
- AWS Linux๋ฅผ ์ ํ์ ํ๋ฉด Git์ ์ค์นํด์ผํ๋ค.
#Perform a quick update on your instance:
$ sudo yum update -y
#Install git in your EC2 instance
$ sudo yum install git -y
#Check git version
$ git version
5-2. ๋์ปค, ์ปดํฌ์ฆ ์ค์น ๋ฐ ์์
//๋์ปค ์ค์น
$ sudo yum install docker
$ docker -v
// ๋์ปค ์ปดํฌ์ฆ ์ค์น
$ sudo curl -L <https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$>(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
// ๋์ปค ์์ํ๊ธฐ
$ sudo systemctl start docker
// ์คํ ๊ถํ ์ ์ฉ
$ sudo chmod +x /usr/local/bin/docker-compose
$ sudo chmod 666 /var/run/docker.sock
$ sudo dnf install libxcrypt-compat
$ docker-compose -v
5-3. Docker Compose ํ์ผ์ด ์กด์ฌํ๋ Github ์์ค ๋ด๋ ค๋ฐ๊ธฐ
$ git clone <https://github.com/CStudyTeam/CStudy-backend.git>
5-4. Docker ํ๊ฒฝ๋ณ์
- ๋ก์ปฌ์์ ๊ฐ๋ฐํ ๋, DB ๊ณ์ ์ ๋ณด๋ ์ธ๋ถ์ ๋ ธ์ถ๋๋ฉด ์๋๋ ๊ฐ๋ค์ ๋ฐ๋ก ์ ์ธํ์ฌ ๊ด๋ฆฌํ์๊ณ ์ด๋ฅผ ๋์ปค ์ปจํ ์ด๋๋ฅผ ์คํํ ๋ ์ ๋ฌํด์ฃผ์ด์ผ ํ๋๋ฐ ์ด๋ .ENV ํ์ผ์ ์ฌ์ฉํ ์ ์๋ค.
$ vi .env
SPRING_DATASOURCE_USERNAME=root
SPRING_DATASOURCE_PASSWORD=1234
- .env ํ์ผ์ ์์ฑํ ์๋ ๋ช ๋ น์ด๋ฅผ ํตํด ๊ฐ์ ํ์ธ ๊ฐ๋ฅํ๋ค.
$ docker-compose config
5-5. JDK ์ค์น ๋ฐ jar ํ์ผ ์์ฑ
# aws coreetto ๋ค์ด๋ก๋
$ sudo curl -L <https://corretto.aws/downloads/latest/amazon-corretto-11-x64-linux-jdk.rpm> -o jdk11.rpm
# jdk11 ์ค์น
$ sudo yum localinstall jdk11.rpm
# ๊ถํ
chmod +x gradlew
# ํ
์คํธ ์ผ์ด์ค ์ ์ธํ๊ณ , jar ํ์ผ ๋น๋๋ง ์งํ
$ ./gradlew clean build -x test
5-6. Docker ์ด๋ฏธ์ง ๋ฐ๊ณ Docker Compose ์คํ
$ docker-compose up --build
- ์์์ ์ ์ฉํ Elastic IP๋ฅผ ํตํด ์ ์ํ๊ฒ ๋๋ฉด, ์ ์์ ์ผ๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ํ๋ ๊ฒ์ ํ์ธ ํ ์ ์๋ค.
์ฐธ๊ณ ์๋ฃ
'project' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ next.js์ธ๊ฐ? (1) | 2023.11.19 |
---|---|
S3, CloudFront, Route53์ ์ด์ฉํด์ ์ ์ ์น ํธ์คํ ํ๊ธฐ (1) | 2023.11.12 |
react-hook-form๊ณผ yup์ ์ด์ฉํ ๋ก๊ทธ์ธ ๊ตฌํ (0) | 2023.10.29 |
docker (0) | 2023.09.19 |
ํ์ ๋ ์์ฃผ ์ฐ์ด๋ git ๋ช ๋ น์ด ์ ๋ฆฌ (0) | 2023.09.07 |