Amazon Aurora Serverless v1 사용 - Amazon Aurora

Amazon Aurora Serverless v1 사용

Amazon Aurora Serverless v1(Amazon Aurora Serverless 버전 1)은 Amazon Aurora에 대한 온디맨드 방식의 자동 크기 조정 구성입니다. Aurora Serverless v1 DB 클러스터는 애플리케이션의 요구 사항에 따라 컴퓨팅 용량을 확장 및 축소하는 DB 클러스터입니다. 이는 용량을 수동으로 관리하는 Aurora 프로비저닝된 DB 클러스터와 대조적입니다. Aurora Serverless v1은 빈도가 낮거나 간헐적이거나 예측할 수 없는 워크로드에 대해 상대적으로 단순하고 비용 효율적인 옵션을 제공합니다. 자동으로 시작하고 애플리케이션의 사용량에 맞춰 컴퓨팅 용량을 확장하고, 사용하지 않는 경우 종료되기 때문에 비용 효율적입니다.

요금에 대한 자세한 내용은 Amazon Aurora pricing 페이지의 MySQL 호환 버전 또는 PostgreSQL 호환 버전에서 Serverless 요금을 참조하세요.

Aurora Serverless v1 클러스터는 프로비저닝된 DB 클러스터에서 사용하는 것과 동일한 유형의 분산된 고가용성 대용량 스토리지 볼륨을 갖습니다.

Aurora Serverless v2 클러스터의 경우 클러스터 볼륨을 암호화할지 여부를 선택할 수 있습니다.

Aurora Serverless v1 클러스터의 경우 클러스터 볼륨은 항상 암호화됩니다. 암호화 키를 선택할 수 있지만 암호화를 비활성화할 수는 없습니다. 즉, 암호화된 스냅샷에서 수행할 수 있는 것과 동일한 작업을 Aurora Serverless v1에서 수행할 수 있습니다. 자세한 내용은 Aurora Serverless v1 및 스냅샷 섹션을 참조하세요.

중요

Aurora에는 2가지 세대의 서버리스 기술인 Aurora Serverless v2 및 Aurora Serverless v1이 있습니다. 애플리케이션이 MySQL 8.0 또는 PostgreSQL 13에서 실행될 수 있는 경우 Aurora Serverless v2를 사용하는 것이 좋습니다. Aurora Serverless v2는 더 빠르고 세분화된 방식으로 확장됩니다. Aurora Serverless v2는 또한 리더 DB 인스턴스와 같은 다른 Aurora 기능과의 호환성이 더 높습니다. 따라서 이미 Aurora에 익숙하다면 Aurora Serverless v2에서처럼 Aurora Serverless v1을 사용하기 위해 많은 새로운 절차나 제한 사항을 배울 필요가 없습니다.

Aurora Serverless v2 사용하기의 Aurora Serverless v2에서 알아볼 수 있습니다.

리전 및 버전 사용 가능 여부

기능 가용성 및 해당 지원은 각 Aurora 데이터베이스 엔진의 특정 버전 및 AWS 리전에 따라 다릅니다. Aurora와 Aurora Serverless v1 버전 및 리전 가용성에 대한 자세한 정보는 Aurora Serverless v1 섹션을 참조하세요.

Aurora Serverless v1의 장점

Aurora Serverless v1의 장점은 다음과 같습니다.

  • 프로비저닝보다 간단 - Aurora Serverless v1은 DB 인스턴스 및 용량 관리의 복잡성을 크게 줄입니다.

  • 확장성 - Aurora Serverless v1은 클라이언트 연결을 중단하지 않고 필요에 따라 컴퓨팅 및 메모리 용량을 원활하게 확장합니다.

  • 비용 효율성 - Aurora Serverless v1을 사용하는 경우 사용한 데이터베이스 리소스에 대해서만 초 단위로 요금을 지불합니다.

  • 고가용성 스토리지 - Aurora Serverless v1은 6방향 복제가 가능하고 Aurora와 동일한 내결함성 분산 스토리지 시스템을 사용해 데이터 손실을 방지합니다.

Aurora Serverless v1 사용 사례

