웹 개발

(AWS) RDS 없이 EC2 로 데이터베이스 서버 구축하는 방법

너어디사니 2024. 7. 1. 20:55

나는 개발을 할 때 이번에 처음으로 로컬로 데이터를 구축하는 것을 시도해보았다

 

그러다가 남에게 프로젝트를 보여줘야 할 상황이 있을 때 어떻게 대처할까라는 의문이 들게 되었다

 

물론 내 컴퓨터의 ip주소를 열어놓고 들어오쇼!! 할수도 있지만 이는 조금 비효율 적인 방법!!

 

그래서 AWS 로 DB 서버를 구축해보려고 하는데 여기서 다른 방법으로 RDS 를 쓰지 않고 구축하려고 한다

 

여기서 잠깐 EC2 란?? : 쉽게 말해서 AWS에게 컴퓨터 한대 빌리는 것이다 

1. 먼저 인스턴스 시작을 눌러서 EC2 를 만든다 필자는 우분투로 서버를 만들 예정이다

이름에 서버 이름을 입력하고 이미지를 본인이 원하는 이미지를 사용하면 된다

2. 인스턴스 유형 선택

프리 티어에서도 사용이 가능한 T2.micro 로 사용 하려고 한다

3. 키 페어 생성

키 페어가 기존에 있는 사람은 키 페어를 사용하고 없는 사람은 .pem 파일로 등록을 한다 (putty 쓰는 사람들은 .ppk로) .pem 키가 자동으로 다운로드 될 텐데 해당 파일을 본인이 원하는 폴더에 넣어두자

 

4. 보안 그룹(인바운드 보안 설정)

인바운드 설정을 하면 되는데 SSH 는 본인의 IP로 설정하는 것이 좋다 ( 어차피 본인만 터미널로 조작하니까, 만약에 추가로 조작하는 사람이 있다면 해당 인바운드 규칙을 추가적으로 설정해주면 된다) 그리고 추가로 데이터베이스 관련 PORT 도 열어줄건데 postgresql 은 5432 mysql 은 3306 번을 열어주면 된다 현재 페이지에서는 적용이 안되니 인스턴스 생성 후에 조작하면 된다

 

5. 인스턴스 실행

인스턴스 상태가 실행중일 경우 연결 -> EC2 인스턴스 연결 -> 연결을 클릭한다

 

or 터미널에 아래와 같은 명령어로 서버 접속 창에 들어간다

 

ssh -i <키 페어 이름>.pem <사용자 이름>@<내 Public IP 주소>

터미널 기준으로 이런 식으로 IP 주소와 같이 뜨면 성공이다

 

6. 우분투 루트 서버 암호 설정 및 업데이트

// 루트 계정 암호 생성
sudo passwd root

// 우분투 서버 업데이트
sudo apt-get update

 

7. 데이터 베이스 다운로드

# postgresql 버전 체크
apt show postgresql

# 최신 버전 설치하고 싶을 경우
sudo apt install postgresql postgresql-contrib

# 내가 원하는 버전 설치 하고 싶을 경우
sudo apt install postgresql postgresql-14

 

8. 데이터 베이스 패키지 구성 설정

# postgresql 패키지 구조 설정
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list. d/pgdg.list'

# GPG 키 추가
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

# 이 후 한번 더 업데이트
sudo apt-get update

GPG 키는 디지털 서명, 암호화, 소프트웨어 패키지의 무결성 검증 등에 사용 되는 키이다

 

9. 데이터 베이스 설치

# 최신 버전 설치하고 싶은 경우
sudo apt-get -y install postgresql

# 원하는 버전 설치하고 싶은 경우
sudo apt-get -y install postgresql-14

 

10. Postgresql 실행

# postgresql 실행
sudo service postgresql start

# postgresql 상태 확인
sudo service postgresql status 

# postgresql 재시작(이후 필요 시)
sudo service postgresql restart

 

이런 식으로 하면 데이터 베이스가 잘 설치 된 것을 볼 수 있다

 

데이터 베이스 내부 설정은 추후에 작성하도록 하고 우분투 내에서 설정을 해줘야 한다

 

11. postgresql 로 접속 허용 할 수 있도록 파일 수정

# pg_hba.conf 파일 수정
sudo vim /etc/postgresql/14/main/pg_hba.conf

# 원하는 줄을 찾을 경우 a나 i 키를 눌러서 수정 진행

# AS - IS
host    all             all             0.0.0.0/0               peer

# TO - BE
host    all             all             0.0.0.0/0               md5


# 수정 완료 후 저장 후 나가기

:wq

# postgresql 재시작 후 상태 확인

sudo system postgresql restart

sudo system postgresql status

sudo systemctl restart postgresql

sudo systemctl status postgresql
# postgresql.conf 파일 수정
sudo vim /etc/postgresql/14/main/postgresql.conf

# 수정 위치 찾은 이후에 a 나 i 를 입력해서 수정

# AS - IS

listen_addresses = 'localhost'

# TO - BE

listen_addresses = '*'

# 수정 완료 후 저장 후 나가기

:wq

# postgresql 재시작 후 상태 확인

sudo system postgresql restart

sudo system postgresql status

sudo systemctl restart postgresql

sudo systemctl status postgresql

 

12. 방화벽 설정

# 방화벽 설정 상태로 변경
sudo ufw enable

# 방화벽 5432 포트 열어주기
sudo ufw allow 5432/tcp

# 방화벽 상태 확인
sudo ufw status

 

13. ping 확인

개인 컴퓨터 터미널에서 접속 확인

ping -a <public 주소>

echo /dev/tcp/<public 주소>/<SSH 포트 번호>
echo $? #값이 0이 나오는 지 확인

 

 

위 처럼 진행을 하면 DB 서버 구축을 할 수 있게 된다

 

다음에는 Postgresql 내부 구조를 작성 해볼 예정이다