AWS에서는 모니터링, 알람, 백업, HA 구성 등을 모두 지원하는 관리형 서비스인 RDS를 제공합니다. RDS는 AWS에서 지원하는 클라우드 기반 관계형 데이터베이스입니다. 하드웨어 프로비저닝, 데이터베이스 설정, 패치 및 백업과 같이 잦은 운영 작업을 자동화하여 개발자가 개발에 집중할 수 있게 지원하는 서비스입니다.
RDS 인스턴스 생성하기
먼저 RDS 인스턴스를 생성합시다. EC2 인스턴스를 만들 때와 똑같이 검색창에 RDS를 검색한 뒤 선택하고, RDS 대시보드에서 데이터베이스 생성 버튼을 클립합시다.
RDS 생성 과정이 진행됩니다. DB 엔진 선택화면에서 MariaDB를 선택해줍시다. MariaDB를 선택하는 이유는 아래와 같습니다.
- 비용
- Amazon Aurora(오로라) 교체 용이성
RDS의 가격은 라이센스 비용 영향을 받습니다. 상용 데이터베이스인 오라클,MSSQL이 오픈소스인 MySQL, MariaDB, PostgreSQL보다는 동일한 사양 대비 더 가격이 높습니다.
두 번째로 Amazon Aurora 교체 용이성 입니다. Amazon Aurora는 AWS에서 MySQL과 PostgreSQL을 클라우드 기반에 맞게 재구성한 데이터베이스입니다. 공식 자료에 의하면 RDS MySQL 대비 5배, RDS PostgreSQL 보다 3배의 성능을 제공합니다. 더군다나 AWS에서 직접 엔지니어링하고 있기 때문에 계속해서 발전하고 있습니다. 그렇기 때문에 MariaDB를 사용하도록 하겠습니다.
MariaDB는 MySQL을 기반으로 만들어졌습니다. 쿼리를 비롯한 전반적인 사용법은 MySQL과 유사하니 사용 방법에 대해서는 크게 걱정하지 않아도 됩니다. MariaDB는 MySQL 대비 아래의 장점이 있습니다.
- 동일 하드웨어 사양으로 MySQL보다 향상된 성능
- 좀 더 활성화된 커뮤니티
- 다양한 기능
- 다양한 스토리지 엔진
MySQL을 써왔다면 이번 기회에 MariaDB를 선택해서 사용해보길 추천한다고 합니다.
RDS 운영 환경에 맞는 파라미터 설정하기
RDS를 처음 생성하면 몇가지 설정을 필수로 해야 합니다. 우선 아래 3개의 설정을 차례로 진행해 보겠습니다.
- 타임존
- Character Set
- Max Connection
왼쪽 파라미터 그룹 탭을 클릭해서 이동합니다. 파라미터 그룹 생성 버튼을 눌러줍니다. 세부 정보 위쪽에 DB 엔진을 선택하는 항복이 있습니다. 여기서 방금 생성한 MariaDB와 같은 버전을 맞춰야 합니다. 그룹을 생성했으면 해당 파라미터 그룹을 클릭합니다. 파라미터 편집 버튼을 클릭해 편집 모드로 전환합니다.
- time_zone의 값을 Asia/Seoul로 바꿔줍니다.
- character 검색해서 나온 값은 utf8mb4(이모지 저장가능), collation 검색해서 나온 값은 utf8mb4_general_ci로 바꿔줍니다.
- max_connections 150으로 바꿔줍니다.
- 변경사항 저장 버튼 클릭
이제 파라미터 그룹을 데이터베이스에 연결합시다. 왼쪽 메뉴탭에 데이터베이스를 클릭한 뒤 데이터베이스 체크 후 수정버튼을 눌러줍니다.
위와 같이 수정해줍시다.
내 PC에서 RDS에 접속해보기
내 PC에서 RDS로 접근하기 위해서 RDS의 보안 그룹에 본인 PC의 IP를 추가하겠습니다.
RDS의 보안 그룹 정보를 그대로 두고, EC2에 사용된 보안 그룹의 그룹 ID를 복사한 뒤 복사된 그룹 ID와 본인의 IP를 RDS 보안 그룹의 인바운드로 추가합니다.
Database 플러그인 설치
로컬에서 원격 데이터베이스로 붙을 때 GUT 클라이언트를 많이 사용합니다. MySQL의 대표적인 클라이언트로 Weorkbench 등이 있습니다. 각각의 도구마다 큰 차이가 없으니 본인이 가장 좋아하는 틀을 사용하면 됩니다. 이 책에서는 인텔리제이에 Database 플러그인을 설치해서 진행했습니다.
RDS 정보 페이지에서 엔드 포인트를 확인합니다. 이 엔드 포인트가 접근 가능한 URL이므로 메모장 같은 곳에 복사해둡니다.
이제 Action검색(커맨드+시프트+a)으로 database browser를 실행합니다. 왼쪽 + 버튼을 누른 뒤, MySQL을 눌러줍니다. MariaDB는 MySQL 기반이므로 MySQL을 사용하면 됩니다. 본인이 생성한 RDS의 정보를 차례로 등록합니다.
출처
'spring > 스프링 부트와 AWS로 혼자 구현하는 웹 서비스' 카테고리의 다른 글
[Spring] 9. Travis CI 배포 자동화 (0) | 2022.01.06 |
---|---|
[Spring] 8. EC2 서버에 프로젝트 배포 (0) | 2022.01.01 |
[Spring] 6. AWS 서버 환경 구축 - AWS EC2 (0) | 2021.12.30 |
[Spring] 5. 스프링시큐리티와 OAuth 2.0으로 로그인 기능 구현하기 (0) | 2021.12.29 |
[Spring] 4. 머스테치로 화면 구성하기 (0) | 2021.12.28 |