Aurora MySQL DB 클러스터 생성 및 연결 - Amazon Aurora

Aurora MySQL DB 클러스터 생성 및 연결

이 튜토리얼에서는 EC2 인스턴스 및 Aurora MySQL DB 클러스터를 생성합니다. 튜토리얼에서는 표준 MySQL 클라이언트를 사용하여 EC2 인스턴스에서 DB 클러스터에 액세스하는 방법을 보여줍니다. 이 튜토리얼에서는 모범 사례를 따라 Virtual Private Cloud(VPC)에서 프라이빗 DB 클러스터를 생성합니다. 대부분의 경우 EC2 인스턴스와 같이 동일한 VPC에 있는 다른 리소스는 DB 인스턴스에 액세스할 수 있지만 VPC 외부의 리소스는 DB 클러스터에 액세스할 수 없습니다.

자습서를 완료하면 VPC의 각 가용 영역에 퍼블릭 서브넷과 프라이빗 서브넷이 있을 것입니다. 한 가용 영역에서 EC2 인스턴스는 퍼블릭 서브넷에 있고 DB 인스턴스는 프라이빗 서브넷에 있습니다.

중요

AWS 계정 생성은 무료입니다. 그러나 이 튜토리얼을 완료하면 사용하는 AWS 리소스에 대한 비용이 발생할 수 있습니다. 자습서가 더 이상 필요하지 않은 경우 자습서를 완료한 후에 이러한 리소스를 삭제할 수 있습니다.

다음 다이어그램은 이 자습서를 완료했을 때 구성을 보여 줍니다.

EC2 인스턴스 및 Aurora MySQL DB 클러스터.

이 자습서에서는 다음 방법 중 하나를 사용하여 리소스를 생성할 수 있습니다.

  1. AWS Management Console 사용 ‐ 1단계: EC2 인스턴스 생성2단계: Aurora MySQL DB 클러스터 생성

  2. 데이터베이스 인스턴스 및 EC2 인스턴스를 생성하는 데 AWS CloudFormation 사용 - (선택 사항) AWS CloudFormation을 사용하여 VPC, EC2 인스턴스 및 Aurora MySQL 클러스터 생성

첫 번째 방법은 간편 생성을 사용하여 AWS Management Console을 통해 프라이빗 Aurora MySQL DB 클러스터를 생성합니다. 여기에서는 DB 엔진 유형, DB 인스턴스 크기, DB 클러스터 식별자만 지정합니다. [간편 생성(Easy create)]은 다른 구성 옵션에서도 기본 설정을 사용합니다.

표준 생성을 대신 사용하는 경우에는 DB 클러스터를 생성할 때 더 많은 구성 옵션을 지정할 수 있습니다. 이러한 옵션에는 가용성, 보안, 백업 및 유지 관리에 대한 설정이 포함됩니다. 퍼블릭 DB 클러스터를 만들려면 표준 생성을 사용해야 합니다. 자세한 설명은 Amazon Aurora DB 클러스터 생성을 참조하세요.

필수 조건

시작하기 전에 다음 섹션에서 다음 단계를 완료하세요.

1단계: EC2 인스턴스 생성

데이터베이스에 연결하는 데 사용할 Amazon EC2 인스턴스를 생성합니다.

