자습서: Amazon RDS 데이터베이스에 Amazon EC2 인스턴스 연결 - Amazon Elastic Compute Cloud

자습서: Amazon RDS 데이터베이스에 Amazon EC2 인스턴스 연결

자습서 목표

이 자습서의 목표는 AWS Management Console을 사용하여 Amazon EC2 인스턴스와 Amazon RDS 데이터베이스 간의 보안 연결을 구성하는 방법을 알아보는 데 있습니다.

연결을 구성하기 위한 다양한 옵션이 있습니다. 이 자습서에서는 다음과 같은 세 가지 옵션을 살펴봅니다.

컨텍스트

EC2 인스턴스와 RDS 데이터베이스 간의 연결을 구성하려는 이유에 대한 컨텍스트로, 다음 시나리오를 살펴보겠습니다. 즉, 웹 사이트에서 사용자가 작성할 양식을 제시합니다. 이 경우 데이터베이스에 양식 데이터를 캡처해야 합니다. 웹 서버로 구성된 EC2 인스턴스에 웹 사이트를 호스팅할 수 있으며, RDS 데이터베이스에 양식 데이터를 캡처할 수 있습니다. 양식 데이터가 EC2 인스턴스에서 RDS 데이터베이스로 이동할 수 있도록 EC2 인스턴스와 RDS 데이터베이스는 서로 연결되어야 합니다. 이 자습서에서는 해당 연결을 구성하는 방법을 설명합니다. 이는 EC2 인스턴스와 RDS 데이터베이스를 연결하기 위한 사용 사례의 한 예일 뿐입니다.

아키텍처

다음 다이어그램은 생성된 리소스와 이 자습서의 모든 단계를 완료한 결과의 아키텍처 구성을 보여 줍니다.

생성된 리소스 및 이 자습서의 모든 단계를 완료한 결과의 아키텍처 구성입니다.

다이어그램에서는 다음과 같이 생성할 리소스를 보여 줍니다.

  • 동일한 AWS 리전, VPC 및 가용 영역에 EC2 인스턴스와 RDS 데이터베이스를 생성합니다.

  • 퍼블릭 서브넷에 EC2 인스턴스를 생성합니다.

  • 프라이빗 서브넷에 RDS 데이터베이스를 생성합니다.

    RDS 콘솔을 사용하여 RDS 데이터베이스를 생성하고 EC2 인스턴스를 자동으로 연결하면 데이터베이스에 대한 VPC, DB 서브넷 그룹 및 퍼블릭 액세스 설정이 자동으로 선택됩니다. RDS 데이터베이스는 EC2 인스턴스와 동일한 VPC 내의 프라이빗 서브넷에 자동으로 생성됩니다.

  • 인터넷 사용자는 인터넷 게이트웨이를 통해 SSH 또는 HTTP/HTTPS를 사용하여 EC2 인스턴스에 연결할 수 있습니다.

  • 인터넷 사용자는 RDS 데이터베이스에 직접 연결할 수 없습니다. EC2 인스턴스만 RDS 데이터베이스에 연결됩니다.

  • 자동 연결 기능을 사용하여 EC2 인스턴스와 RDS 데이터베이스 간의 트래픽을 허용할 때 다음 보안 그룹이 자동으로 생성되고 추가됩니다.

    • 보안 그룹 ec2-rds-x가 생성되어 EC2 인스턴스에 추가됩니다. 이 보안 그룹에는 rds-ec2-x 보안 그룹을 대상으로 참조하는 아웃바운드 규칙이 하나 있습니다. 이를 통해 EC2 인스턴스의 트래픽은 rds-ec2-x 보안 그룹이 있는 RDS 데이터베이스에 도달할 수 있습니다.

    • 보안 그룹 rds-ec2-x가 생성되어 RDS 데이터베이스에 추가됩니다. 이 보안 그룹에는 ec2-rds-x 보안 그룹을 소스로 참조하는 인바운드 규칙이 하나 있습니다. 이를 통해 ec2-rds-x 보안 그룹이 있는 EC2 인스턴스의 트래픽이 RDS 데이터베이스에 도달할 수 있습니다.

    별도의 보안 그룹(EC2 인스턴스용 보안 그룹과 RDS 데이터베이스용 보안 그룹)을 사용하면 인스턴스와 데이터베이스의 보안을 더 적절히 제어할 수 있습니다. 인스턴스와 데이터베이스 모두에서 동일한 보안 그룹을 사용하고 데이터베이스에만 적합하도록 보안 그룹을 수정한 경우 이러한 수정은 인스턴스와 데이터베이스 모두에 영향을 미칩니다. 다시 말해서 하나의 보안 그룹을 사용하는 경우 보안 그룹이 리소스(인스턴스 또는 데이터베이스)에 연결되어 있다는 사실을 잊어버려서 의도치 않게 리소스의 보안을 수정할 수 있습니다.

    또한 자동으로 생성되는 보안 그룹은 워크로드별 보안 그룹 쌍을 생성하여 데이터베이스 포트에서 이 워크로드에 대한 상호 연결만 허용하므로 최소 권한을 준수합니다.

