본문 바로가기
CSP (Cloud Service Provider)/AWS

[AWS] RDS-실습

by BTC_류지연 2022. 10. 14.

베하 ~~ 수 지 타 산 입니다 !

날씨가 겨울만큼 추워지려고 합니다

억새와 단풍보러 다녀와도 좋겠어요 ~

지난 시간 RDS에 대하여 기본적인 학습을 진행하였어요

오늘은 생성실습과 failover에 대하여 알아보아요.

팔로팔로팔로미

 


 

 

 

RDS 생성하기 [Multi AZ]

 

1. 데이터베이스 선택

 

 

2. 템플릿 선택

만일 무료 버젼을 이용하고 싶으면 프리티어 항목을 선택하면 된다.

다만, 이번 강의에선 멀티 AZ를 구축할 예정이기에, 프로덕션을 선택해 준다.

 

 

3. 인스턴스 클래스 선택

인스턴스 클래스는 표준, 메모리 최적화, 버스트 성능의 3종류가 있다.

용도 인스턴스 클래스 내용
표준 db.m5 등 범용적인 인스턴스 클래스이다.
메모리
최적화
db.x1e 메모리를 많이 사용하는 애플리케이션에 최적화된 인스턴스 클래스로, 일부 리전에서만 제공된다. 한국 리전에서는 이용할 수 있다.
db.x1 메모리를 많이 사용하는 애플리케이션에 최적화된 인스턴스 클래스이다. 메모리 최대치가 db.x1e의 절반이다.
db.r5 등 네트워크와 EBS의 성능을 강화한다. AWS Nitro System을 사용한다.
버스트
성능
db.t3 등 CPU의 최대 사용률까지 버스트 성능으로 사용할 수 있다.
 docs.aws.amazon.com
AWS Nitro System을 사용하는 DB 인스턴스 클래스(db.m5, db.r5, db.t3)는 결합된 읽기 및 쓰기 워크로드에 대해 조절됩니다.

만일 위 RDS 템플릿에서 프리티어로 골랐다면 인스턴스 클래스는 db.t2.micro 로 고정되어 있을 것이다.

 

 

4. EBS 선택

RDS 인스턴스도 일종의 EC2 이기 때문에 EBS 스토리지가 필요하다. 그래야 데이터베이스의 데이터 내용들을 저장할수 있기 때문이다.

선택할 수 있는 스토리지 유형은 다음과 같다.

  • 범용(SSD) 스토리지
  • 프로비저닝된 IOPS(SSD) 스토리지
  • 마그네틱

만일 범용(SSD) 스토리지를 선택할 경우, 스토리지 자동 조정 옵션을 설정할수 있는데,

스토리지 자동 조정 기능은 처리량이 급증하여 DB 여유공간이 부족할 때, 자동으로 스토리지를 확장하는 기능이다. 

EC2의 Auto scaling 서비스의 RDS 버젼이라고 보면 된다.

최대 스토리지 임계값은 해당 DB 인스턴스가 자동으로 확장할 수 있는 제한 값이다.

 

이번 시간은 구축 연습이니 가장 값싼 마그네틱을 선택해준다.

참고로 프리티어의 스토리지 최대 할당량은 20GB이다.

 

 

5. 멀티 AZ 예비 인스턴스 생성

다중 AZ 배포를 설정하면, DB 인스턴스에 고가용성과 장애 조치 기능을 지원하게 설정할수 있다.

 

 

6. VPC 전반 설정

RDS 인스턴스도 일종의 EC2 인스턴스이다.

EC2를 만들때 VPC에 위치시켜준 것처럼 RDS도 세팅하는 것으로 이해하면 된다.

  • VPC / 서브넷그룹 : VPC가 구성되어 있다면 선택해주고, Default를 사용해도 무방하다.
    EC2 인스턴스와 연동할 경우 동일한 곳에 설치하는 것이 일반적이다.
  • 퍼블릭 액세스 가능 : 데이터베이스 인스턴스에 공인 IP 주소를 할당할지 여부를 나타낸다.
    외부에서 MySQL 워크벤치에 적속할 예정이므로 활성화를 한다.
  • VPC 보안 그룹 : 퍼블릭 엑세시 가능을 설정하게 되면, 인/아웃바운드 규칙이 정의된 보안 그룹을 설정해야한다.
  • 포트 : MySQL 기본 포트인 3306을 사용

 

 