EC2 인스턴스를 생성하려면
  1. AWS Management Console에 로그인하고 https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

  2. AWS Management Console의 오른쪽 상단에서 EC2 인스턴스를 생성하려는 AWS 리전을 선택합니다.

  3. 다음 이미지에 나와 있는 것처럼 EC2 대시보드를 선택한 다음, 인스턴스 시작을 선택합니다.

    EC2 대시보드.

    인스턴스 시작 페이지가 열립니다.

  4. 인스턴스 시작 페이지에서 다음 설정을 선택합니다.

    1. Name and tags(이름 및 태그) 아래의 Name(이름)에 ec2-database-connect을 입력하세요.

    2. Application and OS Images (Amazon Machine Image)(애플리케이션 및 OS 이미지(Amazon Machine Image))에서 Amazon Linux를 선택한 다음 Amazon Linux 2023 AMI를 선택합니다. 다른 선택 항목에 대해서는 기본값을 그대로 유지합니다.

      Amazon Machine Image를 선택합니다.
    3. 인스턴스 유형에서 t2.micro를 선택합니다.

    4. 키 페어(로그인)에서 기존 키 페어를 사용할 키 페어 이름을 선택합니다. Amazon EC2 인스턴스에 대한 새 키 페어를 생성하려면 새 키 페어 생성을 선택한 다음 키 페어 생성 창을 사용하여 생성합니다.

      키 페어 생성에 대한 자세한 내용은 Amazon EC2 Linux 인스턴스용 사용 설명서키 페어 생성을 참조하세요.

    5. 네트워크 설정SSH 트래픽 허용에서 EC2 인스턴스에 대한 SSH 연결 소스를 선택합니다.

      표시된 IP 주소가 SSH 연결에 대해 올바른 경우 내 IP를 선택할 수 있습니다. 그렇지 않으면 SSH(Secure Shell)를 사용하여 VPC의 EC2 인스턴스에 연결하는 데 사용할 IP 주소를 결정할 수 있습니다. 퍼블릭 IP 주소를 확인하려면 다른 브라우저 창 또는 탭에서 https://checkip.amazonaws.com의 서비스를 사용합니다. IP 주소의 예는 192.0.2.1/32입니다.

      대부분의 경우 고정 IP 주소가 없는 방화벽 뒤나 인터넷 서비스 제공업체(ISP)를 통해 연결하는 경우가 많습니다. 그렇다면 클라이언트 컴퓨터에서 사용하는 IP 주소 범위를 결정합니다.

      주의

      SSH 액세스에 0.0.0.0/0을 사용하는 경우 모든 IP 주소가 SSH를 사용하여 퍼블릭 EC2 인스턴스에 액세스할 수 있도록 활성화합니다. 이 방법은 테스트 환경에서 잠시 사용하는 것은 괜찮지만 프로덕션 환경에서는 안전하지 않습니다. 프로덕션에서는 SSH를 사용하여 EC2 인스턴스에 액세스할 수 있는 특정 IP 주소 또는 주소 범위만 인증합니다.

      다음 이미지는 네트워크 설정 섹션의 예를 보여 줍니다.

      EC2 인스턴스에 대한 네트워크 설정
    6. 나머지 섹션에서 기본값은 그대로 둡니다.

    7. 요약 패널에서 EC2 인스턴스 구성 요약을 검토하고 준비가 되면 인스턴스 시작을 선택합니다.

  5. 시작 상태 페이지에서, 새 EC2 인스턴스의 식별자(예: i-1234567890abcdef0)를 기록해 둡니다.

    시작 상태 페이지의 EC2 인스턴스 식별자.
  6. EC2 인스턴스 식별자를 선택하여 EC2 인스턴스 목록을 열고 EC2 인스턴스를 선택합니다.

  7. 세부 정보 탭에서 SSH를 사용하여 연결할 때 필요한 다음 값을 기록해 둡니다.

    1. 인스턴스 요약에서 퍼블릭 IPv4 DNS의 값을 기록해 둡니다.

      인스턴스 페이지의 세부 정보 탭에 있는 EC2 퍼블릭 DNS 이름.
    2. 인스턴스 세부 정보에서 키 페어 이름의 값을 기록해 둡니다.

      인스턴스 페이지의 세부 정보 탭에 있는 EC2 키 페어 이름.
  8. 계속하기 전에 EC2 인스턴스의 인스턴스 상태실행 중이 될 때까지 기다립니다.

2단계: Aurora MySQL DB 클러스터 생성

이 예시에서는 간편 생성을 사용하여 db.r6g.large DB 인스턴스 클래스로 Aurora MySQL DB 클러스터를 생성합니다.