Aurora Serverless v1는 다음과 같은 사용 사례를 위해 설계되었습니다.

  • 자주 사용하지 않는 애플리케이션 – 하루 또는 일주일에 고작 몇 분씩 몇 차례만 사용하는 애플리케이션이 있습니다(예: 사용자가 적은 블로그 사이트). Aurora Serverless v1를 사용하는 경우 사용한 데이터베이스 리소스에 대해서만 초 단위로 요금을 지불합니다.

  • 새 애플리케이션 – 새 애플리케이션을 배포하는 중인데, 필요한 인스턴스 크기를 잘 모릅니다. Aurora Serverless v1를 사용하면 데이터베이스 엔드포인트를 생성해 애플리케이션의 용량 요구 사항에 따라 데이터베이스가 자동으로 확장되게 할 수 있습니다.

  • 가변성 높은 워크로드 – 피크가 하루에 몇 번 안 되거나 1년에 몇 번에 불과하고 30분~몇 시간에 불과한 사용량이 낮은 애플리케이션을 실행하고 있습니다. 인사 관리, 예산 작성 및 운영 보고 애플리케이션을 예로 들 수 있습니다. Aurora Serverless v1를 사용하면 더 이상 피크 또는 평균 용량에 맞추어 프로비저닝하지 않아도 됩니다.

  • 예측 불가능한 워크로드 – 작업의 증가가 갑작스럽고 예측할 수 없는 일일 워크로드를 실행하고 있습니다. 비가 내리기 시작하면 활동이 급증하는 트래픽 사이트를 예로 들 수 있습니다. Aurora Serverless v1를 사용하면 애플리케이션의 피크 로드를 처리하는 데 필요한 용량을 충족하도록 데이터베이스가 용량을 자동으로 확장하고 활동이 급증하는 시점이 지나면 용량이 다시 줄입니다.

  • 개발 및 테스트 데이터베이스 – 개발자가 작업 시간 중에는 데이터베이스를 사용하지만 밤이나 주말에는 데이터베이스를 사용하지 않습니다. Aurora Serverless v1를 사용하면 데이터베이스가 사용 중이 아닌 경우 자동으로 종료됩니다.

  • 다중 테넌트 애플리케이션 - Aurora Serverless v1을 사용하면 플릿에서 각 애플리케이션에 대한 데이터베이스 용량을 개별적으로 관리할 필요가 없습니다. Aurora Serverless v1은 사용자를 대신하여 개별 데이터베이스 용량을 관리해 줍니다.

Aurora Serverless v1의 제한 사항

