AWS RDS로 PostgreSQL 데이터베이스 생성하기

2023. 11. 3. 00:34·AWS/RDS
반응형

RDS
RDS

이번 포스트에서는 AWS에서 지원하는 DB서비스인 RDS(Amazon Relational Database Service)에서 PostgreSQL을 생성해 보도록 하자

 


 

1. RDS (Amazon Relational Database Service)를 사용하는 이유


1-1. 관리의 편리성

  • RDS는 데이터베이스 관리 작업들, 예를 들어 하드웨어 프로비저닝, 데이터베이스 설정, 패치 적용 그리고 백업 같은 작업들을 자동화해 준다.

1-2. 확장성

  • 사용자의 요구에 맞춰서 컴퓨팅 리소스나 스토리지를 쉽게 확장할 수 있다.

1-3. 가용성과 내구성

  • RDS는 멀티 AZ(Availability Zone) 배포를 지원해서 데이터베이스의 고가용성을 보장한다. 또한 자동 백업, 데이터베이스 스냅샷, 자동 호스트 교체 같은 기능도 제공한다.

1-4. 보안

  • AWS의 보안 기능을 이용해서 데이터베이스를 보호할 수 있다. VPC 내에서 데이터베이스를 실행하고, IAM을 통해 액세스를 관리할 수 있다.

1-5. 성능

  • SSD 스토리지, Read Replica를 활용한 읽기 성능 최적화 등을 통해 높은 성능을 제공한다.

 


 

2. RDS의 장단점


2-1. 장점

  • 간편한 운영 :  서버 유지보수, 패치 관리 등이 자동화되어 있어서 운영 부담이 적다.
  • 자동 백업과 복구 :  일일 백업과 특정 시점 복구 기능을 지원해서 데이터 손실 위험을 줄일 수 있다.
  • 스케일 업과 다운이 쉬움 :  몇 번의 클릭만으로 리소스를 조정할 수 있어서 트래픽 변동에 빠르게 대응할 수 있다.
  • 고가용성 :  Multi-AZ 배포를 통해 자동 장애 조치(failover)를 지원한다.

2-2. 단점

  • 비용 :  관리형 서비스라는 편리함에 대한 비용이 발생한다. 직접 서버를 운영하는 것보다 비쌀 수 있다.
  • 제한된 커스터마이징 :  관리형 서비스이기 때문에, 일부 데이터베이스 설정이나 파라미터를 사용자 마음대로 바꿀 수 없다.
  • 성능 제한 :  일부 고성능 요구 사항에 대해서는 자체적으로 최적화된 데이터베이스를 구축하는 것이 더 나을 수도 있다.

 

3. RDS 환경 구축하기 (PostgreSQL)


3-1. RDS 페이지로 이동

  • AWS RDS를 구축하기 위해 Google에서 검색해서 아래와 같은 페이지로 이동한다.

아마존 RDS
아마존 RDS

 

  • 이미 AWS내부에 있다면 페이지 좌측 상단의 검색창을 이용해서 RDS를 검색한 후 들어가도 된다.

AWS 검색창
AWS 검색창

 

3-2. 데이터베이스 생성하기

  • RDS로 이동했으면 좌측의 메뉴바에서 "데이터베이스"를 클릭하면 아래와 같은 페이지로 이동하게 된다. 여기서 우측의 "데이터베이스 생성" 버튼을 클릭한다.

데이터베이스 생성하기
데이터베이스 생성하기

 

  • 아래와 같은 데이터베이스 생성 페이지로 이동할 것이다. 여기서 "표준 생성"을 선택한다.

데이터베이스 생성
데이터베이스 생성

 

3-3. 데이터베이스 엔진 옵션 선택하기

  • 하단으로 내려오면 엔진 옵셥을 선택할 것이다. 여기서 PostgreSQL을 선택한다.(Aurora의 PostgreSQL 아니니 주의하자)

엔진 옵션 선택
엔진 옵션 선택

 