간편 생성을 사용하여 Aurora MySQL DB 클러스터를 생성하려면
  1. https://console.aws.amazon.com/rds/에서 AWS Management Console에 로그인한 후 Amazon RDS 콘솔을 엽니다.

  2. Amazon RDS 콘솔의 오른쪽 상단에서 DB 클러스터를 생성하려는 AWS 리전을 선택합니다.

  3. 탐색 창에서 데이터베이스를 선택합니다.

  4. [데이터베이스 생성(Create database)]을 선택하고 [간편 생성(Easy Create)]이 선택되어 있는지 확인합니다.

    간편 생성 옵션.
  5. 구성엔진 유형에서 Aurora(MySQL 호환)를 선택합니다.

  6. DB instance size(DB 인스턴스 크기)에서 개발/테스트를 선택합니다.

  7. DB 클러스터 식별자에서 database-test1을 입력합니다.

    데이터베이스 생성 페이지는 다음 이미지와 비슷해야 합니다.

    데이터베이스 생성 페이지.
  8. 마스터 사용자 이름에 마스터 사용자의 이름을 입력하거나 기본 이름을 그대로 유지합니다.

  9. DB 클러스터에 자동 생성된 마스터 암호를 사용하려면 암호 자동 생성을 선택합니다.

    마스터 암호를 입력하려면 암호 자동 생성 선택을 해제한 다음, 마스터 암호암호 확인에 동일한 암호를 입력합니다.

  10. 이전에 생성한 EC2 인스턴스와의 연결을 설정하려면 EC2 연결 설정 - 선택 사항을 엽니다.

    Connect to an EC2 compute resource(EC2 컴퓨팅 리소스에 연결)를 선택합니다. 이전에 생성한 EC2 인스턴스를 선택합니다.

    EC2 연결 옵션을 설정합니다.
  11. 간편 생성 기본 설정 보기를 엽니다.

    Easy Create(간편 생성) 기본 설정

    [간편 생성(Easy Create)]과 함께 사용되는 기본 설정을 검토할 수 있습니다. 데이터베이스 생성 후 편집 가능 열에는 데이터베이스 생성 후 어떤 옵션을 변경할 수 있는지 나와 있습니다.

    • 설정의 해당 열에 아니요라고 되어 있지만 다른 설정을 원하는 경우 표준 생성을 사용하여 DB 클러스터를 만들 수 있습니다.

    • 설정의 해당 열에 라고 되어 있으며 다른 설정을 원하는 경우 표준 생성을 사용하여 DB 클러스터를 만들거나, DB 클러스터를 생성한 후 수정하여 설정을 변경할 수 있습니다.

  12. 데이터베이스 생성를 선택합니다.

    DB 클러스터의 마스터 사용자 이름 및 암호를 보려면 자격 증명 세부 정보 보기를 선택합니다.

    DB 클러스터를 마스터 사용자로 연결하려면 화면에 나타난 사용자 이름과 암호를 사용합니다.

    중요

    마스터 사용자 암호를 다시 볼 수는 없습니다. 따라서 기록을 해두지 않으면 이를 변경해야 합니다.

    DB 클러스터가 사용 가능한 상태가 되고 난 후에 마스터 사용자 암호를 변경해야 하는 경우에는 다음과 같은 방법으로 DB 클러스터를 수정할 수 있습니다. DB 클러스터 수정에 대한 자세한 정보는 Amazon Aurora DB 클러스터 수정 단원을 참조하십시오.

  13. 데이터베이스 목록에서 새 Aurora MySQL DB 클러스터의 이름을 선택하면 세부 정보가 표시됩니다.

    DB 클러스터를 사용할 준비가 될 때까지 라이터 인스턴스의 상태는 생성 중입니다.

    DB 클러스터 세부 정보.

    라이터 인스턴스의 상태가 사용 가능으로 변경되면 DB 클러스터에 연결할 수 있습니다. DB 인스턴스 클래스와 스토리지의 용량에 따라 새 DB 인스턴스를 사용할 수 있을 때까지 최대 20분이 걸릴 수 있습니다.

(선택 사항) AWS CloudFormation을 사용하여 VPC, EC2 인스턴스 및 Aurora MySQL 클러스터 생성

콘솔을 사용하여 VPC, EC2 인스턴스 및 Aurora MySQL DB 클러스터를 생성하는 대신 AWS CloudFormation을 통해 코드형 인프라로 처리하여 AWS 리소스를 프로비저닝할 수 있습니다. AWS 리소스를 더 작고 관리하기 쉬운 단위로 구성하는 데 도움이 되도록 AWS CloudFormation 중첩 스택 기능을 사용할 수 있습니다. 자세한 내용은 AWS CloudFormation 콘솔에서 스택 생성중첩된 스택 작업을 참조하세요.

중요

