AWS (5) - RDS

임재성·2026년 2월 18일

AWS 기초

목록 보기
6/8

RDS

RDS란?

  • RDS(Relational Database Service)의 줄임말로, AWS로부터 관계형 데이터베이스르 빌려서 사용할 수 있는 서비스이다.
  • MariaDB, Postgresql 등 다양한 데이터베이스를 지원한다.
  • 또한 백업, 업데이트, 자동 확장 기능을 제공함.

RDS 인스턴스

  • 데이터베이스가 설치되어있는 컴퓨터 한 대를 RDS 인스턴스라고 함.
  • 엔진 유형 : MySQL, Postgresql, MariaDB, Amazon Aurora 등이 존재.
    인스턴스 클래스: RDS에서 인스턴스 클래스란 컴퓨터의 성능을 뜻함. EC2 서비스에서 인스턴스 유형과 비슷한 뜻으로 고성능 컴퓨터일수록 많은 양의 데이터를 처리할 수 있음.
    스토리지 : 데이터베이스가 데이터를 저장하는 공간.

RDS 인스턴스 생성

  • RDS 콘솔 진입.
  • 리전 서울 선택
  • 데이터베이스 생성클릭
  • 데이터 생성 방식 및 엔진 설정
  • 템플릿 선택
  • 설정 정보 입력
  • 인스턴스 유형 선택
  • 스토리지 선택
  • 연결 설정

    RDS에서 퍼블릭 액세스를 사용할경우 시간당 요금이 부과됩니다. RDS 인스턴스를 사용하지 않을때는 인스턴스 삭제를 추천합니다.

퍼블릭 액세스를 통해서 외부에서 데이터베이스에 접근할 수 있게 만들 수 있습니다.
또한 데이터 베이스에 접근하는 트래픽을 허용하기 위해 보안그룹을 새로 생성합니다.

  • 하단의 추가 구성을 펼쳐서 초기 데이터 베이스 이름을 작성
  • 가장 밑에 데이터베이스 생성 버튼으로 생성 마무리
  • 데이터베이스의 DB 식별자 를 클릭하여 상세 페이지로 이동

RDS 보안그룹 수정

  • 상세 페이지로 이동했으면, 하단의 연결 및 보안 부분에서 VPC 보안 그룹 클릭
  • 보안그룹에 대한 인바운드 규칙 편집
  • 소스를 Anywhere-IPv4로 수정후 규칙 저장

RDS 인스턴스 접속

  • RDS 메뉴에서 데이터베이스 클릭후 -> DB식별자를 클릭 후 -> 연결 보안 -> 엔드포인트 선택
  • 엔드포인트포트를 사용하여 접속 시도.
  • HediSQL을 통해서 접속했음.

    데이터베이스 생성하면서 만들었던 integration 데이터베이스도 존재함.

파라미터 그룹 설정

  • 데이터베이스의 저장되는 날짜 데이터를 한국시간을 기준으로 저장하거나 인코딩 방식을 설정한다거나 하는 경우. RDS에서는 파라미터 그룹을 사용하여 데이터베이스 설정이 가능하다.
  • RDS 메뉴에서 파라미터 그룹 -> 파라미터 그룹 생성 클릭
  • 사진과 같이 입력후 생성
    파라미터 그룹이나 설명은 알아서 작성.

    여기서 중요한점은 위에서 생성한 Mysql 버전이 8.4.7 이었기 때문에 파라미터 그룹 패밀리 항목을 mysql8.4로 변경해줘야 함.

  • 생성된 파라미터 그룹의 이름을 클릭하여 세부정보로 들어감
  • 편집 클릭
  • 수정 가능한 파라미터character_set 입력후 검색
  • utf8보다는 utf8mb4를 통해서 한글뿐 아니라 이모티콘도 같이 지원할 수 있도록 함.
    파라미터에 대한 값 입력 부분에 utf8mb4 작성후 변경사항 저장
  • 다시 편집을 눌러 collation 검색후 나온 값들에 대해서 utf8mb4_unicode_ci 입력후 저장
  • 다시 편집을 눌러 time_zone 검색후 Asia/Seoul 입력후 저장.
    (시간대를 한국 기준으로 맞추기 위함)

RDS 파라미터 그룹 변경

  • RDS 메뉴에서 데이터베이스 선택후 -> 수정 클릭

  • 추가구성 항목에서 위에서 생성한 파라미터 그룹을 선택 후 저장.

  • 즉시 적용

  • 데이터 베이스가 수정중에서 사용가능으로 변경되면 우측 상단의 작업 에서 재부팅 클릭.
    이 과정을 진행해야 적용되므로 반드시 수행.

  • 사용가능 상태가 되면 DB 식별자 클릭 후 세부 사항으로 이동.

  • 하단의 구성탭을 누르면, DB 인스턴스 파라미터 그룹이 내가 선택한 그룹이 된다.

백엔드와 연동

  • 예제 프로젝트 가져오기
    git clone https://github.com/JSCODE-BOOK/aws-rds-springboot.git
  • cd aws-rds-springboot/src/main/resources
    vi application.yml
server:
  port: 80
spring:
  datasource:
    url: jdbc:mysql://___________:3306/instagram # RDS 인스턴스 엔드포인트,
    # 가장 끝에 instagram은 본인이 만든 데이터베이스 이름으로 수정
    username: ______ # RDS 마스터 사용자 이름
    password: ______ # RDS 마스터 비밀번호
    driver-class-name: com.mysql.cj.jdbc.Driver
  jpa:
    hibernate:
      ddl-auto: update
    show-sql: true
  • 빌드 및 실행
    $ sudo kill {PID 값} # 80번 포트에서 실행되는 프로세스가 있다면 종료
    $ cd ~/aws-rds-springboot
    $ ./gradlew clean build -x test # 스프링 부트 프로젝트 빌드
    $ cd build/libs 
    $ sudo nohup java -jar aws-rds-springboot-0.0.1-SNAPSHOT.jar & # JAR 파일 실행
  • 결과
profile
조금씩 앞으로

0개의 댓글