옵션 3: 보안 그룹을 만들어 EC2 인스턴스를 RDS 데이터베이스에 수동으로 연결하기
옵션 3: 보안 그룹을 만들어 EC2 인스턴스를 RDS 데이터베이스에 수동으로 연결하기
옵션 3의 목적은 자동 연결 기능의 구성을 수동으로 재현해 EC2 인스턴스와 RDS 데이터베이스 간의 연결을 수동으로 구성하는 방법을 배우는 것입니다.
출처: 문서
본문
옵션 3의 목적은 자동 연결 기능의 구성을 수동으로 재현해 EC2 인스턴스와 RDS 데이터베이스 간의 연결을 수동으로 구성하는 방법을 배우는 것입니다.
시작하기 전에 (Before you begin)
이 자습서를 완료하려면 다음이 필요합니다.
ec2:AssociateRouteTableec2:AuthorizeSecurityGroupEgressec2:CreateRouteTableec2:CreateSecurityGroupec2:CreateSubnetec2:DescribeInstancesec2:DescribeNetworkInterfacesec2:DescribeRouteTablesec2:DescribeSecurityGroupsec2:DescribeSubnetsec2:ModifyNetworkInterfaceAttributeec2:RevokeSecurityGroupEgress
작업 1 (선택 사항): EC2 인스턴스 시작하기
Note
이 자습서의 초점은 인스턴스 시작이 아니에요. 이미 Amazon EC2 인스턴스가 있고 이 자습서에서 사용하고 싶다면 이 작업을 건너뛸 수 있습니다.
이 작업의 목적은 EC2 인스턴스와 Amazon RDS 데이터베이스 간의 연결을 구성하는 작업 3을 완료할 수 있도록 EC2 인스턴스를 시작하는 것입니다. 이 작업의 단계는 EC2 인스턴스를 다음과 같이 구성합니다.
- 내 IP 주소에서 SSH 허용
- 어디서나 HTTPS 트래픽 허용
- 어디서나 HTTP 트래픽 허용
Important
프로덕션 환경에서는 특정 요구사항에 맞게 인스턴스를 구성해야 해요.
EC2 인스턴스를 시작하려면
- Amazon EC2 콘솔(https://console.aws.amazon.com/ec2/)을 엽니다.
- 탐색 창에서 Instances를 선택하고 Launch instances를 선택합니다.
- 인스턴스는 RDS 데이터베이스와 같은 VPC에 있어야 합니다. 기본적으로 VPC는 하나만 있습니다.
- 인스턴스를 시작하는 VPC에는 인터넷에서 웹 서버에 액세스할 수 있도록 인터넷 게이트웨이가 연결되어 있어야 합니다. 기본 VPC에는 인터넷 게이트웨이가 자동으로 설정되어 있습니다.
- 인스턴스가 공용 IP 주소를 받도록 하려면 Auto-assign public IP에서 Enable이 선택되어 있는지 확인합니다. Disable이 선택되어 있다면 (Network Settings 오른쪽의) Edit를 선택한 다음 Auto-assign public IP에서 Enable을 선택합니다.
Note
Free tier 인스턴스에 대해 auto-assign public IP를 비활성화해야 하는 경우가 있을 수 있어요. free tier에 대한 자세한 내용은 Free tier comparison을 참고하세요.
- **Firewall (security groups)**에서 새 보안 그룹을 만들고 인터넷에서 HTTPS 및 HTTP 트래픽을 허용하는 규칙을 추가합니다.
- Summary 패널에서 인스턴스 구성을 검토한 다음 Launch instance를 선택합니다.
- View all instances를 선택해 확인 페이지를 닫고 콘솔로 돌아갑니다. 인스턴스는 먼저
pending상태가 되고 그 다음running상태가 됩니다. 인스턴스 시작에 실패하거나 상태가 running 대신 즉시 terminated가 된다면 Troubleshoot Amazon EC2 instance launch issues를 참고하세요.
인스턴스 시작에 대한 자세한 내용은 Launch an EC2 instance using the launch instance wizard in the console을 참고하세요.
작업 2 (선택 사항): RDS 데이터베이스 만들기
Note
이 자습서의 이 부분의 초점은 RDS 데이터베이스 만들기가 아니에요. 이미 RDS 데이터베이스가 있고 이 자습서에서 사용하고 싶다면 이 작업을 건너뛸 수 있습니다.
이 작업의 목적은 RDS 데이터베이스를 만드는 것입니다. 이 인스턴스는 작업 3에서 EC2 인스턴스에 연결할 때 사용합니다. 이 작업의 단계는 RDS 데이터베이스를 다음과 같이 구성합니다.
- 엔진 유형: MySQL
- 템플릿: Free tier
- DB 인스턴스 식별자:
tutorial-database-manual - DB 인스턴스 클래스:
db.t3.micro
Important
프로덕션 환경에서는 특정 요구사항에 맞게 인스턴스를 구성해야 해요.
MySQL DB 인스턴스를 만들려면
- Amazon RDS 콘솔(https://console.aws.amazon.com/rds/)을 엽니다.
- (오른쪽 상단의) 리전 선택기에서 EC2 인스턴스를 만든 AWS 리전을 선택합니다. EC2 인스턴스와 DB 인스턴스는 같은 리전에 있어야 합니다.
- 대시보드에서 Create database를 선택합니다.
- Choose a database creation method 아래에서 Easy create를 선택합니다. 이 옵션을 선택하면 연결을 자동으로 구성하는 자동 연결 기능을 사용할 수 없습니다.
- Engine options 아래에서 Engine type에 대해 MySQL을 선택합니다.
- DB instance size에 대해 Free tier를 선택합니다.
- DB instance identifier에 RDS 데이터베이스의 이름을 입력합니다. 이 자습서에서는
tutorial-database-manual을 입력합니다. - Master username에 기본 이름인
admin을 그대로 둡니다. - Master password에 이 자습서에서 기억할 수 있는 비밀번호를 입력한 다음, Confirm password에 비밀번호를 다시 입력합니다.
- Create database를 선택합니다. Databases 화면에서 새 DB 인스턴스의 상태는 DB 인스턴스를 사용할 준비가 될 때까지 Creating입니다. 상태가 Available로 변경되면 DB 인스턴스에 연결할 수 있습니다. DB 인스턴스 클래스와 스토리지 양에 따라 새 인스턴스를 사용할 수 있게 되기까지 최대 20분이 걸릴 수 있습니다.
작업 3: 보안 그룹을 만들고 인스턴스에 할당해 EC2 인스턴스를 RDS 데이터베이스에 수동으로 연결하기
이 작업의 목적은 다음을 수동으로 수행해 자동 연결 기능의 연결 구성을 재현하는 것입니다. 두 개의 새 보안 그룹을 만든 다음 EC2 인스턴스와 RDS 데이터베이스에 각각 보안 그룹을 하나씩 추가합니다.
두 개의 새 보안 그룹을 만들고 각각 EC2 인스턴스와 RDS 데이터베이스에 할당하려면
-
EC2 인스턴스 보안 그룹을 만듭니다.
- 탐색 창에서 Security Groups를 선택합니다.
- Create security group을 선택합니다.
- Security group name에 보안 그룹의 설명적인 이름을 입력합니다. 이 자습서에서는
ec2-rds-manual-configuration을 입력합니다. - Description에 간단한 설명을 입력합니다. 이 자습서에서는 "EC2 instance security group to allow EC2 instance to securely connect to RDS database"를 입력합니다.
- Create security group을 선택합니다. RDS 데이터베이스 보안 그룹을 만든 후 이 보안 그룹으로 돌아와 아웃바운드 규칙을 추가합니다.
-
RDS 데이터베이스 보안 그룹을 만듭니다.
- 탐색 창에서 Security Groups를 선택합니다.
- Create security group을 선택합니다.
- Security group name에
rds-ec2-manual-configuration을 입력합니다. - 인바운드 규칙을 추가합니다. Type에서 MYSQL/Aurora를 선택하고, Source에서 이 절차 2단계에서 만든 EC2 인스턴스 보안 그룹
ec2-rds-manual-configuration을 선택합니다. - Create security group을 선택합니다.
-
EC2 인스턴스 보안 그룹에 아웃바운드 규칙을 추가합니다.
- 이전에 만든
ec2-rds-manual-configuration보안 그룹을 선택합니다. - 아웃바운드 규칙을 편집하고 규칙을 추가합니다. Type에서 MYSQL/Aurora를 선택하고, Destination에서 이 절차 3단계에서 만든 RDS 데이터베이스 보안 그룹
rds-ec2-manual-configuration을 선택합니다. - Save rules를 선택합니다.
- 이전에 만든
-
EC2 인스턴스에 EC2 인스턴스 보안 그룹을 할당합니다.
- 탐색 창에서 Instances를 선택합니다.
- EC2 인스턴스를 선택하고 Actions, Security, Change security groups를 선택합니다.
- Associated security groups 아래에서 Select security groups 필드를 선택하고, 이전에 만든
ec2-rds-manual-configuration을 선택한 다음 Add security group을 선택합니다. - Save를 선택합니다.
-
RDS 데이터베이스에 RDS 데이터베이스 보안 그룹을 할당합니다.
- Amazon RDS 콘솔(https://console.aws.amazon.com/rds/)을 엽니다.
- 탐색 창에서 Databases를 선택하고 데이터베이스를 선택합니다.
- Modify를 선택합니다.
- Connectivity 아래에서 Security group에 대해 이전에 만든
rds-ec2-manual-configuration을 선택한 다음 Continue를 선택합니다. - Scheduling of modifications 아래에서 Apply immediately를 선택합니다.
- Modify DB instance를 선택합니다.
이제 자동 연결 기능을 사용할 때 발생하는 자동 단계를 모방하는 수동 단계를 완료했습니다.
이 자습서의 옵션 3을 완료했습니다. 옵션 1, 2, 3을 모두 완료했고 이 자습서에서 만든 리소스를 더 이상 필요로 하지 않는다면 불필요한 비용이 발생하지 않도록 삭제해야 합니다. 자세한 내용은 Task 4 (Optional): Clean up을 참고하세요.
작업 4 (선택 사항): 정리 (Clean up)
Warning
인스턴스를 종료하는 것은 영구적이며 되돌릴 수 없습니다. 인스턴스를 종료하면 더 이상 연결할 수 없고 복구할 수 없습니다. 종료 시 삭제되도록 구성된 모든 연결된 Amazon EBS 볼륨도 영구적으로 삭제되며 복구할 수 없습니다. 인스턴스 스토어 볼륨에 저장된 모든 데이터는 영구적으로 손실됩니다. 자세한 내용은 How instance termination works을 참고하세요.
인스턴스를 종료하기 전에 종료 후에도 유지해야 하는 모든 데이터를 영구 스토리지에 백업했는지 확인하세요.
이제 자습서를 완료했으므로 더 이상 사용하지 않을 리소스를 정리(삭제)하는 것이 좋은 관행입니다. AWS 리소스를 정리하면 계정에 추가 요금이 발생하지 않습니다.
콘솔을 사용해 인스턴스를 종료하려면
- Amazon EC2 콘솔(https://console.aws.amazon.com/ec2/)을 엽니다.
- 탐색 창에서 Instances를 선택합니다.
- 이 자습서를 위해 만든 인스턴스를 선택하고 Instance state, Terminate instance를 선택합니다.
- 확인을 묻는 메시지가 표시되면 Terminate를 선택합니다.
콘솔을 사용해 RDS 데이터베이스를 삭제하려면
- Amazon RDS 콘솔(https://console.aws.amazon.com/rds/)을 엽니다.
- 탐색 창에서 Databases를 선택합니다.
- 이 자습서를 위해 만든 RDS 데이터베이스를 선택하고 Actions, Delete를 선택합니다.
- 상자에
delete me를 입력한 다음 Delete를 선택합니다.