그 외/기타

AWS EC2 배포 + PostgreSQL

sonoopy 2024. 11. 18. 23:15

 

AWS 계정 생성 및 EC2 인스턴스 생성은 아래 게시글 참고

 

2024.11.05 - [기타] - AWS - EC2, RDS를 활용하여 배포하기

 

 

 

맥북 터미널에서 ssh 접속하기

 

  • pem 권한 변경
chmod 400 /Users/***/Downloads/PeopleOfF.pem

 

 

  • 권한 변경 확인
ls -l /Users/***/Downloads/PeopleOfF.pem

 

결과 : -r————@ 1 *** staff  1678 11 18 13:02 /Users/***/Downloads/PeopleOfF.pem

 

 

  • 우분투 서버 접속
ssh -i /Users/***/Downloads/PeopleOfF.pem ubuntu@12.345.678.90 (public IP)

 

 

 

환경 설치 및 셋팅

 

  • 시스템 업데이트
sudo apt update && sudo apt upgrade -y

 

 

  • Git 설치
sudo apt install git -y

 

 

  • Java 설치
sudo apt install openjdk-17-jdk -y

 

 

  • Gradle 설치
sudo apt install gradle -y

 

 

 

PostgreSQL 설치 및 셋팅

 

  • postgresql 설치
sudo apt install postgresql postgresql-contrib -y

 

 

  • postgresql 시작
sudo systemctl start postgresql

 

 

  • postgresql 상태 확인
sudo systemctl status postgresql

 

 

  • postgresql 접속 (기본 사용자)
sudo -i -u postgres

 

 

  • postgresql 콘솔 접속
psql

 

 

  • 비밀번호 설정
ALTER USER postgres with PASSWORD 'postgres';

 

 

  • 데이터베이스 및 유저생성, 권한 설정
CREATE DATABASE peopleoff;

CREATE USER peopleoff WITH PASSWORD 'peopleoff';

GRANT ALL PRIVILEGES ON DATABASE peopleoff TO peopleoff;

 

 

 

-peopleoff DB 이동 후 권한 부여

\c peopleoff

GRANT ALL PRIVILEGES ON SCHEMA public TO peopleoff;

 

 

 

-postgresql 버전 확인

SELECT version();

: PostgreSQL 16.4



또는 콘솔 종료 후 psql --version

 

 

-콘솔 종료

\q

 

 

-psql 종료

exit

 

 

-postgresql 비밀번호 변경

sudo passwd postgres

 

 

-postgresql 설정 파일 경로 검색

sudo find /etc -name "postgresql.conf"

 

 

-postgresql 설정 파일 열기

sudo nano /etc/postgresql/16/main/postgresql.conf

 

검색: Ctrl + W → listen_addresses 입력

#listen_addresses = 'localhost' -> listen_addresses = '*' 로 수정

저장: Ctrl + O → Enter

종료: Ctrl + X

 

 

 

-인증 파일 수정

sudo nano /etc/postgresql/16/main/pg_hba.conf

 

파일 끝에 아래 내용 추가

host    all             all             0.0.0.0/0               md5

 

 

-postgresql 재시작

sudo systemctl restart postgresql

 

 

E2C > 보안 > 보안그룹 > 인바운드 규칙 추가

유형: PostgreSQL

프로토콜: TCP

포트 범위: 5432

소스: anywhere

 

 

psql -h 12.345.678.90(publicIP) -U peopleoff -d peopleoff

 

 

-작업디렉토리 이동

cd /home/ubuntu

 

 

-깃 클론

git clone https://github.com/~/~.git(git주소)

 

 

-application.yml 추가

cd /home/ubuntu/peopleofF(프로젝트명)/src/main

mkdir resources

cd resources

nano application.yml

 

 

프로젝트 파일 경로로 이동

cd /home/ubuntu/peopleofF

 

 

gradlew 권한 주기

chmod +x ./gradlew

 

빌드

./gradlew clean build

 

**

EC2 프리미어 서버에서 테스트까지 돌리면 빌드되다가 중지되는 오류 발생

 ->  ./gradlew clean build -x test : 테스트 없이 실행

 

 

jar파일 실행

java -jar ~/peopleofF/build/libs/peopleofF-0.0.1-SNAPSHOT.jar

#백그라운드 실행

nohup java -jar ~/peopleofF/build/libs/peopleofF-0.0.1-SNAPSHOT.jar > ~/peopleofF/output.log 2>&1 &