7. 데이터베이스 암호화 형식 설정

전시간에서 배운 RDS 암호화 인증 방식 3가지중 고를 수 있다.

아이디/패스워드 식 암호 인증을 선택해준다.

 

 

8. 추가 구성 설정하기

추가 구성은 그냥 넘어가도 되지만 하는것을 권장한다.

그 이유는 초기 데이터베이스 이름을 지정해야 하기 때문이다.

그외 백업 옵션 같은 나머지는 디폴트로 두고 넘어간다. 나중에 수정이 가능하다.

 

 

9. RDS 요금 미리보기

멀티 AZ 인프라 구성을 구축했기에, 예비 Stanby 인스턴스가 지속적으로 돌아가게되어 인스턴스 요금이 2배로 청구되는걸 볼 수 있다.

설정이 완료되었으면 데이터베이스 생성 버튼을 누른다.

데이터베이스가 만들어지는데 꽤 시간이 걸리니 느긋하게 기다려 주자.

 

 

10. 생성한 데이터베이스 암호 보기

우측 상단의 자격 증명 세부 정보 보기를 누르면, 마스터 암호가 나오게 된다.

마스터 사용자 이름과 마스터 암호를 이용해서 데이터베이스에 접속할수 있게 된다.

 

 

 

EC2에서 RDS 접근하기

EC2 CLI에 접속해서 mysql 접속 명령어를 입력하면 RDS에 접속할수 있게 된다.

 


RDS fail-over 테스트

멀티 AZ 환경에서 Primary 데이터베이스 인스턴스가 죽을 경우, fail over(장애복구)가 잘 되는지 테스트 해보자.

 

 

우선 같은 VPC내 EC2 인스턴스에 접속해보자.

그리고 다음 명령어를 쳐보자

생성한 RDS 인스턴스의 mydb.cauufra5lcmt.ap-northeast-2.rds.amazonaws.com 엔드포인트가 어떤 인스턴스를 가리키고 있는지 1초마다 인스턴스 DNS를 무한 반복으로 출력하는 명령어 이다.

이를 통해 DNS가 어떤 RDS 인스턴스를 가리키고 있는지 알수 있다.

 
# while true; do host <데이터베이스 엔드포인트> | grep alias; sleep 1; done
 
$ while true; do host mydb.cauufra5lcmt.ap-northeast-2.rds.amazonaws.com | grep alias; sleep 1; done

위 사진에서 보듯이, ec2-3-34-214-137 이라는 인스턴스 DNS를 가리키고 있다는 걸 알 수 있다.

 

그럼 데이터베이스 인스턴스를 재부팅 해보자.

직접 데이터베이스 서버를 죽일수 없으니, 마치 장애 때문에 Primary 인스턴스가 떨어져 나가는 시나리오를 재부팅을 통해 진행할수 있다.

 

재부팅을 하고 좀 기다려주면, 터미널에 다음과 같이 ec2 아이디가 ec2-3-36-142-48로 바뀜을 확인 할 수 있다.

이것이 fail over를 통해 RDS 인스턴스의 DNS를 Stanby 인스턴스에게 자동으로 연결됨을 보여주는 것이다.

 

 


 

 

이번 시간 다루어보았던 내용은 어떠셨나요?

failover에 대해서도 알고있으면 좋겠죠~?

수고하셨습니다

수지타산은 알찬 내용으로 돌아올게요

다음 시간도 저희와 함께해요

제에에에에바아아아아아아알 ~

 

'CSP (Cloud Service Provider) > AWS' 카테고리의 다른 글

API와 API Gateway(2)  (0) 2022.10.20
MAP 결과 보고서 작성 요령 - MPA  (0) 2022.10.19
AWS Scheduled Instance Event  (0) 2022.10.14
AWS Resource Access Manager  (0) 2022.10.12
[AWS] RDS  (0) 2022.10.09

댓글