Amazon RDS의 MySQL - Amazon Relational Database Service

Amazon RDS의 MySQL

Amazon RDS는 여러 MySQL 버전을 실행하는 DB 인스턴스를 지원합니다. 다음 메이저 버전을 사용할 수 있습니다.

  • MySQL 8.0

  • MySQL 5.7

  • MySQL 5.6(2022년 2월 1일에 중단 예정)

마이너 버전 지원에 대한 자세한 내용은 Amazon RDS의 MySQL 버전 단원을 참조하십시오.

사용자는 먼저 Amazon RDS 관리 도구 또는 Amazon RDS for MySQL DB 인스턴스를 생성합니다. 그런 다음 DB 인스턴스 크기 조정, DB 인스턴스에 대한 연결 인증, 백업 또는 스냅샷 생성 및 복원, 다중 AZ 보조 생성, 읽기 전용 복제본 생성 및 DB 인스턴스의 성능 모니터링이 가능합니다. 표준 MySQL 유틸리티 및 애플리케이션을 사용하여 DB 인스턴스에서 데이터를 저장하고 데이터에 액세스할 수 있습니다.

Amazon RDS for MySQL은 다수의 산업 표준을 준수합니다. 예를 들어, RDS for MySQL 데이터베이스를 사용하여 HIPAA 준수 애플리케이션을 빌드하고 AWS와 체결한 비즈니스 제휴 계약(BAA)에 따라 보호 대상 건강 정보(PHI)를 비롯한 의료 관련 정보를 저장할 수 있습니다. 또한 Amazon RDS for MySQL은 FedRAMP(연방 위험 및 인증 관리 프로그램) 보안 요건을 충족하며 FedRAMP 공동 승인 위원회(JAB)로부터 AWS GovCloud (US) 리전 내 FedRAMP HIGH Baseline 수준의 잠정적 운영 권한(P-ATO)을 취득했습니다. 지원되는 규정 준수 표준에 대한 자세한 내용은 AWS 클라우드 규정 준수를 참조하세요.

MySQL의 각 버전의 기능에 대한 내용은 MySQL 설명서의 MySQL의 기본 기능 단원을 참조하십시오.

Amazon RDS for MySQL에 대한 일반적인 관리 작업

다음은 RDS for MySQL DB 인스턴스로 수행하는 일반적인 관리 작업과 각 작업에 해당하는 설명서 링크입니다.

작업 영역 관련 설명서

Amazon RDS 이해

DB 인스턴스, AWS 리전, 가용 영역, 보안 그룹, 파라미터 그룹, 옵션 그룹 등 Amazon RDS의 핵심 구성 요소를 이해합니다.

Amazon Relational Database Service(Amazon RDS)란 무엇입니까?

처음 사용 시 Amazon RDS 설정

Amazon Web Services(AWS)에서 MySQL DB 인스턴스를 생성할 수 있도록 Amazon RDS를 설정합니다.

Amazon RDS에 대한 설정

Amazon RDS DB 인스턴스 이해

AWS에서 실행되는 가상 MySQL 서버 인스턴스를 생성합니다. DB 인스턴스는 Amazon RDS의 기본 구성 요소이므로 해당 원칙을 이해하는 것이 좋습니다.

Amazon RDS DB 인스턴스

프로덕션용 DB 인스턴스 만들기

프로덕션 목적으로 DB 인스턴스를 생성합니다. 인스턴스 생성 과정에서는 적절한 처리 기능과 메모리 용량을 가진 DB 인스턴스 클래스를 선택하고 데이터베이스 사용 방법에 맞는 스토리지 유형을 선택합니다.

DB 인스턴스 클래스

Amazon RDS 스토리지 유형

Amazon RDS DB 인스턴스 생성

DB 인스턴스의 보안 관리

기본적으로, DB 인스턴스와 함께 인스턴스에 대한 액세스를 막는 방화벽도 생성됩니다. 따라서 DB 인스턴스에 액세스하기 위한 알맞은 IP 주소와 네트워크 구성으로 보안 그룹을 만들어야 합니다. RDS 리소스를 관리할 수 있는 사용자를 결정하는 권한을 배정하는 데 AWS Identity and Access Management(IAM) 정책을 사용할 수도 있습니다.

Amazon RDS의 보안

정책을 사용하여 액세스 관리

보안 그룹을 통한 액세스 제어

EC2-VPC 또는 EC2-Classic 플랫폼을 사용 중인지 확인

DB 인스턴스에 연결

MySQL 명령줄 유틸리티 또는 MySQL Workbench와 같은 표준 SQL 클라이언트 애플리케이션을 사용하여 DB 인스턴스에 연결합니다.

MySQL 데이터베이스 엔진 기반 DB 인스턴스에 연결하기

프로덕션 DB 인스턴스에 대해 고가용성 구성

다른 가용 영역의 동기식 예비 복제본, 자동 장애 조치, 다중 AZ 배포를 통한 DB 인스턴스의 내결함성, 읽기 전용 복제본을 통해 고가용성을 제공합니다.

Amazon RDS를 위한 고가용성(다중 AZ)

Amazon Virtual Private Cloud에 DB 인스턴스 구성

Amazon VPC 서비스에서 Virtual Private Cloud(VPC)를 구성합니다. Amazon VPC는 AWS 내 다른 가상 네트워크에서 논리적으로 격리된 가상 네트워크입니다.

