Amazon EC2 시작 유형과 Amazon RDS 데이터베이스에 대한 Amazon ECS 태스크 간 연결 문제를 해결하려면 어떻게 해야 합니까?

3분 분량
0

애플리케이션이 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스에서 Amazon Elastic Container Service(Amazon ECS)가 시작한 일련의 태스크로 실행 중입니다. 그런데 애플리케이션에서 Amazon Relational Database Service(Amazon RDS) 데이터베이스와 통신할 수 없습니다.

해결 방법

네트워크 구성 확인

컨테이너 인스턴스가 데이터베이스에 대한 연결을 설정할 수 있는지 확인하려면, Linux 기반 또는 Windows 기반 컨테이너 인스턴스에 대해 다음 단계를 완료하십시오.

Linux 기반 컨테이너 인스턴스:

1.    SSH를 사용하여 작업이 배치되는 컨테이너 인스턴스에 연결

2.    RDS 데이터베이스에 연결하려면 다음 명령을 실행합니다.

$ telnet test.ab12cde3fg4.us-east-1.rds.amazonaws.com 3306

참고: test.ab12cde3fg4.us-east-1.rds.amazonaws.com을 데이터베이스 엔드포인트로 바꿉니다. 3306을 데이터베이스 포트로 바꿉니다.

출력은 다음과 유사합니다.

> Trying 172.31.122.28
 > Connected to test.ab12cde3fg4.us-east-1.rds.amazonaws.com
 > Escape character is '^]'.

중요: Telnet은 Amazon ECS 최적화 Amazon Machine Image(AMI)에 사전 설치되어 있지 않습니다. Telnet을 설치하려면 sudo yum install -y 명령을 실행합니다.

Windows 기반 컨테이너 인스턴스:

1.    RDP(원격 데스크톱 프로토콜)를 사용하여 작업이 배치된 컨테이너 인스턴스에 연결합니다.

2.    RDS 데이터베이스에 연결하려면 Windows 명령 프롬프트 또는 Windows PowerShell을 사용하여 다음 명령을 실행합니다.

$ telnet test.ab12cde3fg4.us-east-1.rds.amazonaws.com 3306

참고: test.ab12cde3fg4.us-east-1.rds.amazonaws.com을 데이터베이스 엔드포인트로 바꿉니다. 3306을 데이터베이스 포트로 바꿉니다.

중요: Telnet은 Amazon ECS 최적화 Windows AMI에 사전 설치되어 있지 않습니다. Telnet을 설치하려면 관리자로 PowerShell을 사용하여 Install-WindowsFeature -Name Telnet-Client 명령을 실행합니다.

연결이 설정된 경우 빈 페이지가 나타납니다.

연결을 설정할 수 없고 "Connection Timed Out" 또는 “Connect failed” 오류를 수신할 경우, 다음 단계를 완료하십시오.

1.    연결된 보안 그룹이 RDS 데이터베이스에 대한 액세스를 허용하는지 확인합니다. DescribeInstances API 호출을 사용하거나 Amazon EC2 콘솔에서 선택한 인스턴스 ID에 대한 [설명(Description)] 탭을 사용할 수 있습니다.

참고: 브리지호스트 네트워킹 모드에서 컨테이너 인스턴스에 연결된 보안 그룹은 데이터베이스에 대한 액세스를 제어합니다. awsvpc 네트워크 모드에서 서비스 또는 작업 시작 중에 연결된 보안 그룹은 액세스를 제어합니다.

팁: 모범 사례로서, 데이터베이스 포트의 수신 트래픽을 허용하는 보안 그룹을 생성합니다. 그런 다음, 보안 그룹을 데이터베이스 및 컨테이너 인스턴스에 연결하거나 보안 그룹을 awsvpc를 기준으로 한 작업에 연결합니다.

2.    네트워크 ACL(네트워크 액세스 제어 목록) 및 서브넷에 연결된 라우팅 테이블이 데이터베이스에 대한 액세스를 허용하는지 확인합니다.

데이터베이스 연결 파라미터 확인

1.    컨테이너 정의의 [환경(environment)] 섹션에서 환경 변수를 안전하게 전달합니다. 안전하게 전달하려면 AWS Systems Manager Parameter Store 또는 AWS Secrets Manager에서 환경 변수를 참조하십시오.

참고: 애플리케이션은 파라미터(예: 데이터베이스 엔드포인트, 데이터베이스 포트 및 데이터베이스 액세스 자격 증명)를 사용하여 데이터베이스에 연결합니다. 이러한 파라미터는 일반적으로 환경 변수를 작업에 전달합니다.

2.    작업의 컨테이너가 데이터베이스와 연결이 설정되었지만 잘못된 연결 파라미터(예: 데이터베이스 사용자 이름 또는 데이터베이스 암호)로 인해 인증할 수 없는 경우, 데이터베이스 암호를 재설정합니다.

3.    선행 또는 후행 문자 공백을 연결 파라미터에서 제거합니다.

참고: 구문 오류가 있으면 컨테이너와 RDS 데이터베이스 간의 연결이 실패할 수 있습니다.</p


AWS 공식
AWS 공식업데이트됨 4년 전