Amazon RDS

2023. 4. 2. 13:49AWS (Amazon Web Services)

※ 해당 블로그는 AWS에서 제공하는 설명서와 AWS Builders Online Series 강의를 듣고 개인적으로 공부한 내용을 정리한 블로그입니다.

 

Amazon RDS(Relation Database Service)?

  • AWS에서 제공하는 관계형 데이터베이스 서비스
  • MySQL, PostgreSQL, Oracle, SQL Server, Aurora 등 다양한 DBMS 지원
  • 데이터베이스 서버를 더욱 쉽게 배포, 운영, 확장 할 수 있도록 지원
  • 관리형 서비스로 AWS가 데이터베이스 인스턴스의 *프로비저닝, 설치, 구성, 백업 등과 같은 관리 작업을 수행
  • 고가용성을 위해 멀티AZ 배포, 읽기 전용 복제본 지원

 

*프로비저닝 : 컴퓨팅 자원을 준비하고 구성하여 사용 가능한 상태로 만드는 과정, 주로 자동화 과정으로 수행

 

 Amazon RDS 생성

 

1. 데이터베이스 생성 방식 선택 - 표준 생성

 

 

2. 엔진 옵션

 

2.1 엔진 유형(DBMS)

 

 

2.2 엔진 버전

사용할 엔진 버전을 선택할 수 있으며 필터 기능을 통해 특정 기능을 지원하는 버전 확인 가능

 

필터 적용 전

 

 

필터 적용 후

 

 

3. 템플릿

사용법을 익히기 위한 실습이기 때문에 무료 티어를 사용하는 프리티어 선택

 

 

4. 가용성 및 내구성

배포 옵션을 선택할 수 있으며 이는 엔진 버전에 따라 달라짐

현재 설정한 MySQL 8.0.32 버전은 다중 AZ DB 클러스터를 지원함

 

 

5. 설정

DB 인스턴스 식별자 : RDS 인스턴스 이름 설정

마스터 사용자 이름 & 마스터 암호 : 최고 권한 사용자 아이디와 패스워드

일반 사용자를 아직 생성하지 않았기 때문에 처음 MySQL에 접속할 때 마스터 계정으로 로그인

 

 

6. 인스턴스 구성

m : 스탠다드 클래스, 일반적인 워크로드에 적합한 범용 인스턴스 유형이며 중간 수준의 CPU 및 메모리 리소스를 제공

 

r, x : 메모리 최적화 클래스, 메모리 최적화 및 고성능 CPU를 갖춘 메모리 최적화 인스턴스 유형이며 매우 높은 네트워크 대역폭을 제공

 

t : 버스터블 클래스, 저비용이면서도 가변적인 CPU 성능을 갖춘 범용 인스턴스 유형이며 적은 예산으로 낮은 수준의 CPU 및 메모리 리소스를 제공

 

마찬가지로 사용법을 익히기 위한 실습이기 때문에 가격이 저렴한 t클래스 중에서도 t2.micro 선택

 

 

7. 스토리지

 

7.1 스토리지 유형

General Purpose SSD : 비교적 저렴한 가격에도 빠른 성능과 안정성을 제공하며 gp2와 gp3 두가지 유형을 지원

범용 SSD(gp2) : 스토리지 크기당 최소 100 IOPS에서 최대 16,000 IOPS까지 지원

범용 SSD(gp3) : gp2 스토리지 유형보다 높은 대역폭과 성능을 제공, 최소 3,000 *IOPS에서 최대 16,000 IOPS까지 지원

Provisioned IOPS SSD : 고성능의 입출력 작업이 필요한 애플리케이션에 적합

Magnetic : 가장 저렴한 비용으로 제공되는 스토리지 유형, 성능가 내구도가 낮아 권장되지 않음

 

*IOPS(Input/Output Operations Per Second) : 초당 입출력 작업 수를 의미, 즉 처리량을 뜻함

 

 

8. 연결

 

8.1 컴퓨팅 리소스 & 퍼블릭 액세스

RDS에 컴퓨팅 리소스에 대한 연결 설정을 할 수 있음

EC2 인스턴스가 RDS에 연결하기 위해서는 추가적인 설정을 해줘야하지만 '컴퓨팅 리소스에 연결' 설정을 해주면 이 추가적인 설정을 자동으로 수행

 

단 컴퓨팅 리소스에 연결 설정을 하는 경우 퍼블릭 액세스 설정이 아니요로 고정

RDS에 퍼블릭 IP 주소를 할당하지 않지만 RDS와 같은 VPC 내부에 존재하는 EC2 인스턴스에서 연결 가능

 

 

반대로 컴퓨팅 리소스에 연결 설정을 하지 않은 경우 퍼블릭 액세스 설정은 예와 아니요 둘중 선택 가능

예를 선택할 경우 RDS에 퍼블릭 IP 주소를 할당하고 VPC 내부 리소스 뿐만 아니라 외부 리소스에서도 연결 가능

 

 

8.2 DB 서브넷 그룹

컴퓨팅 리소스 연결 여부에 따라 선택지가 달라짐

컴퓨팅 리소스에 연결하지 않을시 기존에 생성된 DB 서브넷 그룹을 선택

 

 

컴퓨팅 리소스에 연결할 시 기존 항목 선택과 자동 설정 두개중 선택 가능

자동 설정을 선택하면 사용자는 DB 서브넷 그룹을 자동으로 생성

 

 

8.3 VPC 보안 그룹(방화벽)

EC2 컴퓨팅 리소스에 연결 옵션을 선택한 경우 새 VPC 보안 그룹을 생성할 떄 두개의 보안 그룹이 생성됨