EC2-VPC 또는 EC2-Classic 플랫폼을 사용 중인지 확인

VPC에서 DB 인스턴스를 사용한 작업

특정 MySQL 데이터베이스 파라미터 및 기능 구성

많은 DB 인스턴스와 연결 가능한 파라미터 그룹을 사용하여 특정 MySQL 데이터베이스 파라미터를 구성합니다. 많은 DB 인스턴스와 연결 가능한 옵션 그룹을 사용하여 특정 MySQL 데이터베이스 기능을 구성할 수도 있습니다.

DB 파라미터 그룹 작업

옵션 그룹 작업

MySQL DB 인스턴스 옵션

MySQL 데이터베이스 엔진 기반 DB 인스턴스의 변경

추가 스토리지를 더하거나 DB 인스턴스 클래스를 변경하는 것과 같은 작업을 완수하기 위해 DB 인스턴스의 설정을 변경합니다.

Amazon RDS DB 인스턴스 수정

데이터베이스 백업 및 복원 구성

자동 백업을 수행하도록 DB 인스턴스를 구성합니다. 또한 전체 백업 파일을 사용하여 데이터베이스를 수동으로 백업 및 복원할 수도 있습니다.

백업 작업

Amazon RDS DB 인스턴스 백업 및 복원

데이터 가져오기 및 내보내기

다른 MySQL DB 인스턴스, Amazon RDS 외부에서 실행 중인 MySQL 인스턴스 및 기타 유형의 데이터 소스에서 데이터를 가져오고, Amazon RDS 외부에서 실행 중인 MySQL 인스턴스로 데이터를 내보냅니다.

MySQL DB 인스턴스로 백업 복원

MySQL DB 인스턴스 모니터링

Amazon CloudWatch RDS 지표, 이벤트 및 향상된 모니터링 기능을 통해 MySQL DB 인스턴스를 모니터링합니다. MySQL DB 인스턴스에 대한 로그 파일을 봅니다.

Amazon RDS DB 인스턴스 모니터링

DB 인스턴스 지표 보기

Amazon RDS 이벤트 보기

Amazon RDS 데이터베이스 로그 파일 작업

MySQL 데이터베이스 로그 파일

데이터 복제

동일한 AWS 리전 또는 다른 리전에서 MySQL 읽기 전용 복제본을 생성합니다. 로드 밸런싱, 재해 복구, 읽기 중심의 데이터베이스 워크로드 처리(예: 분석 및 보고) 등을 위해 읽기 전용 복제본을 사용할 수 있습니다.

읽기 전용 복제본 작업

Amazon RDS 외부에서 실행 중인 MySQL 또는 MariaDB 인스턴스를 사용한 복제

또한 MySQL DB 인스턴스 작업에 대한 유용한 정보가 여러 섹션에 수록되어 있습니다.

Amazon RDS의 MySQL 버전

MySQL의 경우 버전 번호는 버전 = X.Y.Z로 구성됩니다. Amazon RDS 용어에서 X.Y는 메이저 버전을 나타내고 Z는 마이너 버전 번호를 나타냅니다. Amazon RDS 구현을 위해서, 메이저 버전 번호가 변경될 경우—(예: 버전 5.7에서 8.0으로) 이를 메이저 버전 변경으로 간주합니다. 단지 마이너 버전 번호가 변경된 경우(예: 버전 5.7.16에서 5.7.21로)에는 마이너 버전 변경으로 간주합니다.

Amazon RDS에서는 현재 다음과 같은 MySQL 버전을 지원합니다.

메이저 버전 마이너 버전

MySQL 8.0

  • 8.0.25

  • 8.0.23

  • 8.0.21

  • 8.0.20

  • 8.0.19

  • 8.0.17

  • 8.0.16

  • 8.0.15

  • 8.0.13

  • 8.0.11

MySQL 5.7

  • 5.7.34

  • 5.7.33

  • 5.7.31

  • 5.7.30

  • 5.7.28

  • 5.7.26

  • 5.7.25

  • 5.7.24

  • 5.7.23

  • 5.7.22

  • 5.7.21

  • 5.7.19

  • 5.7.17

  • 5.7.16

MySQL 5.6

  • 5.6.51

  • 5.6.49

  • 5.6.48

  • 5.6.46

  • 5.6.44

  • 5.6.43

  • 5.6.41

  • 5.6.40

  • 5.6.39

  • 5.6.37

  • 5.6.35

  • 5.6.34

새 DB 인스턴스를 생성할 때는 현재 지원되는 모든 MySQL 버전을 지정할 수 있습니다. 메이저 버전(예: MySQL 5.7) 및 지정된 메이저 버전에 대해 지원되는 모든 마이너 버전을 지정할 수 있습니다. 버전이 지정되지 않은 경우 Amazon RDS는 지원되는 버전(보통 최신 버전)을 기본값으로 설정합니다. 메이저 버전이 지정되었지만 마이너 버전이 지정되지 않은 경우, Amazon RDS는 고객이 지정한 메이저 버전의 최근 릴리스를 기본값으로 설정합니다. 지원되는 버전 목록과 새로 만든 DB 인스턴스의 기본값을 보려면 describe-db-engine-versions AWS CLI 명령을 사용합니다.

