옵션 3: 보안 그룹을 생성하여 수동으로 RDS 데이터베이스에 인스턴스 연결
옵션 3의 목표는 자동 연결 기능의 구성을 수동으로 재현하여 EC2 인스턴스와 RDS 데이터베이스 간의 연결을 수동으로 구성하는 방법을 알아보는 데 있습니다.
업무
시작하기 전 준비 사항
이 자습서를 완료하려면 다음이 필요합니다.
-
RDS 데이터베이스와 동일한 VPC에 있는 EC2 인스턴스입니다. 기존 EC2 인스턴스를 사용하거나 작업 1의 단계에 따라 새 인스턴스를 생성할 수 있습니다.
-
EC2 인스턴스와 동일한 VPC에 있는 RDS 데이터베이스 - 기존 RDS 데이터베이스를 사용하거나 작업 2의 단계에 따라 새 데이터베이스를 생성할 수 있습니다.
-
다음 작업을 호출할 수 있는 권한:
-
ec2:AssociateRouteTable
-
ec2:AuthorizeSecurityGroupEgress
-
ec2:CreateRouteTable
-
ec2:CreateSecurityGroup
-
ec2:CreateSubnet
-
ec2:DescribeInstances
-
ec2:DescribeNetworkInterfaces
-
ec2:DescribeRouteTables
-
ec2:DescribeSecurityGroups
-
ec2:DescribeSubnets
-
ec2:ModifyNetworkInterfaceAttribute
-
ec2:RevokeSecurityGroupEgress
-
작업 1(선택 사항): EC2 인스턴스 시작
참고
인스턴스 시작은 이 자습서에서 중점적으로 다루는 사항이 아닙니다. Amazon EC2 인스턴스가 이미 있고 이 자습서에서 해당 인스턴스를 사용하려는 경우 이 작업을 건너뛸 수 있습니다.
이 작업의 목표는 EC2 인스턴스와 Amazon RDS 데이터베이스 간의 연결을 구성하는 작업 3을 완료할 수 있도록 EC2 인스턴스를 시작하는 데 있습니다. 이 작업의 단계에서는 다음과 같이 EC2 인스턴스를 구성합니다.
-
인스턴스 이름:
tutorial-instance
-
AMI: Amazon Linux 2
-
인스턴스 유형:
t2.micro
-
퍼블릭 IP 자동 할당: 활성화됨
-
다음과 같은 세 가지 규칙이 있는 보안 그룹:
-
IP 주소에서 SSH 허용
-
어디에서 들어오든 HTTPS 트래픽 허용
-
어디에서 들어오든 HTTP 트래픽 허용
-
중요
프로덕션 환경에서는 특정 요구를 충족하도록 인스턴스를 구성해야 합니다.
EC2 인스턴스 시작
AWS Management Console에 로그인하고 https://console.aws.amazon.com/ec2/
에서 Amazon EC2 콘솔을 엽니다. -
EC2 Dashboard(EC2 대시보드)에서 Launch instance(인스턴스 시작)를 선택하세요.
-
Name and tags(이름 및 태그)에서 Name(이름)에 인스턴스를 식별하는 이름을 입력합니다. 이 자습서에서는 인스턴스 이름을
tutorial-instance-manual-1
로 지정합니다. 인스턴스 이름을 반드시 입력해야 하는 것은 아니지만, 해당 이름을 통해 인스턴스를 쉽게 식별할 수 있습니다. -
Application and OS Images(애플리케이션 및 OS 이미지)에서 웹 서버 요구에 맞는 AMI를 선택합니다. 이 자습서에서는 Amazon Linux를 사용합니다.
-
Instance type(인스턴스 유형)에서 Instance type(인스턴스 유형)으로 웹 서버 요구에 맞는 인스턴스 유형을 선택합니다. 이 자습서에서는
t2.micro
를 사용합니다. -
Key pair (login)(키 페어(로그인))에서 Key pair name(키 페어 이름)에 대해 키 페어를 선택합니다.
-
Network settings(네트워크 설정)에서 다음을 수행합니다.
-
기본 VPC 또는 서브넷을 변경하지 않은 경우 Network(네트워크) 및 Subnet(서브넷)의 기본 설정을 유지할 수 있습니다.
기본 VPC 또는 서브넷을 변경한 경우 다음을 확인합니다.
-
인스턴스는 RDS 데이터베이스와 동일한 VPC에 있어야 합니다. 기본적으로 VPC는 하나만 있습니다.
-
인스턴스를 시작하는 VPC에는 인터넷 게이트웨이가 연결되어 있어야 합니다. 그래야 인터넷에서 웹 서버에 액세스할 수 있습니다. 기본 VPC는 인터넷 게이트웨이를 통해 자동으로 설정됩니다.
-
인스턴스가 퍼블릭 IP 주소를 수신하도록 하려면 Auto-assign public IP(퍼블릭 IP 자동 할당)에 대해 Enable(활성화)이 선택되어 있는지 확인합니다. Disable(비활성화)이 선택된 경우 Edit(편집)(Network Settings(네트워크 설정) 오른쪽에 있음)를 선택한 다음, Auto-assign public IP(퍼블릭 IP 자동 할당)에서 Enable(활성화)을 선택합니다.
-
-
SSH를 사용하여 인스턴스에 연결하려면 컴퓨터의 퍼블릭 IPv4 주소로부터의 SSH(Linux) 또는 RDP(Windows) 트래픽을 승인하는 보안 그룹 규칙이 필요합니다. 기본적으로 인스턴스를 시작하면 어디에서 들어오든 인바운드 SSH 트래픽을 허용하는 규칙을 사용하여 새 보안 그룹이 생성됩니다.
자체 IP 주소만 인스턴스에 연결할 수 있도록 하려면 방화벽(보안 그룹) 아래의 다음으로부터의 SSH 트래픽 허용 확인란 옆에 있는 드롭다운 목록에서 내 IP를 선택합니다.
-
인터넷에서 인스턴스로의 트래픽을 허용하려면 다음 확인란을 선택합니다.
-
Allow HTTPs traffic from the internet(인터넷에서 오는 HTTPS 트래픽 허용)
-
Allow HTTP traffic from the internet(인터넷에서 오는 HTTP 트래픽 허용)
-
-
-
Summary(요약) 패널에서 인스턴스 구성을 검토한 다음, Launch instance(인스턴스 시작)를 선택합니다.
-
모든 인스턴스 보기(View all instances)를 선택하여 확인 페이지를 닫고 콘솔로 돌아갑니다. 인스턴스는 먼저
pending
상태에 있다가running
상태가 됩니다.인스턴스가 시작하지 않거나 상태가
terminated
이 아닌running
로 변경되는 경우, Amazon EC2 인스턴스 시작 문제 해결 섹션을 참조하세요.
인스턴스 시작에 관한 자세한 내용은 콘솔에서 인스턴스 시작 마법사를 사용하여 EC2 인스턴스 시작 섹션을 참조하세요.
작업 2(선택 사항): RDS 데이터베이스 생성
참고
RDS 데이터베이스 생성은 자습서의 이 부분에서 중점적으로 다루는 사항이 아닙니다. RDS 데이터베이스가 이미 있고 이 자습서에서 해당 데이터베이스를 사용하려는 경우 이 작업을 건너뛸 수 있습니다.
이 작업의 목표는 RDS 데이터베이스를 생성하는 데 있습니다. 작업 3에서 EC2 인스턴스에 연결할 때 이 인스턴스를 사용합니다. 이 작업의 단계에서는 다음과 같이 RDS 데이터베이스를 구성합니다.
-
엔진 유형: MySQL
-
템플릿: 프리 티어
-
DB 인스턴스 식별자:
tutorial-database-manual
-
DB 인스턴스 클래스:
db.t3.micro
중요
프로덕션 환경에서는 특정 요구를 충족하도록 인스턴스를 구성해야 합니다.
MySQL DB 인스턴스를 만들려면
https://console.aws.amazon.com/rds/
에서 Amazon RDS 콘솔을 엽니다. -
리전 선택기(오른쪽 상단)에서 EC2 인스턴스를 생성한 AWS 리전을 선택합니다. EC2 인스턴스와 DB 인스턴스가 동일한 리전에 있어야 합니다.
-
대시보드에서 Create database(데이터베이스 생성)를 선택합니다.
-
Choose a database creation method(데이터베이스 생성 방법 선택)에서 Easy create(손쉬운 생성)를 선택합니다. 이 옵션을 선택하면 연결을 자동으로 구성하는 자동 연결 기능을 사용할 수 없습니다.
-
Engine options(엔진 옵션)에서 Engine type(엔진 유형)으로 MySQL을 선택합니다.
-
DB instance size(DB 인스턴스 크기)에서 프리 티어를 선택합니다.
-
DB instance identifier(DB 인스턴스 식별자)에 RDS 데이터베이스 이름을 입력합니다. 이 자습서에서는
tutorial-database-manual
을 입력합니다. -
Master username(마스터 사용자 이름)의 경우 기본 이름인
admin
을 그대로 둡니다. -
Master password(마스터 암호)에 이 자습서에서 기억할 수 있는 암호를 입력한 다음, Confirm password(암호 확인)에 암호를 다시 입력합니다.
-
데이터베이스 생성를 선택합니다.
Databases(데이터베이스) 화면에서 DB 인스턴스를 사용할 준비가 될 때까지 새 DB 인스턴스의 Status(상태)는 Creating(생성 중)입니다. 상태가 Available(사용 가능)로 변경되면 DB 인스턴스에 연결할 수 있습니다. DB 인스턴스 클래스와 스토리지의 양에 따라 새 인스턴스를 사용할 수 있을 때까지 최대 20분이 걸릴 수 있습니다.
작업 3: 보안 그룹을 생성하여 인스턴스에 할당함으로써 EC2 인스턴스를 RDS 데이터베이스에 수동으로 연결
이 작업의 목표는 두 개의 새 보안 그룹을 생성한 다음, EC2 인스턴스 및 RDS 데이터베이스에 각각 보안 그룹을 추가하는 작업을 수동으로 수행하여 자동 연결 기능의 연결 구성을 재현하는 데 있습니다.
두 개의 새 보안 그룹을 생성하고 EC2 인스턴스 및 RDS 데이터베이스에 각각 하나씩 할당하는 방법
https://console.aws.amazon.com/ec2/
에서 Amazon EC2 콘솔을 엽니다. -
먼저, 다음과 같이 EC2 인스턴스에 추가할 보안 그룹을 생성합니다.
-
탐색 창에서 보안 그룹을 선택합니다.
-
보안 그룹 생성을 선택합니다.
-
Security group name(보안 그룹 이름)에 보안 그룹을 설명하는 이름을 입력합니다. 이 자습서에서는
ec2-rds-manual-configuration
을 입력합니다. -
Description(설명)에 간략한 설명을 입력합니다. 이 자습서에서는
EC2 instance security group to allow EC2 instance to securely connect to RDS database
을 입력합니다. -
보안 그룹 생성을 선택합니다. RDS 데이터베이스 보안 그룹을 생성한 후 이 보안 그룹으로 돌아와 아웃바운드 규칙을 추가합니다.
-
-
이제 다음과 같이 RDS 데이터베이스에 추가할 보안 그룹을 생성합니다.
-
탐색 창에서 보안 그룹을 선택합니다.
-
보안 그룹 생성을 선택합니다.
-
Security group name(보안 그룹 이름)에 보안 그룹을 설명하는 이름을 입력합니다. 이 자습서에서는
rds-ec2-manual-configuration
을 입력합니다. -
Description(설명)에 간략한 설명을 입력합니다. 이 자습서에서는
RDS database security group to allow EC2 instance to securely connect to RDS database
을 입력합니다. -
Inbound rules(인바운드 규칙)에서 Add rule(규칙 추가)을 선택하고 다음을 수행합니다.
-
Type(유형)에서 MYSQL/Aurora를 선택합니다.
-
Source(소스)에서 본 절차의 2단계에서 생성한 EC2 인스턴스 보안 그룹 ec2-rds-manual-configuration을 선택합니다.
-
-
보안 그룹 생성을 선택합니다.
-
-
다음과 같이 EC2 인스턴스 보안 그룹을 편집하여 아웃바운드 규칙을 추가합니다.
-
탐색 창에서 보안 그룹을 선택합니다.
-
EC2 인스턴스 보안 그룹(이름을
ec2-rds-manual-configuration
으로 지정함)을 선택하고 Outbound rules(아웃바운드 규칙) 탭을 선택합니다. -
Edit outbound rules(아웃바운드 규칙 편집)를 선택합니다.
-
Add rule(규칙 추가)을 선택하고 다음을 수행합니다.
-
Type(유형)에서 MYSQL/Aurora를 선택합니다.
-
Source(소스)에서 본 절차의 3단계에서 생성한 RDS 데이터베이스 보안 그룹 rds-ec2-manual-configuration을 선택합니다.
-
규칙 저장을 선택합니다.
-
-
-
다음과 같이 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 데이터베이스에 추가합니다.
https://console.aws.amazon.com/rds/
에서 Amazon RDS 콘솔을 엽니다. -
탐색 창에서 Databases(데이터베이스)를 선택하고 데이터베이스를 선택합니다.
-
수정을 선택합니다.
-
Connectivity(연결)에서 Security group(보안 그룹)에 대해 앞서 생성한 rds-ec2-manual-configuration을 선택한 다음, Continue(계속)를 선택합니다.
-
Scheduling of modifications(수정 사항 예약)에서 Apply immediately(즉시 적용)를 선택합니다.
-
Modify DB instance(DB 인스턴스 수정)를 선택합니다.
이제 자동 연결 기능 사용 시 수행되는 자동 단계를 모방하는 수동 단계를 완료했습니다.
이 자습서의 옵션 3을 완료했습니다. 옵션 1, 2 및 3을 완료했으며 이 자습서에서 생성한 리소스가 더 이상 필요하지 않은 경우 불필요한 비용이 발생하지 않도록 해당 리소스를 삭제해야 합니다. 자세한 내용은 작업 4(선택 사항): 정리 단원을 참조하십시오.
작업 4(선택 사항): 정리
이제 자습서를 완료했으므로 더 이상 사용하지 않을 리소스를 정리(삭제)하는 것이 좋습니다. AWS 리소스를 정리하면 계정에 추가 요금이 발생되지 않도록 방지할 수 있습니다.
이 자습서를 위해 특별히 EC2 인스턴스를 시작한 경우 해당 인스턴스를 종료하여 관련 요금이 발생되지 않도록 할 수 있습니다.
콘솔을 사용한 인스턴스 종료 방법
https://console.aws.amazon.com/ec2/
에서 Amazon EC2 콘솔을 엽니다. -
탐색 창에서 Instances(인스턴스)를 선택합니다.
-
이 자습서용으로 생성한 인스턴스를 선택하고 Instance state(인스턴스 상태), Terminate instance(인스턴스 종료)를 선택합니다.
-
확인 메시지가 나타나면 종료를 선택합니다.
이 자습서를 위해 특별히 RDS 데이터베이스를 생성한 경우 해당 데이터베이스를 삭제하여 관련 요금이 발생되지 않도록 할 수 있습니다.
콘솔을 사용하여 RDS 데이터베이스 삭제
https://console.aws.amazon.com/rds/
에서 Amazon RDS 콘솔을 엽니다. -
탐색 창에서 데이터베이스를 선택합니다.
-
이 자습서용으로 생성한 RDS 데이터베이스를 선택하고 Actions(작업), Delete(삭제)를 선택합니다.
-
상자에
delete me
를 입력한 다음, Delete(삭제)를 선택합니다.