Aurora Serverless v1에는 다음과 같은 제한 사항이 적용됩니다.

  • Aurora Serverless v1는 다음과 같은 기능을 지원하지 않습니다.

    • Aurora 글로벌 데이터베이스

    • Aurora 복제본

    • AWS Identity and Access Management(IAM) 데이터베이스 인증

    • Aurora 내 역추적

    • 데이터베이스 활동 스트림

    • Kerberos 인증

    • 성능 개선 도우미

    • RDS 프록시

    • AWS Management Console에서 로그 보기

  • Aurora Serverless v1 DB 클러스터에 대한 연결이 하루 이상 열려 있으면 자동으로 닫힙니다.

  • 모든 Aurora Serverless v1 DB 클러스터에는 다음과 같은 제한 사항이 있습니다.

    • Aurora Serverless v1 스냅샷을 Amazon S3 버킷으로 내보낼 수 없습니다.

    • AWS Database Migration Service 및 변경 데이터 캡처(CDC)를 Aurora Serverless v1 DB 클러스터와 함께 사용할 수 없습니다. 프로비저닝된 Aurora DB 클러스터만 소스로서 AWS DMS와 함께 CDC를 지원합니다.

    • Amazon S3의 텍스트 파일에 데이터를 저장하거나 S3의 텍스트 파일 데이터를 Aurora Serverless v1에 로드할 수 없습니다.

    • IAM 역할을 Aurora Serverless v1 DB 클러스터에 첨부할 수 없습니다. 하지만 Aurora Serverless v1 함수 및 aws_s3 파라미터와 함께 aws_s3.table_import_from_s3 확장을 사용하여 credentials에서 Amazon S3로 데이터를 로드할 수 있습니다. 자세한 내용은 PostgreSQL DB 인스턴스용 Aurora PostgreSQL DB 클러스터 섹션을 참조하세요.

    • 쿼리 편집기를 사용할 때 DB 보안 인증 정보가 데이터베이스에 액세스할 수 있도록 Secrets Manager 암호가 생성됩니다. 쿼리 편집기에서 보안 인증 정보를 삭제하면 Secrets Manager에서도 관련 암호가 삭제됩니다. 이러한 암호가 삭제된 후에는 복구할 수 없습니다.

  • Aurora Serverless v1을 실행하는 Aurora MySQL 기반 DB 클러스터는 다음을 지원하지 않습니다.

    • Aurora MySQL DB 클러스터 내에서 AWS Lambda 함수 호출. 하지만 AWS Lambda 함수는 Aurora Serverless v1 DB 클러스터를 호출할 수 있습니다.

    • Aurora MySQL 또는 RDS for MySQL이 아닌 DB 인스턴스에서 스냅샷 복원.

    • 이진 로그(binlogs) 기반의 복제를 사용한 데이터 복제. 이 제한은 Aurora MySQL 기반 DB 클러스터 Aurora Serverless v1이 복제의 소스인지 대상인지에 관계없이 적용됩니다. Amazon EC2에서 실행되는 것과 같이 Aurora 외부의 MySQL DB 인스턴스에서 Aurora Serverless v1 DB 클러스터로 데이터를 복제하려면 AWS Database Migration Service를 사용하는 것이 좋습니다. 자세한 내용은 AWS Database Migration Service 사용 설명서를 참조하세요.

    • 호스트 기반 액세스 권한을 가진 사용자 생성('username'@'IP_address'). 이는 Aurora Serverless v1이 원활한 확장을 위해 클라이언트와 데이터베이스 호스트 간에 라우터 플릿을 사용하기 때문입니다. Aurora Serverless DB 클러스터에 표시되는 IP 주소는 클라이언트가 아닌 라우터 호스트의 IP 주소입니다. 자세한 내용은 Aurora Serverless v1 아키텍처 섹션을 참조하세요.

      대신, 와일드카드('username'@'%')를 사용합니다.

  • Aurora Serverless v1을 실행하는 Aurora PostgreSQL 기반 DB 클러스터의 경우 다음과 같은 제한 사항이 있습니다.

    • Aurora PostgreSQL 쿼리 계획 관리(apg_plan_management 확장)은 지원되지 않습니다.

    • Amazon RDS PostgreSQL 및 Aurora PostgreSQL에서 제공되는 논리적 복제 기능은 지원되지 않습니다.

    • Amazon RDS for PostgreSQL 확장에 의해 활성화된 아웃바운드 통신과 같은 아웃바운드 통신은 지원되지 않습니다. 예를 들어 postgres_fdw/dblink 확장을 사용하여 외부 데이터에 액세스할 수 없습니다. RDS PostgreSQL 확장에 대한 자세한 내용은 RDS 사용 설명서에서 Amazon RDS의 PostgreSQL을 참조하세요.

    • 현재 특정 SQL 쿼리 및 명령은 권장되지 않습니다. 여기에는 세션 수준 공지 잠금, 임시 관계, 비동기 알림(LISTEN) 및 hold가 있는 커서(DECLARE name ... CURSOR WITH HOLD FOR query)가 포함됩니다. 또한 NOTIFY 명령은 확장을 방지하므로 권장되지 않습니다.

      자세한 내용은 Aurora Serverless v1에서의 Auto Scaling 섹션을 참조하세요.

  • Aurora Serverless v1 DB 클러스터의 기본 자동 백업 기간을 설정할 수 없습니다.

  • Aurora Serverless v1 DB 클러스터의 유지 관리 기간을 설정할 수 있습니다. 자세한 내용은 기본 DB 클러스터 유지 관리 기간 조정 섹션을 참조하세요.

Aurora Serverless v1의 구성 요구 사항

Aurora Serverless v1 DB 클러스터를 생성할 때는 다음 요구 사항에 주의하세요.

  • 각 DB 엔진에 대해 다음과 같은 특정 포트 번호를 사용합니다.

    • Aurora MySQL – 3306

    • Aurora PostgreSQL – 5432

  • Amazon VPC 서비스 기반의 Virtual Private Cloud(VPC)에서 Aurora Serverless v1 DB 클러스터를 생성합니다. VPC에서 Aurora Serverless v1 DB 클러스터를 생성할 때 VPC에 할당된 50개의 인터페이스 및 게이트웨이 로드 밸런서 엔드포인트 중 2개가 사용됩니다. 이러한 엔드포인트는 자동으로 생성됩니다. 할당량을 늘리려면 AWS Support에 연락하면 됩니다. 자세한 내용은 Amazon VPC할당량을 참조하세요.

  • Aurora Serverless v1 DB 클러스터에는 퍼블릭 IP 주소를 부여할 수 없습니다. VPC 내에서만 Aurora Serverless v1 DB 클러스터에 액세스할 수 있습니다.

  • Aurora Serverless v1 DB 클러스터에 사용하는 DB 서브넷 그룹에 대해 서로 다른 가용 영역에 서브넷을 생성합니다. 즉, 동일한 가용 영역에 서브넷을 2개 이상 보유할 수 없습니다.

  • Aurora Serverless v1 DB 클러스터에서 사용하는 서브넷 그룹에 대한 변경 사항은 클러스터에 적용되지 않습니다.

  • Aurora Serverless v1에서 AWS Lambda DB 클러스터에 액세스할 수 있습니다. 그러려면 Lambda 함수가 Aurora Serverless v1 DB 클러스터와 동일한 VPC에서 실행되도록 구성해야 합니다. AWS Lambda 작업에 대한 자세한 내용은 AWS Lambda 개발자 안내서Amazon VPC의 리소스에 액세스하도록 Lambda 함수 구성을 참조하세요.