기본 MySQL 버전은 AWS 리전에 따라 다를 수 있습니다. 특정 마이너 버전으로 DB 인스턴스를 생성하려면 DB 인스턴스 생성 중에 마이너 버전을 지정합니다. 다음 AWS 명령을 사용하여 AWS CLI 리전의 기본 마이너 버전을 확인할 수 있습니다.

aws rds describe-db-engine-versions --default-only --engine mysql --engine-version major-engine-version --region region --query "*[].{Engine:Engine,EngineVersion:EngineVersion}" --output text

major-engine-version을 메이저 엔진 버전으로 바꾸고 리전을 AWS 리전으로 바꿉니다. 예를 들어 다음 AWS CLI 명령은 5.7 메이저 버전과 미국 서부(오레곤) AWS 리전(us-west-2)에 대한 기본 MySQL 마이너 엔진 버전을 반환합니다.

aws rds describe-db-engine-versions --default-only --engine mysql --engine-version 5.7 --region us-west-2 --query '*[].{Engine:Engine,EngineVersion:EngineVersion}' --output text

Amazon RDS를 통해 사용자는 MySQL 인스턴스를 Amazon RDS가 지원하는 새 메이저 버전으로 언제 업그레이드할지를 제어합니다. 특정 MySQL 버전과의 호환성을 유지하고, 프로덕션 환경에 배포하기 전에 애플리케이션으로 새 버전을 테스트하고, 가장 원하는 일정에 맞춰 메이저 버전 업그레이드를 수행할 수 있습니다.

자동 마이너 버전 업그레이드가 활성화되는 경우, 새 MySQL 마이너 버전이 Amazon RDS에서 지원되면 DB 인스턴스가 새 MySQL 마이너 버전으로 자동 업그레이드됩니다. 이 패치는 예약 유지보수 중에 발생합니다. DB 인스턴스를 수정하여 자동 마이너 버전 업그레이드를 활성화 또는 비활성화할 수 있습니다.

자동으로 예약된 업그레이드를 사용하지 않기로 선택한 경우, 사용자는 메이저 버전 업데이트를 위해 선택한 것과 동일한 프로시저에 따라 지원되는 마이너 버전 릴리스로 수동으로 업그레이드할 수 있습니다. 자세한 정보는 DB 인스턴스 엔진 버전 업그레이드 섹션을 참조하세요.

Amazon RDS는 현재 MySQL 버전 5.6에서 버전 5.7로, 그리고 MySQL 버전 5.7에서 버전 8.0으로의 메이저 버전 업그레이드를 지원합니다. 메이저 버전 업그레이드에 약간의 호환성 위험이 수반되므로 업그레이드가 자동으로 이루어지지 않습니다. 즉, DB 인스턴스 수정을 요청해야 합니다. 프로덕션 인스턴스를 업그레이드하기 전에 모든 업그레이드를 철저하게 테스트해야 합니다. MySQL DB 인스턴스 업그레이드에 대한 자세한 내용은 MySQL DB 엔진 업그레이드를 참조하십시오.

기존 DB 인스턴스의 DB 스냅샷을 만들고 DB 스냅샷에서 복구해 새 DB 인스턴스를 만든 다음 새로운 DB 인스턴스에 대한 버전 업그레이드를 시작함으로써, 업그레이드하기 전에 새 버전과 비교하여 DB 인스턴스를 테스트할 수 있습니다. 그런 다음 원래의 DB 인스턴스에 대한 업그레이드 여부를 결정하기 전에 DB 인스턴스의 업그레이드된 복제본에서 안전하게 실험을 진행할 수 있습니다.

MySQL 버전 5.6의 사용 중단

2022년 2월 1일에 Amazon RDS는 업그레이드 권장 사항을 포함하여 다음 일정에 따라 MySQL 5.6에 대한 지원을 중단할 계획입니다. 가능한 빨리 MySQL 5.6 DB 인스턴스를 MySQL 5.7 이상으로 업그레이드하는 것이 좋습니다. 자세한 내용은 MySQL DB 엔진 업그레이드 섹션을 참조하세요.

작업 또는 권장 사항 날짜

MySQL 5.6 DB 인스턴스를 선택한 버전으로 수동으로 업그레이드하는 것이 좋습니다.

현재~2022년 2월 1일

MySQL 5.6 스냅샷을 선택한 버전으로 수동으로 업그레이드하는 것이 좋습니다.

현재~2022년 2월 1일

더 이상 새로운 MySQL 5.6 DB 인스턴스를 생성할 수 없습니다.

2022년 2월 1일

Amazon RDS은(는) MySQL 5.6 DB 인스턴스를 버전 5.7로 자동 업그레이드하는 작업을 시작합니다.

2022년 3월 1일

Amazon RDS은(는) 스냅샷에서 복원된 모든 MySQL 5.6 DB 인스턴스에 대해 버전 5.7로 자동 업그레이드하는 작업을 시작합니다.

2022년 3월 1일

Amazon RDS for MySQL 5.6 사용 중단에 대한 자세한 내용은 공지: Amazon RDS for MySQL 5.6의 수명 종료 프로세스 연장을 참조하세요.

Amazon RDS가 지원하지 않는 MySQL 기능

