(AWS) RDS 없이 EC2 로 데이터베이스 서버 구축하는 방법
나는 개발을 할 때 이번에 처음으로 로컬로 데이터를 구축하는 것을 시도해보았다
그러다가 남에게 프로젝트를 보여줘야 할 상황이 있을 때 어떻게 대처할까라는 의문이 들게 되었다
물론 내 컴퓨터의 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 내부 구조를 작성 해볼 예정이다