AWS CloudFormation은 무료이지만, CloudFormation에서 생성하는 리소스는 라이브입니다. 이러한 리소스를 종료하지 않으면 해당 리소스에 대한 표준 사용 요금이 발생합니다. 발생하는 총 요금은 매우 적습니다. 요금을 최소화할 수 있는 방법에 대한 자세한 내용은 AWS 프리 티어를 참조하세요.

AWS CloudFormation 콘솔을 사용하여 리소스를 생성하려면 다음 단계를 완료합니다.

  • 1단계: CloudFormation 템플릿 다운로드

  • 2단계: CloudFormation을 사용하여 리소스 구성

CloudFormation 템플릿 파일을 다운로드하십시오.

CloudFormation 템플릿은 JSON 또는 YAML 텍스트 파일로, 스택에서 생성하려는 리소스에 대한 구성 정보가 들어 있습니다. 또한 이 템플릿은 Aurora 클러스터와 함께 VPC와 Bastion Host를 생성합니다.

템플릿 파일을 다운로드하려면 다음 링크인 Aurora MySQL CloudFormation 템플릿을 엽니다.

Github 페이지에서 원시 파일 다운로드 버튼을 클릭하여 템플릿 YAML 파일을 저장합니다.

CloudFormation을 사용하여 리소스 구성

참고

이 프로세스를 시작하기 전에 AWS 계정에 EC2 인스턴스용 키 페어가 있는지 확인합니다. 자세한 내용은 Amazon EC2 키 페어 및 Linux 인스턴스를 참조하세요.

AWS CloudFormation 템플릿을 사용할 때는 리소스가 제대로 생성되도록 올바른 파라미터를 선택해야 합니다. 다음 단계를 따릅니다.

  1. AWS Management Console에 로그인하여 https://console.aws.amazon.com/cloudformation에서 AWS CloudFormation 콘솔을 엽니다.

  2. 스택 생성을 선택합니다.

  3. 템플릿 지정 섹션에서 컴퓨터에서 템플릿 파일 업로드를 선택하고 다음을 선택합니다.

  4. 스택 세부 정보 지정 페이지에서 다음 파라미터를 설정합니다.

    1. 스택 이름AurMySQLTestStack으로 설정합니다.

    2. 파라미터에서 가용 영역 2개를 선택하여 가용 영역을 설정합니다.

    3. Linux Bastion Host 구성에서 키 이름에 대해 EC2 인스턴스에 로그인할 키 페어를 선택합니다.

    4. Linux Bastion Host 구성 설정에서 허용된 IP 범위를 IP 주소로 설정합니다. Secure Shell(SSH)을 사용하여 VPC의 EC2 인스턴스에 연결하려면 https://checkip.amazonaws.com의 서비스를 사용하여 퍼블릭 IP 주소를 지정합니다. IP 주소의 예는 192.0.2.1/32입니다.

      주의

      SSH 액세스에 0.0.0.0/0을 사용하는 경우 모든 IP 주소가 SSH를 사용하여 퍼블릭 EC2 인스턴스에 액세스할 수 있도록 활성화합니다. 이 방법은 테스트 환경에서 잠시 사용하는 것은 괜찮지만 프로덕션 환경에서는 안전하지 않습니다. 프로덕션에서는 SSH를 사용하여 EC2 인스턴스에 액세스할 수 있는 특정 IP 주소 또는 주소 범위만 인증합니다.

    5. 데이터베이스 일반 구성에서 데이터베이스 인스턴스 클래스db.r6g.large로 설정합니다.

    6. 데이터베이스 이름database-test1으로 설정합니다.

    7. 데이터베이스 마스터 사용자 이름에 마스터 사용자 이름을 입력합니다.

    8. 이 자습서에서는 Secrets Manager를 사용하여 DB 마스터 사용자 암호 관리false로 설정합니다.

    9. 데이터베이스 암호의 경우 원하는 암호를 설정합니다. 자습서의 향후 단계에 사용할 수 있도록 암호를 기억해 둡니다.

    10. 다중 AZ 배포false로 설정합니다.

    11. 다른 모든 설정은 기본값으로 둡니다. 계속하려면 다음을 클릭합니다.

  5. 스택 옵션 구성 페이지에서는 모든 기본 옵션을 그대로 둡니다. 계속하려면 다음을 클릭합니다.

  6. 스택 검토 페이지에서 데이터베이스 및 Linux Bastion Host 옵션을 확인한 후 제출을 선택합니다.