EC2-RDS : RDS 보안 그룹

rds-ec2-1 : EC2 인스턴스에서 RDS에 연결 할 수 있도록 하기 위한 보안그룹

EC2 인스터스에는 ec2-rds-1 보안 그룹이 추가 되었을 것이며 이 보안그룹에는 RDS 보안 그룹이 추가 되어 있음

 

 

EC2 컴퓨팅 리소스에 연결 하지 않음을 선택한 경우 새 VPC 보안 그룹을 생성할 때 하나의 보안그룹만이 생성되며 EC2 컴퓨팅 리소스에서 이 RDS에 연결하기 위해서는 마찬가지로 서로의 보안그룹을 서로의 보안그룹에 추가해주어야 함

 

 

※ 해당 부분은 마지막 실습 부분에서 추가적으로 자세히 설명 되어 있으니 같이 확인 부탁드립니다.


9. 데이터베이스 인증

생성한 RDS에 연결할때 인증 방법을 설정 하는 과정이며 계정 암호를 사용하여 인증하는 것으로 선택

암호 인증 뿐만 아니라 IAM, Kerberos를 통한 인증 방법도 있지만 다중 AZ DB 클러스터의 경우 사용할 수 없음

 

2번에서 다중 AZ DB 클러스터를 지원하는 엔진 버전을 선택하였고 4번에서 배포 옵션으로 다중 AZ DB 클러스터를 선택하였기 때문에 암호를 사용하여 인증하는 방식만 사용 가능

 

 

10. 모니터링

DB 인스턴스 또는 다중 AZ DB 클러스터를 생성할 때 성능 개선 도우미를 활성화 할 수 있으며 보존 기간과 AWS KMS key 두가지 옵션 선택 가능

 

보전 기간 : CloudWatch를 이용하여 DB 인스턴스의 모니터링 정보를 수집하며 이를 보존하는 기간

 

AWS KMS key : KMS 키를 사용하여 데이터를 암호화하고 복호화할 수 있는 서비스이며 AWS에서 기본적으로 제공하는 default 키 또는 사용자가 보유하고 있는 키 사용 가능

 

 

EC2 인스턴스에서 RDS로 연결

실습 환경

1. EC2 컴퓨팅 리소스에 연결

 

 

EC2 인스턴스(Keum-EC2)

OS : Ubuntu

보안 그룹 : 2개(launch-wizard-1, ec2-rds-1)

 

launch-wizard-1 : EC2 인스턴스 생성시 만든 보안그룹

ec2-rds-1 : RDS 생성시 'EC2 컴퓨팅 리소스에 연결' 옵션 설정으로 인해 자동으로 만들어진 보안그룹

EC2 인스턴스에서 나가는 패킷, 즉 RDS로 전송되는 패킷을 허용하기 위해 아웃바운드 규칙에 rds-ec2-1 보안그룹 추가

rds-ec2-1(sg-03d6ef68a07e698ed)

 

 

RDS 인스턴스(ec2-rds)

엔진 유형 : MySQL

보안 그룹 : 2개(EC2-RDS, rds-ec2-1)

 

EC2-RDS : RDS 인스턴스 생성시 만든 보안그룹

rds-ec2-1 : RDS 생성시 'EC2 컴퓨팅 리소스에 연결' 옵션 설정으로 인해 자동으로 만들어진 보안그룹

RDS 인스턴스로 들어오는 EC2 인스턴스를 허용하기 위해 인바운드 규칙에 ec2-rds-1 보안그룹 추가

ec2-rds-1(sg-0f0e842a4b5529438)

 

 

EC2 인스턴스에서 RDS 인스턴스로 연결

사전 작업 : mysql-client 설치

 

 

mysql -h 엔드포인트 -u admin -p

패스워드는 엔터 이후에 입력

 

 

RDS 생성할 때 퍼블릭 액세스 아니요로 설정 했기 때문에 EC2 인스턴스와 RDS 인스턴스는 같은 VPC 내부에 있어야 함

 

로그인 성공

 

 

실습 환경

2. EC2 컴퓨팅 리소스에 연결 안 함

 

 

EC2 인스턴스(Keum-EC2)

OS : Ubuntu

보안 그룹 : 1개(launch-wizard-2)

 

launch-wizard-2 : EC2 인스턴스 생성시 만든 보안그룹

 

 

RDS 인스턴스(keum-rds)

엔진 유형 : MySQL

보안 그룹 : 1개(default)

 

default : RDS 인스턴스 생성시 만든 보안그룹

 

 

EC2 인스턴스에서 RDS 인스턴스로 연결

사전 작업 : mysql-client 설치

 

 

mysql -h 엔드포인트 -u admin -p

패스워드는 엔터 이후에 입력

 

 

에러 발생, 즉 연결 실패

 

 

각각의 보안그룹에 다음과 같은 추가 설정을 해줘야 연결이 가능

 

EC2 보안 그룹 : launch-wizard-2(sg-0372c138c2802843d)

RDS 보안 그룹 : default(sg-0c5135a899509d388)

 

EC2 보안 그룹 아웃바운드 규칙에 RDS 보안 그룹 추가

 

 

RDS 보안 그룹 인바운드 규칙에 EC2 보안 그룹 추가

 

 

재시도 : 로그인 성공

 

'AWS (Amazon Web Services)' 카테고리의 다른 글

Amazon S3 권한 설정  (0) 2023.04.06
Amazon S3  (0) 2023.04.05
Amazon EC2 - 실습(Windows Server)  (0) 2023.03.31
AWS Documentation  (0) 2023.03.27
클라우드 컴퓨팅  (0) 2023.03.18