Amazon RDS는 현재 다음과 같은 MySQL 기능은 지원하지 않습니다.

  • 인증 플러그인

  • 시스템 로그에 오류 로깅

  • 그룹 복제 플러그인

  • InnoDB Tablespace 암호화

  • 암호 보안 수준 플러그인

  • 지속된 시스템 변수

  • 반동기식 복제

  • 전송 가능한 테이블스페이스

  • X 플러그인

참고

글로벌 트랜잭션 ID는 MySQL 5.7.23 및 MySQL 5.7 이후 버전에서 지원됩니다. 글로벌 트랜잭션 ID는 RDS for MySQL 5.6 또는 8.0 버전에서 지원되지 않습니다.

관리형 서비스 환경을 제공하기 위해 Amazon RDS는 DB 인스턴스에 대해 shell 액세스를 제공하지 않습니다. 또한 고급 권한이 필요한 특정 시스템 절차와 테이블에 대한 액세스를 제한합니다. Amazon RDS는 표준 SQL 클라이언트 애플리케이션을 사용하여 DB 인스턴스의 데이터베이스에 대한 액세스를 지원합니다. Amazon RDS는 Telnet, SSH(보안 셸) 또는 Windows 원격 데스크톱 연결을 사용하여 DB 인스턴스에 대한 직접적인 호스트 액세스를 허용하지 않습니다. DB 인스턴스를 생성할 때 사용자는 해당 인스턴스의 모든 데이터베이스에 대한 db_owner 역할을 할당받게 되며, 백업을 위해 사용된 권한을 제외한 모든 데이터베이스 수준의 권한을 갖게 됩니다. Amazon RDS는 백업을 관리합니다.

RDS for MySQL에 대해 지원되는 스토리지 엔진

MySQL은 다양한 기능으로 여러 스토리지 엔진을 지원하지만, 모든 기능이 복구와 데이터 내구성에 최적화되어 있지는 않습니다. Amazon RDS는 MySQL DB 인스턴스용 InnoDB 스토리지 엔진을 완전히 지원합니다. 특정 시점 복원 및 스냅샷 복원과 같은 Amazon RDS 기능은 복구 가능한 스토리지 엔진이 필요하며 InnoDB 스토리지 엔진에서만 지원됩니다. InnoDB memcached 인터페이스를 사용하려면 MySQL 5.6 이상의 인스턴스를 실행하고 있어야 합니다. 자세한 내용은 MySQL memcached 지원 섹션을 참조하세요.

MySQL을 위한 외부 스토리지 엔진은 현재 Amazon RDS에서 지원되지 않습니다.

사용자가 생성한 스키마의 경우 MyISAM 스토리지 엔진이 안정적인 복구를 지원하지 않으며 복구 후에 MySQL을 다시 시작할 때 데이터가 손실되거나 손상되어 특정 시점으로 복원 또는 스냅샷 복원 기능이 계획대로 작동하지 않을 수 있습니다. 그래도 Amazon RDS에서 MyISAM을 사용하기로 선택한 경우, 일부 조건에서는 스냅샷이 유용할 수 있습니다.

참고

mysql 스키마의 시스템 테이블은 MyISAM 스토리지에 있을 수 있습니다.

기존 MyISAM 테이블을 InnoDB 테이블로 변환하려는 경우 ALTER TABLE명령(예, alter table TABLE_NAME engine=innodb;)을 사용하면 됩니다. MyISAM과 InnoDB는 각기 다른 장점과 단점을 갖고 있으므로 전환하기 전에 전환이 현재 애플리케이션에 미치는 영향을 충분히 평가해야 합니다.

MySQL 5.1 및 5.5는 Amazon RDS에서 더 이상 지원되지 않습니다. 그러나 기존의 MySQL 5.1 및 5.5 스냅샷을 복원할 수는 있습니다. MySQL 5.1 또는 5.5 스냅샷을 복원하는 경우 DB 인스턴스가 자동으로 MySQL 5.6으로 업그레이드됩니다.

Amazon RDS for MySQL에 대해 스토리지가 가득 찬 동작

MySQL DB 인스턴스의 스토리지가 가득 차면 메타데이터 불일치, 사전 불일치 및 고아 테이블이 발생할 수 있습니다. 이러한 문제를 방지하기 위해 Amazon RDS에서는 storage-full 상태에 도달한 DB 인스턴스를 자동으로 중지합니다.

MySQL DB 인스턴스는 다음과 같은 경우에 storage-full 상태에 도달합니다.

  • DB 인스턴스의 스토리지는 20,000MiB 미만이며 사용 가능한 스토리지는 200MiB 이하에 이릅니다.

  • DB 인스턴스에는 102,400MiB 이상의 스토리지가 있으며 사용 가능한 스토리지는 1024MiB 이하에 이릅니다.

  • DB 인스턴스의 스토리지는 20,000MiB에서 102,400MiB 사이이며 사용 가능한 스토리지의 1% 미만입니다.

DB 인스턴스가 storage-full 상태에 도달했기 때문에 Amazon RDS에서 DB 인스턴스를 자동으로 중지하더라도 DB 인스턴스를 변경할 수 있습니다. DB 인스턴스를 다시 시작하려면 다음 중 하나 이상을 완료하세요.

이러한 변경 사항 중 하나를 수행한 후에는 DB 인스턴스가 자동으로 다시 시작됩니다. DB 인스턴스 수정에 대한 자세한 내용은 Amazon RDS DB 인스턴스 수정 단원을 참조하십시오.

