-
[프로젝트] AWS로 서버 구축하기(6)(EC2에 PgSQL 설치)[프로젝트]/AWS로 서버 구축하기 2020. 5. 17. 15:08
RDS에서는 다소 간단한 클릭 몇번으로 DB 구축을 할 수 있었으나
EC2에서 진행할 때는 몇가지 절차가 필요하다.
우선 아래와 같이 yum 업데이트를 진행한다.
sudo yum update -y
그리고 현재 OS 버전을 확인한다.
여기서 중요한 것은 Amazon Linux1에서 할 때는 설치가 어려울 수 있으므로
꼭 OS는 Amazon Linux2로 선택하여 설치하도록한다.
cat /etc/os-release NAME="Amazon Linux" VERSION="2" ID="amzn" ID_LIKE="centos rhel fedora" VERSION_ID="2" PRETTY_NAME="Amazon Linux 2" ANSI_COLOR="0;33" CPE_NAME="cpe:2.3:o:amazon:amazon_linux:2" HOME_URL="https://amazonlinux.com/"
아래와 같은 명령어로 PgSQL을 설치한다.
sudo yum install -y postgresql postgresql-server postgresql-devel postgresql-contrib postgresql-docs
PgSQL을 초기화해준다.
sudo service postgresql initdb
다음과 같이 PgSQL을 시작한다.
그리고 서버 재시작 후에도 자동으로 실행될 수 있도록 설정해준다.
sudo systemctl start postgresql sudo systemctl enable postgresql
postgres 께정으로 PgSQL에 접속한다.
sudo -u postgres psql
PgSQL 비밀번호를 설정해준다.
postgres=# ALTER USER postgres WITH PASSWORD '1234';
이제 실제 사용할 계정과 database를 만들어준다.
계정은 seoulsense라고 하고 superuser권한을 준다. 그리고 비밀번호도 정해준다.
postgres=# CREATE USER seoulsense SUPERUSER; postgres=# ALTER USER seoulsense WITH PASSWORD '1234';
database를 만들고 seoulsense 계정에 권한을 준다. db이름은 seoulsensedb라는 이름으로 만들었다.
database를 만들 때 한가지 주의할 점은 encoding이다. 기본 encoding은 SQL_ASCII이다. UTF8로 지정하려면
database를 생성할 떄 설정해 줘야 한다. 그렇지 않으면 database를 삭제하고 다시 만들어야하는 귀찮음이 발생하므로 또한 UTF8로 지정하려면 template를 template0으로 지정해줘야 한다.
postgres=# create database seoulsensedb with owner seoulsense encoding 'UTF8' template template0;
database 생성과 권한 변경이 잘 되웠는지 \l 명령으로 확인해본다.
postgres=# \l
이번에는 외부에서 PgSQL에 접속할 수 있도록 설정한다.
먼저 pg_hba.conf 파일을 수정한다. 파일 위치는 find / -name 'pg_hba.conf'로 찾아보도록한다.
찾은 후 # IPv4 local connections 부분을 다음과 같이 수정한다.
# "local" is for Unix domain socket connections only local all all peer # IPv4 local connections: host all seoulsense 0.0.0.0/0 md5 host all postgres 0.0.0.0/0 md5 # IPv6 local connections: host all all ::1/128 ident
다음으로 postgresql.conf 파일을 수정한다.
위와 같이 find / -name 'postgresql.conf'로 쉽게 찾을 수 있다.
59 라인의 내용을 다음과 같이 어디에서든 접속할 수 있도록 수정한다.
listen_addresses = '*'
두개의 conf 파일이 수정되었다면 postgresql을 재시작해준다.
sudo systemctl restart postgresql
'[프로젝트] > AWS로 서버 구축하기' 카테고리의 다른 글
[프로젝트] AWS로 서버 구축하기(7)(EC2에 설치된 PgSQL 외부에서 접속하기) (0) 2020.05.17 [프로젝트] AWS로 서버 구축하기(5)(RDS 외부 접속하기) (0) 2020.05.17 [프로젝트] AWS로 서버 구축하기(4)(RDS로 PgSQL 데이터베이스 생성하기) (0) 2020.05.17 [프로젝트] AWS로 서버 구축하기(3)(www로 redirection 하자) (0) 2020.05.10 [프로젝트] AWS로 서버 구축하기(2)(Route53으로 도메인을 설정하자) (0) 2020.05.10