[AWS] 06. EC2 Docker PostgreSQL 설치

나도 가보자·2024년 7월 20일
post-thumbnail

💡 PostgreSQL란?

PostgreSQL은 일반적으로 Post-GRES로 발음하며 뛰어난 안정성, 유연성, 개방형 기술 표준 지원으로 잘 알려져 있는 오픈 소스 데이터베이스이다. PostgreSQL는 다른 RDMBS와는 달리 비관계형 및 관계형 데이터 유형을 모두 지원한다.


💻 EC2 Docker-Compose PostgreSQL 설치

1) 프로젝트 초기 환경 설정

$ mkdir {프로젝트명}
$ cd {프로젝트명}
$ mkdir docker
$ cd docker
$ mkdir data_for_postgresql

2) PostgreSQL for docker-compose.yml 작성

version: '3.9' # Docker Compose 파일의 버전을 지정

services:
  dev-postgres:
    image: postgres:16.0 # PostgreSQL 버전 16.0 이미지를 사용한다.
    container_name: postgres # 컨테이너 이름을 'postgres'로 설정
    environment: # 환경 변수 설정 및 postgresDB 관리자 및 시간대 설정
      POSTGRES_USER: ${POSTGRES_USER} # PostgreSQL 사용자 이름을 환경 변수로 설정
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} # PostgreSQL 비밀번호를 환경 변수로 설정
      POSTGRES_DB: ${POSTGRES_DB} # PostgreSQL 데이터베이스 이름을 환경 변수로 설정
      TZ: Asia/Seoul # 타임존을 'Asia/Seoul'로 설정

    ports: # 호스트와 컨테이너 포트 매핑
      - "5432:5432" 
    volumes: # 호스트의 디렉토리를 컨테이너의 디렉토리에 매핑
      - ./data_for_postgresql:/var/lib/postgresql/data
    networks: # 네트워크 설정
      - dev # 'dev'라는 사용자 정의 네트워크 연결

  dev-pgadmin:
    image: dpage/pgadmin4:7.4 # pgAdmin 버전 7.4 이미지를 사용한다.
    container_name: pgadmin # 컨테이너 이름을 'pgadmin'으로 설정
    environment: # 환경 변수 설정 및 postgresDB 웹 서비스 관리자 및 시간대 설정
      PGADMIN_DEFAULT_EMAIL: ${PGADMIN_DEFAULT_EMAIL} # pgAdmin 기본 이메일을 환경 변수로 설정
      PGADMIN_DEFAULT_PASSWORD: ${PGADMIN_DEFAULT_PASSWORD} # pgAdmin 기본 비밀번호를 환경 변수로 설정
      TZ: Asia/Seoul # 타임존을 'Asia/Seoul'로 설정
    ports: # 호스트와 컨테이너 포트 매핑
      - "5050:80" # 호스트의 포트 5050을 컨테이너의 포트 80에 매핑
    depends_on: 
      - dev-postgres # 'dev-postgres' 서비스가 시작된 후에 'pgadmin' 서비스를 시작하도록 설정
    networks: # 네트워크 설정
      - dev # 'dev'라는 사용자 정의 네트워크 연결

networks: # 네트워크 정의
  dev:
    name: dev # 네트워크 이름 설정
    driver: bridge # 네트워크 드라이버 설정

3) PostgreSQL for .env file 작성

  • 파일 경로는 docker-compose.yml과 같은 경로에 위치한다.
$ POSTGRES_USER={사용자 계정명}
$ POSTGRES_PASSWORD={사용자 비밀번호}
$ POSTGRES_DB={기본 데이터베이스 정의}
$ PGADMIN_DEFAULT_EMAIL={웹 서비스 계정명@email.com}  
$ PGADMIN_DEFAULT_PASSWORD={웹 서비스 계정 비밀번호} 

4) PostgreSQL for docker-compose build

  • 빌드 및 백그라운드 실행
$ sudo docker-compose up -d --build
  • 실행 상태 확인
sudo docker-compose ps

5) EC2 보안 그룹 인바운드 규칙

  • 기본 보압 그룹 혹은 커스텀 보안 그룹 선택
  • 인바운드 규칙 편집 선택
  • 인바운드 규칙 추가

6) Data Source and Drivers dialog Test

  • Data Source for PostgreSQL
  • Data Source and Drivers Connection
profile
Developer CodeJesterND

0개의 댓글