Amazon RDS MySQL 보안

MySQL DB 인스턴스용 보안은 세 가지 수준에서 관리됩니다.

  • AWS Identity and Access Management는 DB 인스턴스에서 Amazon RDS 관리 작업을 수행할 수 있는 사용자를 제어합니다. IAM 자격 증명을 사용하여 AWS에 연결할 때, IAM 계정은 Amazon RDS 관리 작업을 수행하는 데 필요한 권한을 부여하는 IAM 정책을 보유하고 있어야 합니다. 자세한 내용은 Amazon RDS의 자격 증명 및 액세스 관리 섹션을 참조하세요.

  • DB 인스턴스를 생성할 때는 VPC 보안 그룹 또는 DB 보안 그룹을 사용하여 어떤 디바이스 및 Amazon EC2 인스턴스가 DB 인스턴스의 엔드포인트 및 포트에 대한 연결을 열 수 있는 지를 제어합니다. 이러한 연결은 Secure Socket Layer(SSL)를 이용해 이루어질 수 있습니다. 또한 회사의 방화벽 규칙을 통해 회사에서 실행하는 디바이스가 DB 인스턴스에 대한 연결을 열 수 있는지를 제어할 수 있습니다.

  • MySQL DB 인스턴스에 대한 로그인 및 권한을 인증하기 위해서는 다음 접근 방식 중 하나를 따르거나 두 방식을 조합할 수 있습니다.

    독립형 MySQL 인스턴스와 동일한 접근법을 사용할 수 있습니다. CREATE USER, RENAME USER, GRANT, REVOKESET PASSWORD 등의 명령은 온프레미스 데이터베이스에서 작동하는 것과 마찬가지로 작동하며, 데이터베이스 스키마 테이블을 직접 수정할 때도 동일합니다. 자세한 내용은 MySQL 설명서의 Access Control and Account Management를 참조하십시오.

    또한 IAM 데이터베이스 인증을 사용할 수도 있습니다. IAM 데이터베이스 인증의 경우, IAM 사용자 또는 IAM 역할 및 인증 토큰을 이용해 DB 인스턴스에 인증합니다. 인증 토큰은 서명 버전 4 서명 프로세스를 통해 생성하는 고유 값입니다. IAM 데이터베이스 인증을 사용하면 동일한 자격 증명을 사용해 AWS 리소스 및 데이터베이스에 대한 액세스를 제어할 수 있습니다. 자세한 내용은 MySQL 및 PostgreSQL을 위한 IAM 데이터베이스 인증 섹션을 참조하세요.

Amazon RDS DB 인스턴스를 생성할 때 마스터 사용자는 다음과 같은 기본 권한을 갖습니다.

  • alter

  • alter routine

  • create

  • create routine

  • create temporary tables

  • create user

  • create view

  • delete

  • drop

  • event

  • execute

  • grant option

  • index

  • insert

  • lock tables

  • process

  • references

  • replication client

  • replication slave (MySQL 5.6 and later)

  • select

  • show databases

  • show view

  • trigger

  • update

참고

DB 인스턴스에서 마스터 사용자를 삭제할 수 있지만, 권장하지는 않습니다. 마스터 사용자를 다시 생성하려면 ModifyDBInstance RDS API 작업 또는 modify-db-instance AWS CLI 명령을 사용하고 적절한 파라미터와 함께 새 마스터 사용자 암호를 지정합니다. 마스터 사용자가 인스턴스에 존재하지 않는 경우 마스터 사용자가 지정된 암호와 함께 생성됩니다.

각 DB 인스턴스에 관리 서비스를 제공하기 위해 DB 인스턴스가 생성될 때 rdsadmin 사용자가 만들어집니다. rdsadmin 계정에 대한 암호를 삭제하거나 이름 바꾸기를 하거나 변경하려고 시도하면 또는 권한을 변경하려고 시도하면 오류가 발생합니다.

DB 인스턴스의 관리를 허용하기 위해 표준 killkill_query 명령이 제한되었습니다. DB 인스턴스에서 사용자 세션 또는 쿼리를 종료할 수 있도록 Amazon RDS 명령 rds_killrds_kill_query가 제공됩니다.

암호 확인 플러그인 사용

MySQL은 향상된 보안을 위한 validate_password 플러그인을 제공합니다. 이 플러그인은 MySQL DB 인스턴스의 DB 파라미터 그룹에 있는 파라미터를 사용하여 암호 정책을 적용합니다. 이 플러그인은 MySQL 버전 5.6, 5.7 및 8.0을 실행하는 DB 인스턴스에 지원됩니다. validate_password 플러그인에 대한 자세한 내용은 MySQL 설명서의 암호 확인 플러그인을 참조하십시오.

MySQL DB 인스턴스에 validate_password 플러그인을 활성화하려면

  1. MySQL DB 인스턴스에 연결하고 다음 명령을 실행합니다.

    INSTALL PLUGIN validate_password SONAME 'validate_password.so';
  2. DB 인스턴스에서 사용하는 DB 파라미터 그룹에 플러그인에 대한 파라미터를 구성하면 됩니다.

    파라미터에 대한 자세한 내용은 MySQL 설명서의 암호 확인 플러그인 옵션 및 변수를 참조하십시오.

    DB 인스턴스 파라미터 수정에 대한 자세한 정보는 DB 파라미터 그룹의 파라미터 수정 단원을 참조하십시오.