스택 생성 프로세스가 완료되면 BastionStack 및 AMSNS라는 이름의 스택을 보고 데이터베이스에 연결하는 데 필요한 정보를 기록해 둡니다. 자세한 내용은 AWS Management Console에서 AWS CloudFormation 스택 데이터 및 리소스 보기를 참조하세요.

3단계: Aurora MySQL DB 클러스터에 연결

표준 SQL 클라이언트 애플리케이션을 사용해 DB 클러스터에 연결할 수 있습니다. 이 예시에서는 mysql 명령줄 클라이언트를 사용하여 Aurora MySQL DB 클러스터에 연결합니다.

Aurora MySQL DB 클러스터에 연결하려면
  1. DB 클러스터에 대한 라이트 인스턴스의 엔드포인트(DNS 이름)와 포트 번호를 찾습니다.

    1. https://console.aws.amazon.com/rds/에서 AWS Management Console에 로그인한 후 Amazon RDS 콘솔을 엽니다.

    2. Amazon RDS 콘솔의 오른쪽 상단에서 DB 클러스터의 AWS 리전을 선택합니다.

    3. 탐색 창에서 Databases(데이터베이스)를 선택합니다.

    4. Aurora MySQL DB 클러스터 이름을 선택하여 세부 정보를 표시합니다.

    5. 연결 및 보안 탭에서 라이터 인스턴스의 엔드포인트를 복사합니다. 또한 포트 번호를 적어 둡니다. DB 클러스터에 연결하려면 엔드포인트와 포트 번호가 모두 필요합니다.

      Aurora MySQL DB 클러스터에 연결합니다.
  2. Linux 인스턴스용 Amazon EC2 사용 설명서에 있는 Linux 인스턴스에 연결의 단계를 따라 앞에서 만든 EC2 인스턴스에 연결합니다.

    SSH를 사용하여 EC2 인스턴스에 연결하는 것이 좋습니다. Windows, Linux 또는 Mac에 SSH 클라이언트 유틸리티가 설치된 경우 다음 명령 형식을 사용하여 인스턴스에 연결할 수 있습니다.

    ssh -i location_of_pem_file ec2-user@ec2-instance-public-dns-name

    예를 들어 ec2-database-connect-key-pair.pem이 Linux의 /dir1에 저장되어 있고, EC2 인스턴스의 퍼블릭 IPv4 DNS가 ec2-12-345-678-90.compute-1.amazonaws.com이라고 가정해 보겠습니다. 그러면 SSH 명령은 다음과 같이 표시됩니다.

    ssh -i /dir1/ec2-database-connect-key-pair.pem ec2-user@ec2-12-345-678-90.compute-1.amazonaws.com
  3. EC2 인스턴스에서 소프트웨어를 업데이트하여 최신 버그 수정 및 보안 업데이트를 받습니다. 이렇게 하려면 다음 명령을 사용합니다.

    참고

    -y 옵션을 사용하면 확인 여부를 묻지 않고 업데이트를 설치합니다. 설치 전에 업데이트 정보를 확인하려면 이 옵션을 생략합니다.

    sudo dnf update -y
  4. Amazon Linux 2023에서 MariaDB의 mysql 명령줄 클라이언트를 설치하려면 다음 명령을 실행합니다.

    sudo dnf install mariadb105
  5. Aurora MySQL DB 클러스터에 연결합니다. 예를 들어, 다음 명령을 입력합니다. 이 작업을 통해 MySQL 클라이언트를 사용하여 Aurora MySQL DB 클러스터에 연결할 수 있습니다.

    endpoint는 라이터 인스턴스 엔드포인트로 대체하고, admin는 사용된 마스터 사용자 이름으로 대체합니다. 암호를 묻는 메시지가 표시되면 사용한 마스터 암호를 제공합니다.

    mysql -h endpoint -P 3306 -u admin -p

    사용자에 대한 암호를 입력하면 다음과 유사한 출력이 나타납니다.

    Welcome to the MariaDB monitor. Commands end with ; or \g. Your MySQL connection id is 217 Server version: 8.0.23 Source distribution Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MySQL [(none)]>

    Aurora MySQL DB 클러스터 연결에 대한 자세한 내용은 Amazon Aurora MySQL DB 클러스터에 연결 섹션을 참조하세요. DB 클러스터에 연결할 수 없는 경우 Amazon RDS DB 인스턴스에 연결할 수 없음 섹션을 참조하세요.

    보안을 위해서는 암호화된 연결을 사용하는 것이 가장 좋습니다. 클라이언트와 서버가 동일한 VPC에 있고 네트워크를 신뢰할 수 있는 경우에만 암호화되지 않은 MySQL 연결을 사용합니다. 암호화된 연결 사용에 대한 자세한 내용은 SSL을 사용하여 Aurora MySQL에 연결 섹션을 참조하세요.

  6. SQL 명령을 실행합니다.

    예를 들어, 다음 SQL 명령은 현재 날짜 및 시간을 보여줍니다.

    SELECT CURRENT_TIMESTAMP;