3-4. 템플릿 및 가용성 선택

  • 프리 티어를 선택했더니 하단의 "가용성 및 내구성"은 선택이 불가능했다.

템플릿 가용성 선택
템플릿 가용성 선택

 

3-5. 기본 설정하기

  • 하단으로 내려오면 기본적인 설정을 하게 된다. 여기서 DB인스턴스의 식별자와 DB의 접속을 하게 될 마스터 이름과 암호를 정한다.

설정
설정

 

3-6. 인스턴스 구성하기

  • 다음으로 인스턴스 정보를 구성했다. 나는 프리티어인 t3.micro를 선택했다.

인스턴스 구성하기
인스턴스 구성하기

 

3-7. 스토리지 설정하기

  • DB 인스턴스에 연결시켜 줄 스토리지도 설정한다. 가장 많이 사용하는 gp2에 20GB를 선택했다.

스토리지 구성
스토리지 구성

 

3-8. 리소스 연결 설정

  • 이번에는 제일 중요한 컴퓨팅 리소스 설정이다. 여기서 "EC2 컴퓨팅 리소스에 연결"을 선택하면 퍼블릭 액세스는 불가능하도록 표시가 된다. VPC 내부에서만 연결할 수 있게 되는 것이다. 그렇지만 지금 나는 외부 서버의 SpringBoot에서 연결시킬 것이다.

EC2 컴퓨팅 리소스에 연결
퍼블릭 엑세스 불가능
퍼블릭 엑세스 불가능

 

  • 그래서 나는 아래와 같이 "EC2 컴퓨팅 리소스에 연결 안 함"을 선택하고 외부에서 연결해서 사용할 수 있도록 퍼블릭 액세스를 "예"로 선택해 줬다.

EC@ 컴퓨터 리소스에 연결 안 함
EC@ 컴퓨터 리소스에 연결 안 함

 

  • 이후 하단의 보안 그룹과 가용 영역, 등등의 추가 구성은 default를 그대로 사용했다.

나머지 설정내용
나머지 설정내용

 

3-9. 데이터베이스 인증

  • 하단의 데이터베이스 인증도 "암호 인증"으로 설정해 줬다.

데이터베이스 인증
데이터베이스 인증

 

3-10. 모니터링 구성

  • 성능 보존기간은 7일(프리 티어)를 적용시켰고 나머지는 전부 default값을 그대로 뒀다.

모니터링
모니터링

 

3-11. 추가 구성

  • 데이터베이스 옵션을 선택했다.

추가 구성
추가 구성

 

  • 이후 백업에 대한 설정을 했다.

백업 설정
백업 설정

 

  • 다음으로 암호화와 로그 설정을 했다. 암호화는 체크되어 있었는데 해제시켰고 로그는 전부 체크를 해줬다.

암호화 설정
암호화 설정

 

  • 이후 하단의 나머지 세팅들은 전부 default 설정을 따라갔다.

나머지 세팅
나머지 세팅

 

3-12. 하단의 비용계산 확인하기

  • 맨 하단에는 비용계산과 설명이 나온다. 이것을 확인하고 맨 아래의 "데이터베이스 생성" 버튼을 누른다.

비용계산
비용계산
월별 추정 요금
월별 추정 요금

 

3-13. 생성시작

  • 위에서 생성 버튼을 눌렀다면 아래와 같이 생성이 진행되는데 시간이 상당히 걸린다. 다른 것을 하다 돌아오면 된다.

데이터베이스 생성중
데이터베이스 생성중

 

3-14. 생성완료

  • 하단의 상태가 "사용 가능"으로 변경되었다. 즉, 데이터베이스가 생성 완료되었다는 것이다.

데이터베이스 생성완료
데이터베이스 생성완료

 

3-15. 데이터베이스 상세 보기

  • 상세 보기를 하기 위해 DB식별자를 클릭해서 들어갔다.

상세보기
상세보기

 

  • 하단의 “연결 및 보안”설정도 확인했다. 여기에 적혀있는 엔드포인트로 외부에서 연결하게 될 것이다.

연결 및 보안
연결 및 보안

 


 

