AWS RDS

squarebird·2022년 5월 13일
0

AWS certification

목록 보기
1/3
post-thumbnail

AWS RDS

AWS RDSAmazon Relational Database Service의 약자로 한글로 번역하면 아마존 관계형 데이터베이스 서비스입니다.

이름에서도 알 수 있는 것 처럼 Mysql, MariaDB, Oracle, PostgreSQL 등 관계형 데이터베이스를 제공해주는 서비스인데, 일반적으로 사용자가 직접 구축해서 사용하는 것과는 다르게 실제 DB가 설치된 서버는 AWS상에 존재하고 사용자는 해당 DB에 접근해 작업만 수행하면되는 완전관리형 서비스입니다.

Amazon RDS를 사용하면 간편한 복제를 통해 프로덕션 워크로드의 가용성과 안정성을 높일 수 있습니다. 다중 AZ 배포 옵션을 사용하여 원본 RDS를 동기식으로 보조 RDS에 복사하고, 원본 RDS에 문제가 발생했을 때 자동으로 Failover해주는 기능도 제공합니다.

또한, 읽기전용 복제본을 생성하여 WriteRead의 워크로드를 분리할 수 있습니다.

RDS를 사용하면 보안이나 백업, 버전 업데이트 등 사용자가 관리해야할 영역에 대한 부담을 줄일 수 있고, 직접 구축한 DB와 다르게 스케일 업이나 디스크 용량 추가와 같은 작업에 대한 부담 역시 크게 줄일 수 있습니다.

이번 글에서는 AWS RDS를 구축하고, 일반적으로 사용하는 데이터베이스 관리 도구를 이용해 해당 DB에 접속해 보겠습니다.


1. RDS 구축

먼저 AWS 콘솔에 로그인 하고 RDS 서비스를 선택합니다.

RDS 콘솔에서 데이터베이스를 생성하겠습니다.

실습에 발생하는 비용을 최소화 하기 위해 FreeTier를 최대한 활용하겠습니다.

별도 DB 라이센스 비용이 없는 MariaDB를 선택하겠습니다.

템플릿은 프리 티어로 설정하고, DB 정보를 입력하겠습니다.

DB 인스턴스 식별자 : MariaDB-RDS
마스터 사용자 이름 : admin
마스터 암호 : 설정

인스턴스 클래스는 비용이 가장 저렴한 t2.micro로 생성하고,
스토리지 설정은 기본값 그대로 생성하겠습니다.

다음은 네트워크에 대한 설정입니다.

RDS가 생성될 VPC를 지정하고 서브넷 그룹을 선택합니다.
VPC외부의 로컬 환경에서 접근을 시도할 예정이므로 퍼블릭 엑세스를 허용하고,
Security Group을 선택해 줍니다.

설정한 Security Group에는 RDS에 접근할 대상의 IP에 대한 룰이 존재해야 합니다.

나머지 설정은 그대로 두고 RDS를 생성하겠습니다.

만약 위와같은 오류가 발생한다면 VPC에 DNS 호스트 이름에 대한 설정을 활성화 해줍시다.

완전관리형 데이터베이스인 RDSRDS가 설치된 서버나 Region 등 네트워크 환경에 문제가 발생했을 경우 다시 생성되는 등 IP가 변경될 수 있으므로 Endpoint를 제공하기 때문에 VPC에서 해당 설정을 활성화 해야 합니다.


2. DB 관리도구 설치

RDS가 생성 완료 되었습니다.
정보 화면에서 RDS에 접근하기 위한 Endpoint를 확인할 수 있습니다.

그러면 이제 RDS에 접근할 수 있도록 데이터베이스 관리 도구를 설치하겠습니다.
MariaDB는 Mysql과 같은 InnoDB기반이므로 Mysql Workbench를 설치하겠습니다.

공식 홈페이지에서 OS 맞는 버전을 다운로드받고 접근만 하면 되므로 Client만 설치해 주겠습니다.

설치가 완료되면 Mysql Workbench를 실행하고 Mysql Connections을 추가해 주겠습니다.

Hostname에 위에서 확인한 RDS Endpoint 정보를 입력하고, RDS 생성시 설정한 계정과 비밀번호를 설정해줍니다.

설정을 잘 해준 뒤 Test Connection을 선택해 테스트를 진행하면 테스트에 실패했다는 메시지를 볼 수 있습니다.

왜 실패하는 걸까요?


3. 보안그룹 설정

RDS는 접근을 위한 ENI(Elastic Network Interface)를 가지고 있습니다.

AWS에서 ENI를 가진 서비스에 접근하기 위해서는 Security Group 설정이 필요합니다.

위에서 설정한 default Security Group에 제 로컬 환경에서 SSH로 접근할 수 있는 룰을 추가하겠습니다.

먼저 구글에서 내 로컬 환경에서 외부 인터넷으로 나갈때 변경되는 공인IP를 확인해줍니다.

그리고 EC2, VPC 등 서비스에서 해당 Security Group의 인바운드 정책을 설정해주겠습니다.

이제 다시 접속을 시도해보겠습니다.

테스트에 성공했습니다!


4. DB 수정하기

이제 RDS에 쿼리문을 수행시켜 보겠습니다.

위에서 생성한 MySQL Connection에 접속해줍시다.

위와 같은 화면을 확인할 수 있습니다.
빨간색 네모의 아이콘을 선택해 스키마를 생성해줍시다.

스키마 이름을 입력하고 Apply 버튼을 선택하면 스키마가 만들어집니다.

생성된 Test 스키마입니다.

이제 테이블을 만들고 값을 넣어보겠습니다.

간단하게 ID와 Name 컬럼을 가진 테이블을 생성하겠습니다.

이제 쿼리문을 통해 데이터를 입력해 보겠습니다.

쿼리문을 입력하고 상단의 번개모양 버튼을 누르면 아래쪽 Output 콘솔 화면에서 쿼리문이 정상적으로 동작한것을 확인할 수 있습니다.

이제 SELECT문을 통해 입력한 데이터를 조회할 수 있습니다.


profile
DevOps 엔지니어가 되자

0개의 댓글