password_validate 플러그인을 설치하고 활성화한 후 새 확인 정책을 준수하도록 기존 암호를 재설정하십시오.

Amazon RDS는 암호를 확인하지 않습니다. MySQL DB 인스턴스는 암호 확인을 수행합니다. AWS Management Console, modify-db-instance AWS CLI 명령 또는 ModifyDBInstance RDS API 작업을 사용하여 사용자 암호를 설정하면 새 암호가 암호 정책에 부합하지 않아도 변경 작업이 완료될 수 있습니다. 그러나 새로운 암호는 암호 정책에 부합하는 경우에만 MySQL DB 인스턴스에 설정됩니다. 이 경우, Amazon RDS는 다음 이벤트를 기록합니다.

"RDS-EVENT-0067" - An attempt to reset the master password for the DB instance has failed.

Amazon RDS 이벤트에 대한 자세한 내용은 Amazon RDS 이벤트 알림 서비스 사용 단원을 참조하십시오.

MySQL DB 인스턴스와 함께 SSL 사용

Amazon RDS는 MySQL 데이터베이스 엔진을 실행하는 DB 인스턴스와의 Secure Sockets Layer(SSL) 연결을 지원합니다.

Amazon RDS가 SSL 인증서를 생성한 후 Amazon RDS가 인스턴스를 프로비저닝할 때 DB 인스턴스에 인증서를 설치합니다. 인증 기관이 서명하는 SSL 인증서에는 SSL 인증서에는 스푸핑 공격으로부터 보호해주는 SSL 인증서를 위한 일반 이름(CN)으로 DB 인스턴스 엔드포인트가 포함되어 있습니다.

Amazon RDS에서 생성하는 SSL 인증서는 신뢰할 수 있는 루트 개체이므로 대부분의 경우에 작동하지만 애플리케이션에서 인증서 체인을 수락하지 않을 경우 실패할 수 있습니다. 애플리케이션에서 인증서 체인을 허용하지 않는 경우 중간 인증서를 사용하여 자신의 AWS 리전에 연결해야 할 수도 있습니다. 예를 들어 SSL을 사용하여 AWS GovCloud (US) 리전에 연결하려면 중간 인증서를 사용해야 합니다.

인증서 다운로드에 대한 자세한 내용은 SSL/TLS를 사용하여 DB instance 연결 암호화 단원을 참조하십시오. MySQL에서 SSL을 사용하는 방법에 대한 자세한 내용은 새 SSL/TLS 인증서를 사용해 MySQL DB 인스턴스에 연결할 애플리케이션 업데이트 단원을 참조하십시오.

MySQL은 다음과 같은 버전에서 보안 연결을 위해 yaSSL을 사용합니다.

  • MySQL 버전 5.7.19 및 5.7 이전 버전

  • MySQL 버전 5.6.37 및 5.6 이전 버전

MySQL은 다음과 같은 버전에서 보안 연결을 위해 OpenSSL을 사용합니다.

  • MySQL 버전 8.0

  • MySQL 버전 5.7.21 및 5.7 이후 버전

  • MySQL 버전 5.6.39 및 5.6 이후 버전

Amazon RDS for MySQL은 TLS(전송 계층 보안) 버전 1.0, 1.1 및 1.2를 지원하지 않습니다. 다음 표는 MySQL 버전에 대한 TLS 지원을 보여줍니다.

MySQL 버전 TLS 1.0 TLS 1.1 TLS 1.2

MySQL 8.0

지원

지원

지원

MySQL 5.7

지원

지원

MySQL 5.7.21 및 이후 버전에서 지원됨

MySQL 5.6

지원

MySQL 5.6.46 및 이후 버전에서 지원됨

MySQL 5.6.46 및 이후 버전에서 지원됨

기본 mysql 클라이언트를 사용하여 연결을 암호화하려면 --ssl-ca 파라미터를 사용하여 mysql 클라이언트를 시작하고 다음 예제와 같이 퍼블릭 키를 참조하십시오.

다음 예제는 MySQL 5.7 이후 버전의 경우 --ssl-ca 파라미터를 사용하여 클라이언트를 시작하는 방법을 보여줍니다.

mysql -h myinstance.c9akciq32.rds-us-east-1.amazonaws.com --ssl-ca=[full path]rds-combined-ca-bundle.pem --ssl-mode=VERIFY_IDENTITY

다음 예제는 MySQL 5.6 이전 버전의 경우 --ssl-ca 파라미터를 사용하여 클라이언트를 시작하는 방법을 보여줍니다.

mysql -h myinstance.c9akciq32.rds-us-east-1.amazonaws.com --ssl-ca=[full path]rds-combined-ca-bundle.pem --ssl-verify-server-cert

인증서 번들 다운로드에 대한 자세한 내용은 SSL/TLS를 사용하여 DB instance 연결 암호화 섹션을 참조하세요.

특정 사용자 계정에 대한 SSL 연결을 요구할 수 있습니다. 예를 들면 MySQL 버전에 따라 다음 문 중 하나를 사용하여 사용자 계정 encrypted_user에 대한 SSL 연결을 요구할 수 있습니다.

