AWS RDS 인스턴스 생성

GYU08294·2021년 11월 9일
post-thumbnail

SpringBoot Project에 RDS 연동하기

1)AWS RDS
RDS INSTANCE CLASS 생성

DB생성을 누르게 되면 아래 이미지와 같이 DB를 선택하는 창이 뜨는데 많이 다뤄본 경험이 있는 MYSQL로 진행을 해보았다.

Console Link

  • 선택 항목에서 프리티어를 선택하고 만들고 싶은 관계형 DB인 MYSQL을 선택합니다.
  • 사진에는 없지만 micro instance가 존재하는데 가격이 가장 싸며 낮은 vCPU성능과 적은 메모리로 프리티어들에게 실무 향상에 도움을 줄 수 있다고 적혀있었다.
    🎒 EX) db.t1.micro, db.t2.micro 등이 있다.
    AWS 사이트의 요금표 참조

단일 AZ db.t2.micro 인스턴스에서 Amazon RDS의 750시간의 시간을 프리티어는 사용할 수 있으며 20GB의 범용 스토리지(SSD), 20GB의 자동 백업 스토리지 및 사용자가 시작한 모든 DB 스냅샷을 기록할 수 있습니다.

스토리지에 대한 정보가 궁금하면 참조하자.
스토리지 유형별 성능과 설명

중간에 생각나서 찾아봤는데 다중 AZ 배포가 무엇인지는 깊게 들여다보지는 않았고 대충 이정도로 설명이 나와있는대로 이해했다.

나중에 시간이 나면 한번 찾아보자.
Multi-AZ Deployment에 대한 설명 (AWS 사이트)

Multi-AZ Deployment ?

장애에 대응할 수 있는 이중화를 위한 다중 가용 영역Multi-AZ 복제와 고성능 I/O를 제공하는 Provisioned IOPS Storage를 사용할 것인지 선택합니다. Multi-AZ와 Provisioned IOPS Storage를 사용하면 추가 요금이 발생합니다.

  • 퍼블릭 엑세스 기능에 "예"를 눌러서 외부에서 접근 가능하게 해줍니다.

  • 보안그룹은 새로 생성으로 만든다.

  • 가용영역은 저렇게 비워놔도 알아서 잡아주는 것 같다.

  • mySQL의 포트 3306

    • RDS 포트 열어두기

      	연걸&보안 > 보안 > VPC 보안그룹 클릭 > 보안그룹 ID 클릭 > 인바운드 규칙 편집 <BR> (인바운드 규칙 편집) 소스 -> 위치 무관
  • VPC: DB 인스턴스가 위치할 네트워크(VPC)입니다.
  • DB Subnet Group: DB 인스턴스가 위치할 서브넷입니다. 위에서 Default VPC이외의 VPC를 선택했을 때 이 서브넷을 설정할 수 있습니다.
  • Publicly Accessible: DB를 외부에서 접근할 수 있게 하는 옵션입니다. No로 설정하면 VPC 내부에서만 접근할 수 있습니다. 기본값 그대로 사용합니다.
  • VPC Security Group: 방화벽 설정인 Security Group입니다. 기본값 그대로 사용합니다. 이 Security Group은 나중에 DB 인스턴스 전용으로 따로 생성해야 합니다.

  • 암호인증
    - DB 암호를 사용해서 인증

  • 암호 및 IAM 데이터베이스 인증
    - IAM 정책으로 인증(보안상 추천)

  • 유지관리

    마이너 버전 업그레이드 DB가 업데이트 될시에 자동으로 업데이트 해줍니다.
  • 유지관리 기간

    기본값은 No Preference입니다. 여기서는 Select Window를 선택하고 Start Day를 Monday, Start Time을 03:00, Duration을 0.5로 설정합니다. UTC 기준으로 03시 00분에 점검이 시작되며 시간은 0.5시간(30분)입니다.

    Duration을 설정하는 이유는 위 Backup Window의 시간과 겹치지 않게 하기 위해서 입니다. 점검은 Duration에 설정한 시간보다 일찍 끝날 수 있습니다.

    이 시간에 Auto Minor Version Upgrade를 설정했다면 DB 버전 업데이트 또는 패치가 적용됩니다. DB 버전 업데이트 또는 패치는 필수적인 것(보안 패치)만 적용되며 자주 발생하지 않고 몇 달에 한 번 발생합니다. DB 업데이트 또는 패치가 적용되는 시간 동안에는 DB 인스턴스의 실행이 중지됩니다.

    DB 인스턴스 클래스를 변경했다면 이 시간에 적용됩니다. DB 인스턴스 클래스를 변경하는 동안에는 DB 인스턴스의 실행이 중지됩니다.


  • 인스턴스 상태가 백업 중으로 넘어가면 인스턴스 생성이 완료된 상태이며 접근이 가능합니다.

  • 엔드 포인트가 DB에 접속할 주소이며 뒤로 넘어가면 로컬에서 개발할 때 jdbc:mysql://localhost:3306/db이름?ServerTimezone=UTC - 이런식으로 나왔던 주소가 localhost를 대체합니다.

  • 보안그룹이 인스턴스 생성을 요청한 IP로 한정해서 접근을 허용합니다.

  • 생성한 PC가 아닌 다른 PC에서 접근할 경우에는 보안그룹도 수정해야 합니다. 추후 EC2에서 접근할 때 보안그룹을 재설정할 예정입니다.

2) RDS WORKBENCH
Mysql Workbench를 통해 접속이 잘 되는지 테스트합니다.
  • Hostname에 인스턴스의 엔드포인트, Username에 사용자 이름을 작성합니다. 그리고 Name에는 DB서버의 별명을 적어주도록 하면된다.

그리고 spring boot 프로젝트에가서 application.properties를 수정해주어야하는데, 나는 그냥 yml이 보기 편해서 yml로 적었다.
server:
port: 8080
spring:
datasource:
  driver-class-name: com.mysql.cj.jdbc.Driver
  url: jdbc:mysql://database-androidproject.----------.ap-northeast-2.rds.amazonaws.com:3306/db
  username: admin
  password: passwd

jpa:
  hibernate:
    ddl-auto: update
  properties:
    hibernate:
      format_sql: true

2) Spring Boot

부트에서 간단한 엔티티를 만들어서 JPA엔티티 생성후에 로컬에서 서버 구동.

profile
개발 일지

0개의 댓글