Aurora Serverless v1에서 TLS/SSL 사용

기본적으로 Aurora Serverless v1는 TLS/SSL(Transport Layer Security/Secure Sockets Layer) 프로토콜을 사용하여 클라이언트와 Aurora Serverless v1 DB 클러스터 간의 통신을 암호화합니다. TLS/SSL 버전 1.0, 1.1 및 1.2를 지원합니다. TLS/SSL을 사용하도록 Aurora Serverless v1 DB 클러스터를 구성할 필요가 없습니다.

단, 다음 제한 사항이 적용됩니다.

  • Aurora Serverless v1 DB 클러스터에 대한 TLS/SSL 지원은 현재 중국(베이징) AWS 리전에서 사용할 수 없습니다.

  • Aurora MySQL 기반 Aurora Serverless v1 DB 클러스터의 데이터베이스 사용자를 생성할 때는 SSL 권한에 REQUIRE 절을 사용해서는 안 됩니다. 이렇게 하면 사용자가 Aurora DB 인스턴스에 연결할 수 없습니다.

  • MySQL 클라이언트 및 PostgreSQL 클라이언트 유틸리티 모두, 클라이언트와 Aurora Serverless v1 간에 TLS/SSL을 사용할 때 다른 환경에서 사용하는 세션 변수는 아무런 영향을 미치지 않습니다.

  • MySQL 클라이언트의 경우 TLS/SSL VERIFY_IDENTITY 모드로 연결할 때 현재, MySQL 8.0 호환 mysql 명령을 사용해야 합니다. 자세한 내용은 MySQL 데이터베이스 엔진 기반 DB 인스턴스에 연결하기를 참조하세요.

Aurora Serverless v1 DB 클러스터에 연결하는 데 사용하는 클라이언트에 따라 암호화된 연결을 설정하기 위해 TLS/SSL을 지정하지 않아도 됩니다. 예를 들어 Aurora PostgreSQL 호환 버전을 실행 중인 Aurora Serverless v1 DB 클러스터에 PostgreSQL 클라이언트를 사용하여 연결하려면 평소와 같이 연결합니다.

psql -h endpoint -U user

암호를 입력하면 PostgreSQL 클라이언트에서 TLS/SSL 버전 및 암호를 포함한 연결 세부 정보를 볼 수 있습니다.

psql (12.5 (Ubuntu 12.5-0ubuntu0.20.04.1), server 10.12) SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off) Type "help" for help.
중요

Aurora Serverless v1은 클라이언트 애플리케이션에서 SSL/TLS를 사용 중지 하지 않는 한 전송 계층 보안/보안 소켓 계층(TLS/SSL) 프로토콜을 사용하여 기본적으로 연결을 암호화합니다. TLS/SSL 연결은 라우터 플릿에서 종료됩니다. 라우터 플릿과 Aurora Serverless v1 DB 클러스터 간의 통신은 서비스의 내부 네트워크 경계 내에서 발생합니다.

클라이언트 연결 상태를 확인하여 Aurora Serverless v1에 대한 연결이 TLS/SSL로 암호화되었는지 여부를 확인할 수 있습니다. PostgreSQL pg_stat_sslpg_stat_activity 테이블과 해당하는 ssl_is_used 함수는 클라이언트 애플리케이션과 Aurora Serverless v1 간의 통신에 대한 TLS/SSL 상태를 표시하지 않습니다. 마찬가지로 MySQL status 문에서 TLS/SSL 상태를 도출할 수 없습니다.

Aurora 클러스터 파라미터(PostgreSQL의 경우 force_ssl이고 MySQL의 경우 require_secure_transport)는 이전에 Aurora Serverless v1에 대해 지원되지 않았습니다. 이 파라미터는 현재 Aurora Serverless v1에 대해 사용할 수 있습니다. Aurora Serverless v1에서 지원하는 전체 파라미터 목록을 보려면 DescribeEngineDefaultClusterParameters API 작업을 호출하세요. 파라미터 그룹 및 Aurora Serverless v1에 대한 자세한 내용은 Aurora Serverless v1 파라미터 그룹 단원을 참조하세요.