고려 사항

이 자습서에서 작업을 완료할 때 다음을 고려하세요.

  • Two consoles(두 개의 콘솔) - 이 자습서에서는 다음과 같은 두 개의 콘솔을 사용합니다.

    • Amazon EC2 콘솔 - EC2 콘솔을 사용하여 인스턴스를 시작하고, EC2 인스턴스를 RDS 데이터베이스에 자동으로 연결하며, 수동 옵션의 경우 보안 그룹을 생성해 연결을 구성합니다.

    • Amazon RDS 콘솔 - RDS 콘솔을 사용하여 RDS 데이터베이스를 생성하고, EC2 인스턴스를 RDS 데이터베이스에 자동으로 연결합니다.

  • One VPC(하나의 VPC) - 자동 연결 기능을 사용하려면 EC2 인스턴스와 RDS 데이터베이스가 동일한 VPC에 있어야 합니다.

    EC2 인스턴스와 RDS 데이터베이스 간의 연결을 수동으로 구성하는 경우 한 VPC에서 EC2 인스턴스를 시작하고 다른 VPC에서 RDS 데이터베이스를 시작할 수 있습니다. 그러나 라우팅 및 VPC 구성을 추가로 설정해야 합니다. 이 자습서에서는 이 시나리오를 다루지 않습니다.

  • 하나의 AWS 리전 - EC2 인스턴스와 RDS 데이터베이스가 동일한 리전에 있어야 합니다.

  • Two security groups(두 개의 보안 그룹) - EC2 인스턴스와 RDS 데이터베이스 간의 연결은 EC2 인스턴스용 보안 그룹과 RDS 데이터베이스용 보안 그룹이라는 두 개의 보안 그룹에 의해 구성됩니다.

    EC2 콘솔 또는 RDS 콘솔에서 자동 연결 기능을 사용하여 연결을 구성하면(이 자습서의 옵션 1 및 옵션 2) 보안 그룹이 자동으로 생성되어 EC2 인스턴스 및 RDS 데이터베이스에 할당됩니다.

    자동 연결 기능을 사용하지 않는 경우 보안 그룹을 수동으로 생성하고 할당해야 합니다. 이 자습서의 옵션 3에서 이 작업을 수행합니다.

자습서를 완료하는 데 걸리는 시간

30 분

자습서를 전체적으로 한 번에 완료하거나 한번에 한 작업씩 완료할 수 있습니다.

비용

이 튜토리얼을 완료하면 생성하는 AWS 리소스에 대해 비용이 발생할 수 있습니다.

AWS 계정을 생성한 지 12개월 미만이고 프리 티어 요구 사항에 따라 리소스를 구성하는 경우 프리 티어로 Amazon EC2를 사용할 수 있습니다.

EC2 인스턴스와 RDS 데이터베이스가 서로 다른 가용 영역에 있는 경우 데이터 전송 요금이 발생합니다. 이러한 요금이 발생되지 않도록 하려면 EC2 인스턴스와 RDS 데이터베이스가 동일한 가용 영역에 있어야 합니다. 데이터 전송 요금에 관한 자세한 내용은 Amazon EC2 온디맨드 요금 페이지에서 데이터 전송을 참조하세요.

자습서를 완료한 후 비용이 발생되지 않도록 하려면 더 이상 필요하지 않은 리소스를 삭제해야 합니다. 리소스를 삭제하는 구체적인 단계는 정리 단원을 참조하세요.