MySQL Workbench로 Aurora Serverless 사용하기

안녕하세요 클레스 메소드 코리아의 서은우 입니다. Aurora Serverless를 외부에서 다루기 위한 방법에 대해서 설명하겠습니다.
2021.11.17

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

들어가기에 앞서

Aurora Serverless는 VPC 외부에서 직접 접근할 수 없습니다. 때문에 MySQLWorkbench 같은 툴을 사용하기 위해서는 다른 방법을 이용해 접속해야합니다. Aurora Serverless에 접속하기 위해서는 2가지 방법이 있습니다.

  1.  Bastion Host를 통해 접속한다 -> 이번에 다룰 내용
  2.  Data API를사용한다

먼저 Bastion Host와 MySQL Workbench를 이용하여 접속하는 방법에 대해 소개해 드리도록 하겠습니다. 그러기 위해서는 Bastion Host 용으로 사용할 EC2 인스턴스와 Aurora Serverless DB 클러스터, MySQL Workbench가 필요합니다.

외부에서 접속해보십니다.

Aurora Serverless DB 클러스터 생성

먼저 Aurora Serverless의 클러스터를 생성해보도록 하겠습니다. 생성 방법은 RDS를 생성할 때와 같습니다. 먼저 RDS 콘솔로 이동하신 후, 대시보드에서 데이터베이스 생성 버튼을 눌러주세요. 그리고 표준생성, 엔진유형은 Amazon Aurora로 선택해 주시면 됩니다.

 

그리고 사진과 같이 MySQL호환 버전과 서버리스 항목을 선택해 주세요. 사용가능한 MySQL 버전은 2개 뿐입니다. 그리고 클러스터 이름과 사용할 마스터 사용자 이름/암호를 입력해주세요.

다음으로는 용량 설정 항목이 있습니다. Aurora Serverless는 기존의 설정이 필요한 DB 인스턴스 타입이 아닌 미리 정의된 ACU(Aurora Capacity Unit)로 컴퓨팅 파워를 자동으로 조정합니다. 1ACU는 2Gb 상당의 램과 그에 상응하는 컴퓨팅 파워로 이루어져있는데요, 용량 조정을 통해 최소 0ACU ~ 최대 256 ACU까지 DB 클러스터가 사용할 ACU를 설정할 수 있습니다.

하지만 용량 단위를 설정할 때 설정 가능한 최소 값은 1ACU인 것을 확인하실 수가 있습니다. 0ACU를 설정하고 싶으신 분들은 추가조정항목에서 클러스터가 유휴상태일때 0ACU로 확장 항목을 체크해주시고 아래의 시간을 설정하시면 해당 시간동안 클러스터로의 연결이 없을 시 자동으로 0ACU로 용량이 변경됩니다.

Aurora Serverless의 Data API를 사용하기 위해서는 추가 설정이 필요합니다. 연결-추가구성 항목에서 데이터API 항목을 체크해주세요. 데이터 API는 지금 구현해볼 Bastion Host를 경유한 경우에는 사용하지 않지만 다음 내용인 Lambda를 통한 Aurora Serverless 사용을 위해서 체크를 해놓도록 하겠습니다 (DB 클러스터 변경을 통해 클러스터 생성 이후에도 변경할 수 있습니다).

보안그룹은 작업을 진행하기 위해 새롭게 생성하도록 하겠습니다. 이것으로 Aurora Serverless 클러스터를 생성하였습니다. 클러스터를 생성이 완료되기 까지 몇 분간은 기다려 주세요.

클러스터 확인

콘솔화면에서 생성 직후의 DB 정보를 보면 현재 용량이 8유닛 용량임을 확인할 수 있습니다.

그리고 설정해두었던 유휴 시간인 5분이 지난 후 DB 정보를 확인해보면 현재 유닛 용량이 0으로 설정한대로 제대로 바뀌어 있음을 확인하실 수 있습니다.

Bastion Host 생성

먼저 MySQL Workbench로 Aurora Serverless로의 접속 여부를 확인해보도록 하겠습니다.

Aurora Serverless에 직접 접속을 하려고 하면 실패하는 것을 확인할 수 있습니다.

접속을 성공시킬 Bastion Host 역할을 할 EC2 인스턴스를 생성하겠습니다. 인스턴스 타입이나 AMI는 자유롭게, Aurora Serverless 클러스터와 동일한 VPC와 SSH 접속이 가능한 보안그룹이 설정되어있는 인스턴스를 생성하면 됩니다.

  • AMI: Amazon Linux 2 AMI (HVM), SSD Volume Type
  • Type: t2.micro
  • VPC: Aurora Serverless 클러스터와 동일 VPC
  • 보안그룹: SSH / 22 / 내 IP 주소

인스턴스 생성 후 Aurora Serverless의 보안그룹을 확인합니다. 보안그룹의 소스 항목에서 Bastion Host 용으로 생성한 EC2 인스턴스의 보안그룹을 대상으로 지정해주세요.

그 후 MySQL Workbench 에서 다음과 같은 연결 설정을 진행합니다.

  • Connection Method: Standard TCP/IP over SSH
  • SSH Hostname: EC2 인스턴스의 퍼블릭 DNS
  • SSH Username: ec2-user
  • SSH Password: 입력하지 않습니다.
  • SSH Key File: 인스턴스 생성시 지정한 .pem 파일
  • MySQL Hostname: Aurora Serverless 클러스터의 엔드포인트
  • MySQL Server Port: 3306
  • Username: Aurora Serverless 클러스터의 마스터 사용자 이름
  • Password: 해당 마스터 사용자의 암호

내용을 정확하게 기입했다면 Test Connection 버튼을 눌러 연결 여부를 확인할 수 있습니다.

이것으로 MySQL Workbench와 Bastion Host를 이용한 Aurora Serverless 접속을 성공하였습니다.

참조

Aurora Serverless 공식 문서