MySQL 5.7 및 이후 버전에서는 다음 문을 사용하십시오.

ALTER USER 'encrypted_user'@'%' REQUIRE SSL;

MySQL 5.6 및 이전 버전에서는 다음 문을 사용하십시오.

GRANT USAGE ON *.* TO 'encrypted_user'@'%' REQUIRE SSL;

MySQL과의 SSL 연결에 대한 자세한 내용은 MySQL 설명서의 암호화된 연결 사용을 참조하십시오.

MySQL에서 memcached 및 기타 옵션 사용

대부분의 Amazon RDS DB 엔진은 DB 인스턴스 관련 추가 기능을 선택할 수 있도록 옵션 그룹을 지원합니다. MySQL 5.6 이상의 DB 인스턴스는 단순 키 기반 캐시인 memcached 옵션을 지원합니다. memcached 및 기타 옵션에 대한 자세한 내용은 MySQL DB 인스턴스 옵션을 참조하십시오. 옵션 그룹 작업에 대한 자세한 내용은 옵션 그룹 작업 단원을 참조하십시오.

InnoDB 캐시 워밍

InnoDB 캐시 워밍은 DB 인스턴스가 종료될 때 버퍼 풀의 현재 상태를 저장한 다음 DB 인스턴스가 시작될 때 저장된 정보에서 버퍼 풀을 다시 로드하여 MySQL DB 인스턴스의 성능 향상을 제공할 수 있습니다. 이렇게 하면 보통 데이터베이스 사용에서 "준비"까지의 버퍼 풀에 대한 필요를 무시하고, 대신 알려진 공용 쿼리에 대한 페이지와 함께 버퍼 풀을 미리 로드합니다. 저장된 버퍼 풀 정보를 저장하는 파일은 페이지 자체가 아니라 단지 버퍼 풀에 있는 페이지에 대한 메타데이터만 저장합니다. 따라서 파일은 많은 저장 공간을 요구하지 않습니다. 파일 크기는 캐시 크기의 약 0.2%입니다. 예를 들면, 64GiB의 경우 캐시 워밍 파일 크기는 128MiB입니다. InnoDB 캐시 워밍에 대한 자세한 내용은 MySQL 설명서의 버퍼 풀 상태 저장 및 복원을 참조하십시오.

Amazon RDS의 MySQL은 MySQL 버전 5.6 이상에 대한 InnoDB 캐시 워밍을 지원합니다. InnoDB 캐시 워밍을 활성화하려면 innodb_buffer_pool_dump_at_shutdowninnodb_buffer_pool_load_at_startup 파라미터를 DB 인스턴스용 파라미터 그룹에서 1로 설정합니다. 파라미터 그룹에서 이들 파라미터 값을 변경하면 파라미터 그룹을 사용하는 모든 MySQL DB 인스턴스가 영향을 받습니다. 특정 MySQL DB 인스턴스에 대한 InnoDB 캐시 워밍을 활성화하려면, 이들 인스턴스에 대한 새 파라미터 그룹을 생성해야 할 수도 있습니다. 파라미터 그룹에 대한 자세한 내용은 DB 파라미터 그룹 작업 단원을 참조하십시오.

InnoDB 캐시 워밍은 주로 표준 스토리지를 사용하는 DB 인스턴스를 위해 성능 혜택을 제공합니다. PIOPS 스토리지를 사용하는 경우에는 통상적으로 중요한 성능 혜택이 제공되지 않습니다.

중요

MySQL DB 인스턴스가 정상적으로 종료되지 않는 경우(예: 장애 조치 도중), 버퍼 풀 상태가 디스크에 저장되지 않습니다. 이 경우 MySQL은 DB 인스턴스가 다시 시작될 때 이용 가능한 모든 버퍼 풀 파일을 로드합니다. 어떤 손상도 발생하지 않지만, 복원된 버퍼 풀은 대부분의 경우 다시 시작하기 이전의 버퍼 풀 최신 상태를 반영하지 못할 수도 있습니다. 시작 시 InnoDB 캐시를 워밍업하기 위해 버퍼 풀의 최신 상태를 이용할 수 있게 하려면, "요청 시" 버퍼 풀을 주기적으로 덤프하는 것이 좋습니다. DB 인스턴스가 MySQL 버전 5.6.19 이상을 실행하고 있을 경우 요청 시 버퍼 풀을 덤프하거나 로드할 수 있습니다.

이벤트를 생성하여 버퍼 풀을 자동으로 그리고 정기적으로 덤프할 수 있습니다. 예를 들면, 다음 문은 매 시간마다 버퍼 풀을 덤프하는 이름이 periodic_buffer_pool_dump인 이벤트를 생성합니다.

CREATE EVENT periodic_buffer_pool_dump ON SCHEDULE EVERY 1 HOUR DO CALL mysql.rds_innodb_buffer_pool_dump_now();

MySQL 이벤트에 대한 자세한 내용은 MySQL 설명서의 이벤트 구문을 참조하십시오.

요청 시 버퍼 풀 덤핑 및 로딩

MySQL 버전 5.6.19 이상의 경우, "요청 시" InnoDB 캐시를 저장 및 로드할 수 있습니다.

MySQL DB 인스턴스의 현지 시간대