Aurora MySQL 호환 버전을 실행 중인 Aurora Serverless v1 DB 클러스터에 MySQL 클라이언트를 사용하여 연결하려면 요청에 TLS/SSL을 지정합니다. 다음 예에는 Amazon Trust Services에서 다운로드한 Amazon 루트 CA 1 신뢰할 수 있는 스토어가 포함되어 있습니다. Trust Services는 이 연결에 성공하기 위해 필요합니다.

mysql -h endpoint -P 3306 -u user -p --ssl-ca=amazon-root-CA-1.pem --ssl-mode=REQUIRED

메시지가 표시되면 암호를 입력합니다. 곧 MySQL 모니터가 열립니다. status 명령을 사용하여 세션이 암호화되었는지 확인할 수 있습니다.

mysql> status -------------- mysql Ver 14.14 Distrib 5.5.62, for Linux (x86_64) using readline 5.1 Connection id: 19 Current database: Current user: ***@******* SSL: Cipher in use is ECDHE-RSA-AES256-SHA ...

MySQL 클라이언트를 사용하여 Aurora MySQL 데이터베이스에 연결하는 방법에 대한 자세한 내용은 MySQL 데이터베이스 엔진 기반 DB 인스턴스에 연결하기를 참조하세요.

Aurora Serverless v1는 다음 표에 나열된 것을 포함하여 MySQL 클라이언트(mysql) 및 PostgreSQL 클라이언트(psql)에서 사용 가능한 모든 TLS/SSL 모드를 지원합니다.

TLS/SSL 모드에 대한 설명 mysql psql

TLS/SSL을 사용하지 않고 연결합니다.

비활성화됨

disable

먼저 TLS/SSL을 사용하여 연결을 시도하지만 필요한 경우 비 SSL로 폴백합니다.

PREFERRED

prefer(기본값)

TLS/SSL을 사용하도록 합니다.

필수

require

TLS/SSL을 적용하고 CA를 확인합니다.

VERIFY_CA

[verify-ca]

TLS/SSL을 적용하고 CA를 확인한 다음 CA 호스트 이름을 확인합니다.

VERIFY_IDENTITY

[verify-full]

Aurora Serverless v1는 와일드카드 인증서를 사용합니다. TLS/SSL을 사용할 때 “CA 확인” 또는 “CA 및 CA 호스트 이름 확인” 옵션을 지정하는 경우 먼저 Amazon Trust Services에서 Amazon 루트 CA 1 신뢰할 수 있는 스토어를 다운로드합니다. 이렇게 하면 클라이언트 명령에서 이 PEM 형식의 파일을 식별할 수 있습니다. PostgreSQL 클라이언트를 사용하여 이렇게 하려면 다음을 수행합니다.

Linux, macOS, Unix:

psql 'host=endpoint user=user sslmode=require sslrootcert=amazon-root-CA-1.pem dbname=db-name'

Postgres 클라이언트를 사용하여 Aurora PostgreSQL 데이터베이스 작업을 수행하는 방법에 대한 자세한 내용은 PostgreSQL 데이터베이스 엔진 기반 DB 인스턴스에 연결하기를 참조하세요.

일반적인 Aurora DB 클러스터에 연결하는 방법에 대한 자세한 내용은 Amazon Aurora DB 클러스터에 연결 단원을 참조하세요.

Aurora Serverless v1 DB 클러스터에 연결을 위해 지원되는 암호 그룹

구성 가능한 암호 그룹을 사용하면 데이터베이스 연결의 보안을 더 잘 제어할 수 있습니다. 데이터베이스에 대한 클라이언트 TLS/SSL 연결을 보호하도록 허용할 암호 그룹 목록을 지정할 수 있습니다. 구성 가능한 암호 그룹을 사용하여 데이터베이스 서버가 허용하는 연결 암호화를 제어할 수 있습니다. 이렇게 하면 안전하지 않거나 더 이상 사용되지 않는 암호의 사용을 방지할 수 있습니다.

Aurora MySQL 기반 Aurora Serverless v1 DB 클러스터는 Aurora MySQL 프로비저닝된 DB 클러스터와 동일한 암호 그룹을 지원합니다. 이러한 암호 그룹에 대한 자세한 내용은 Aurora MySQL DB 클러스터 연결을 위한 암호 그룹 구성 섹션을 참조하세요.

Aurora PostgreSQL 기반 Aurora Serverless v1 DB 클러스터는 암호 그룹을 지원하지 않습니다.