4. 보안 그룹 (Security Group) 설정하기


4-1. 보안그룹에서 DB포트 열어주기

  • 외부에서 AWS의 RDS 서비스로 만든 PostgreSQL DB에 접근하기 위해서는 보안그룹에서 포트를 열어줄 필요가 있다.
  • 하단의 "연결 및 보안"에서 "VPC보안 그룹" 아래에 설정되어 있는 그룹이 파란색으로 되어있는데 클릭해서 들어가 준다.

보안 그룹 들어가기
보안 그룹 들어가기

 

4-2. 보안그룹 편집하러 들어가기

  • 보안그룹에 들어왔으면 하단에서 "인바운드 규칙"을 선택한다. 이후 그 우측에 있는 "인바운드 규칙 편집" 버튼을 클릭하고 들어간다.

보안 그룹
보안 그룹

 

4-3. 보안그룹 편집하기

  • 외부에서 들어올 수 있도록 인바운드 규칙을 수정했다. 하단의 유형에서 PostgreSQL을 선택하면 자동으로 TCP 5432 포트를 선택해 준다. 소스는 모든 IP에서 들어올 수 있도록 하기 위해 0.0.0.0/0으로 설정해주었다. (보안을 위해 추후 수정할 예정)

인바운드 규칙 편집
인바운드 규칙 편집

 

 

이제 외부에서도 내 RDS(PostgreSQL)로 접근할 수 있게 설정이 완료되었다.
다음 포스트에서는 SpringBoot에서 이번에 설정한 RDS에 연결해 보도록 하는 과정을 설명하겠다.





2023.10.29 - [AWS] - AWS - CodePipeline을 통한 CI/CD구현기 1편 (Step1: 파이프라인 설정, Step2: 소스 스테이지 추가하기)


 

AWS - CodePipeline을 통한 CI/CD구현기 1편 (Step1: 파이프라인 설정, Step2: 소스 스테이지 추가하기)

이제부터 작성할 CodePipeline포스트 시리즈는 지금까지 열심히 만든 AWS의 ECR, ECS를 활용하여 CI/CD를 구현해 보도록 한다. CodePipeline으로 CI/CD를 구축하는 과정에서 많은 우여곡절이 있었지만 이를

curiousjinan.tistory.com

 

반응형

'AWS > RDS' 카테고리의 다른 글

AWS의 RDS(PostgreSQL)와 SpringBoot 연동하기  (2) 2023.11.03
'AWS/RDS' 카테고리의 다른 글
  • AWS의 RDS(PostgreSQL)와 SpringBoot 연동하기
Stark97
Stark97
문의사항 또는 커피챗 요청은 링크드인 메신저를 보내주세요! : https://www.linkedin.com/in/writedev/
  • Stark97
    오늘도 개발중입니다
    Stark97
  • 전체
    오늘
    어제
    • 분류 전체보기 (240) N
      • 개발지식 (20)
        • 스레드(Thread) (8)
        • WEB, DB, GIT (3)
        • 디자인패턴 (8)
      • JAVA (21)
      • Spring (88)
        • Spring 기초 지식 (35)
        • Spring 설정 (6)
        • JPA (7)
        • Spring Security (17)
        • Spring에서 Java 활용하기 (8)
        • 테스트 코드 (15)
      • 아키텍처 (5)
      • MSA (14)
      • DDD (7) N
      • gRPC (9)
      • Apache Kafka (18)
      • DevOps (23)
        • nGrinder (4)
        • Docker (1)
        • k8s (1)
        • 테라폼(Terraform) (12)
      • AWS (32)
        • ECS, ECR (14)
        • EC2 (2)
        • CodePipeline, CICD (8)
        • SNS, SQS (5)
        • RDS (2)
      • notion&obsidian (3)
  • 링크

    • notion기록
    • 깃허브
    • 링크드인
  • hELLO· Designed By정상우.v4.10.0
Stark97
AWS RDS로 PostgreSQL 데이터베이스 생성하기
상단으로

티스토리툴바