기본적으로 MySQL DB 인스턴스의 시간대는 협정 세계시(UTC)입니다. 대신 DB 인스턴스의 시간대를 애플리케이션의 현지 시간대로 설정할 수 있습니다.

DB 인스턴스의 현지 시간대를 설정하려면 DB 인스턴스의 파라미터 그룹에서 time_zone 파라미터를 이 섹션의 뒤에 나오는 지원되는 값 중 하나로 설정합니다. 파라미터 그룹에 대한 time_zone 파라미터를 설정하면 해당 파라미터 그룹을 사용 중인 모든 DB 인스턴스와 읽기 전용 복제본이 새로운 현지 시간대를 사용하도록 변경됩니다. 파라미터 그룹에서 파라미터를 설정하는 방법에 대한 자세한 내용은 DB 파라미터 그룹 작업 단원을 참조하십시오.

현지 시간대를 설정하면 데이터베이스에 대한 모든 새 연결에 변경 사항이 반영됩니다. 현지 시간대를 변경할 때 데이터베이스에 대해 열린 연결이 있는 경우 연결을 닫고 새 연결을 열어야 현지 시간대 업데이트가 표시됩니다.

DB 인스턴스와 하나 이상의 읽기 전용 복제본에 대해 서로 다른 현지 시간대를 설정할 수 있습니다. 이렇게 하려면 DB 인스턴스와 복제본에 대해 서로 다른 파라미터 그룹을 사용하고 각 파라미터 그룹에서 time_zone 파라미터를 다른 현지 시간대로 설정합니다.

AWS 리전 간 복제 중인 경우 소스 DB 인스턴스와 읽기 전용 복제본은 서로 다른 파라미터 그룹을 사용합니다. 파라미터 그룹은 AWS 리전마다 고유합니다. 각 인스턴스에 대해 동일한 현지 시간대를 사용하려면 인스턴스의 파라미터 그룹과 읽기 전용 복제본의 파라미터 그룹에서 time_zone 파라미터를 설정해야 합니다.

DB 스냅샷에서 DB 인스턴스를 복원할 경우 현지 시간대가 UTC로 설정됩니다. 복원이 완료된 후 시간대를 현지 시간대로 업데이트할 수 있습니다. DB 인스턴스를 특정 시점으로 복원할 경우 복원된 DB 인스턴스의 현지 시간대는 복원된 DB 인스턴스의 파라미터 그룹에서 설정한 시간대입니다.

현지 시간대를 다음 값 중 하나로 설정할 수 있습니다.

Africa/Cairo

Asia/Riyadh

Africa/Casablanca

Asia/Seoul

Africa/Harare

Asia/Shanghai

Africa/Monrovia

Asia/Singapore

Africa/Nairobi

Asia/Taipei

Africa/Tripoli

Asia/Tehran

Africa/Windhoek

Asia/Tokyo

America/Araguaina

Asia/Ulaanbaatar

America/Asuncion

Asia/Vladivostok

America/Bogota

Asia/Yakutsk

America/Buenos_Aires

Asia/Yerevan

America/Caracas

Atlantic/Azores

America/Chihuahua

Australia/Adelaide

America/Cuiaba

Australia/Brisbane

America/Denver

Australia/Darwin

America/Fortaleza

Australia/Hobart

America/Guatemala

Australia/Perth

America/Halifax

Australia/Sydney

America/Manaus

Brazil/East

America/Matamoros

Canada/Newfoundland

America/Monterrey

Canada/Saskatchewan

America/Montevideo

Canada/Yukon

America/Phoenix

Europe/Amsterdam

America/Santiago

Europe/Athens

America/Tijuana

Europe/Dublin

Asia/Amman

Europe/Helsinki

Asia/Ashgabat

Europe/Istanbul

Asia/Baghdad

Europe/Kaliningrad

Asia/Baku

Europe/Moscow

Asia/Bangkok

Europe/Paris

Asia/Beirut

Europe/Prague

Asia/Calcutta

Europe/Sarajevo

Asia/Damascus

Pacific/Auckland

Asia/Dhaka

Pacific/Fiji

Asia/Irkutsk

Pacific/Guam

Asia/Jerusalem

Pacific/Honolulu

Asia/Kabul

Pacific/Samoa

Asia/Karachi

US/Alaska

Asia/Kathmandu

US/Central

Asia/Krasnoyarsk

US/Eastern

Asia/Magadan

US/East-Indiana

Asia/Muscat

US/Pacific

Asia/Novosibirsk

UTC

Amazon RDS for MySQL에 대해 알려진 문제 및 제한

Amazon RDS for MySQL의 MySQL 작업에 대한 알려진 문제 및 제한은 다음과 같습니다. 자세한 내용은 Amazon RDS for MySQL에 대해 알려진 문제 및 제한 섹션을 참조하세요.

더 이상 사용되지 않는 Amazon RDS for MySQL 버전

Amazon RDS for MySQL 버전 5.1 및 5.5는 더 이상 사용되지 않습니다.

Amazon RDS for MySQL 5.5 사용 중단에 대한 자세한 내용은 공지: Amazon RDS for MySQL 5.5의 수명 종료 프로세스 연장을 참조하세요.

MySQL에 대한 Amazon RDS 사용 중단 정책에 대한 자세한 내용은 Amazon RDS FAQ를 참조하세요.