Amazon Aurora에 연결할 때 발생하는 문제를 해결하려면 어떻게 해야 하나요?

4분 분량
0

Amazon Aurora를 실행 중인 Amazon Relational Database Service(Amazon RDS) 클러스터 또는 인스턴스에 연결할 때 문제가 발생합니다.

간략한 설명

Amazon Aurora DB 클러스터 또는 인스턴스에 연결할 때 다음 이유 중 하나로 인해 문제가 발생할 수 있습니다.

  • Aurora DB 클러스터 또는 인스턴스가 아직 생성 중이어서 Available(사용 가능) 상태가 아닙니다.
  • DB 인스턴스 보안 그룹, ACL 또는 로컬 방화벽이 원본 인스턴스 또는 해당 IP 주소에서 시작하는 연결을 차단하고 있습니다.
  • Amazon Virtual Private Cloud(VPC) 서브넷의 라우팅 테이블이 머신 또는 인스턴스의 트래픽을 허용하지 않습니다.
  • 퍼블릭 인터넷을 사용하여 로컬 머신에서 연결하는 경우, 퍼블릭 서브넷에서 인스턴스에 공개적으로 액세스할 수 없을 가능성이 있습니다.
  • DNS 이름 확인에 실패했습니다. 이는 클라이언트가 올바른 Aurora 엔드포인트에 연결되지 않은 경우 발생할 수 있습니다.
  • Amazon RDS DB 인스턴스가 인스턴스 복구 또는 장애 조치를 진행 중입니다. 이는 기본 하드웨어 또는 데이터베이스 프로세스에 문제가 있는 경우 발생할 수 있습니다.

해결 방법

일반적인 연결 문제를 해결하는 데 도움이 필요하면 Amazon RDS DB 인스턴스에 연결할 때 발생하는 문제를 해결하려면 어떻게 해야 하나요?를 참조하세요.

Aurora DB 클러스터에 연결하려면 클라이언트가 올바른 엔드포인트에 연결되어 있는지 확인해야 합니다. Amazon Aurora는 관리형 서비스이기 때문에 MySQL 또는 PostgreSQL 클라이언트 도구를 사용하여 Aurora DNS 엔드포인트에 연결해야 합니다.

Aurora 엔드포인트 연결 확인

올바른 Aurora 엔드포인트에 연결하고 있는지 확인합니다.

클라이언트가 현재 연결 중인 클러스터 라이터, 리더 및 사용자 지정 엔드포인트를 확인하려면 다음 단계를 따르세요.

1.    Amazon RDS 콘솔을 엽니다.

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

3.    리소스 그룹에서 DB 클러스터를 선택합니다. 그런 다음 Connectivity & Security(연결 및 보안)의 엔드포인트 섹션에서 클러스터 세부 정보를 검토합니다.

4.    telnet/nc를 사용하여 엔드포인트에 대한 연결을 확인합니다.

telnet <RDS endpoint> <port number>
nc -vz <RDS endpoint> <port number>

telnet 예시 결과:

[root@ip-172-XX-X-XX ~]# telnet postgres.cluster-XXXXXXX.us-east-1.rds.amazonaws.com 5432
Trying 172.XX.X.XX...
Connected to postgres.cluster-XXXXXXX.us-east-1.rds.amazonaws.com.

netcat 예시 결과:

[root@ip-172-XX-X-XX ~]# nc -vz postgres.cluster-XXXXXXX.us-east-1.rds.amazonaws.com 5432
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Connected to 172.XX.X.XX:5432.
Ncat: 0 bytes sent, 0 bytes received in 0.01 seconds.

5.    연결한 후, 사용 중인 엔진에 따라 다음 명령을 실행하여 리더 또는 라이터 엔드포인트에 연결되었는지 확인합니다.

"SHOW GLOBAL VARIABLES LIKE 'innodb_read_only';"  --> MySQL
"SHOW transaction_read_only;" --> PostgreSQL

Amazon Aurora PostgreSQL 호환 에디션의 라이터 및 리더가 작성한 다음 예시 출력을 참조하세요.

라이터:

postgres=> SHOW transaction_read_only;
 transaction_read_only
-----------------------
 off
(1 row)

리더:

postgres=> SHOW transaction_read_only;
 transaction_read_only
-----------------------
 on
(1 row)

Amazon Aurora MySQL 호환 에디션의 라이터 및 리더가 작성한 다음 예시 결과를 참조하세요.

라이터:

SHOW GLOBAL VARIABLES LIKE 'innodb_read_only';
innodb_read_only | OFF

리더:

SHOW GLOBAL VARIABLES LIKE 'innodb_read_only';
innodb_read_only | ON

변수가 ON(사용)으로 설정된 경우 Aurora 복제본에 연결됩니다. 이 변수가 OFF(사용 중지)로 설정되어 있으면 기본 인스턴스에 연결된 것입니다.

Amazon EC2 인스턴스에서 DB 인스턴스로의 자동 연결 설정

Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스에서 DB 인스턴스에 연결할 수 있습니다. 이렇게 하려면 Amazon RDS 콘솔에서 EC2 연결 옵션 설정을 사용하세요.

이 연결을 설정하기 전에 EC2 인스턴스가 DB 인스턴스와 동일한 VPC에 있는지 확인해야 합니다. DB 인스턴스와 동일한 VPC에 있는 EC2 인스턴스가 없는 경우 콘솔을 사용하여 서브넷에서 새 EC2 인스턴스를 시작합니다.

연결을 설정하는 데 사용하는 사용자에 올바른 권한이 있는지 확인합니다.

  • ec2:AuthorizeSecurityGroupEgress
  • ec2:AuthorizeSecurityGroupIngress
  • ec2:CreateSecurityGroup
  • ec2:DescribeInstances
  • ec2:DescribeNetworkInterfaces
  • ec2:DescribeSecurityGroups
  • ec2:ModifyNetworkInterfaceAttribute
  • ec2:RevokeSecurityGroupEgress

권한을 확인한 후 DB 인스턴스를 구성하여 자동 연결을 설정합니다.

1.    Amazon RDS 콘솔을 엽니다.

2.    탐색 창에서 Databases(데이터베이스)를 선택하고 DB 인스턴스를 선택합니다. Aurora 데이터베이스를 사용하는 경우 클러스터를 대신 선택합니다.

3.    Actions(작업)에서 Set up EC2 connection(EC2 연결 설정)을 선택합니다.

4.    Set up EC2 connection(EC2 연결 설정) 페이지에서 DB 인스턴스 또는 클러스터에 연결하려는 EC2 인스턴스를 선택합니다. 동일한 VPC에 EC2 인스턴스가 없는 경우 Create EC2 instance(EC2 인스턴스 생성)를 선택하여 인스턴스를 생성합니다. 이 경우 새 EC2 인스턴스가 DB 인스턴스 또는 클러스터와 동일한 VPC에 있는지 확인해야 합니다.

5.    Continue(계속)를 선택합니다.

6.    Review and confirm(검토 및 확인) 페이지에서 Amazon RDS가 EC2 인스턴스와의 연결을 설정하기 위해 적용할 변경 사항을 검토합니다. 변경 내용이 올바르면 Set up connection(연결 설정)을 선택합니다.


관련 정보

Amazon RDS DB 인스턴스에 연결할 수 없음

Amazon RDS에서의 보안

Amazon Virtual Private Cloud에서의 보안

EC2 인스턴스와 RDS 데이터베이스를 자동으로 연결

AWS 공식
AWS 공식업데이트됨 일 년 전
댓글 없음

관련 콘텐츠