4단계: EC2 인스턴스 및 DB 클러스터 삭제

생성한 샘플 EC2 인스턴스 및 DB 클러스터에 연결하고 탐색한 후에는 요금이 더 이상 부과되지 않도록 삭제합니다.

AWS CloudFormation을 사용하여 리소스를 생성했다면 이 단계를 건너뛰고 다음 단계로 이동합니다.

EC2 인스턴스를 삭제하는 방법
  1. AWS Management Console에 로그인하고 https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

  2. 탐색 창에서 인스턴스를 선택합니다.

  3. EC2 인스턴스를 선택하고 인스턴스 상태, 인스턴스 종료를 차례로 선택합니다.

  4. 확인 메시지가 나타나면 종료를 선택합니다.

EC2 인스턴스 삭제에 대한 자세한 내용은 Linux 인스턴스용 Amazon EC2 사용 설명서의 인스턴스 종료를 참조하세요.

DB 클러스터를 삭제하려면
  1. https://console.aws.amazon.com/rds/에서 AWS Management Console에 로그인한 후 Amazon RDS 콘솔을 엽니다.

  2. 데이터베이스를 선택하고 DB 클러스터에 연결된 DB 인스턴스를 선택합니다.

  3. [ Actions]에 대해 [Delete]를 선택합니다.

  4. 최종 스냅샷 생성 여부를 선택 해제합니다.

  5. 확인을 완료하고 삭제를 선택합니다.

DB 클러스터에 연결된 모든 DB 인스턴스가 삭제되고 나면 DB 클러스터가 자동으로 삭제됩니다.

(선택 사항) CloudFormation으로 생성한 EC2 인스턴스 및 DB 클러스터 삭제

AWS CloudFormation을 사용하여 리소스를 생성한 경우 샘플 EC2 인스턴스 및 DB 클러스터에 연결하고 탐색한 후 CloudFormation 스택을 삭제하여 더 이상 비용이 청구되지 않도록 합니다.

CloudFormation 리소스를 삭제하려면
  1. AWS CloudFormation 콘솔을 엽니다.

  2. CloudFormation 콘솔의 스택 페이지에서 루트 스택(VPCStack, BastionStack 또는 AMSNS라는 이름이 없는 스택)을 선택합니다.

  3. 삭제를 선택합니다.

  4. 확인 메시지가 나타나면 스택 삭제를 선택합니다.

CloudFormation에서 스택을 삭제하는 방법에 대한 자세한 내용은 AWS CloudFormation 사용 설명서의 AWS CloudFormation 콘솔에서 스택 삭제를 참조하세요.

(선택 사항) DB 클러스터를 Lambda 함수에 연결

Aurora MySQL DB 클러스터를 Lambda 서버리스 컴퓨팅 리소스에 연결할 수도 있습니다. Lambda 함수를 사용하면 인프라를 프로비저닝하거나 관리하지 않고도 코드를 실행할 수 있습니다. 또한 하루 12개에서 초당 수백 개에 이르는 모든 규모의 코드 실행 요청에 자동으로 응답할 수 있습니다. 자세한 내용은 Lambda 함수와 Aurora DB 클러스터 자동 연결 단원을 참조하십시오.