아마존 클라우드

Amazon VPC 에 Aurora 데이터베이스 계층 생성하기

트리스탄1234 2025. 3. 27. 06:56
728x90
반응형

어떤 환경에서나 백엔드 데이터베이스는 중요한 역할을 하며, 이 중요한 리소스의 보안과 액세스는 어떤 아키텍처에서도 매우 중요합니다. 이 실습에서는 Amazon Aurora 데이터베이스(DB) 클러스터를 생성하여 MySQL 데이터베이스와 Application Load Balancer(ALB)를 관리합니다. Well-Architected Framework의 Amazon Web Services(AWS) 보안 핵심 요소에서는 사람들을 데이터에서 떨어뜨려 놓을 것을 권장하므로 데이터베이스는 Application Load Balancer를 사용하여 프런트 엔드에서 분리됩니다. Application Load Balancer는 프런트 엔드 애플리케이션을 호스트하는 정상 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스로 트래픽을 라우팅함으로써 고가용성을 제공하고 프라이빗 서브넷의 Application Load Balancer 뒤에서 데이터베이스와의 통신이 이루어지도록 합니다.
 

  • Amazon Relational Database Service(Amazon RDS) 데이터베이스 생성
  • Application Load Balancer 생성
  • Application Load Balancer용 HTTP 리스너 생성
  • 대상 그룹 생성
  • 대상 그룹에 대상 등록
  • 로드 밸런서 테스트 및 데이터베이스와 애플리케이션의 커넥션 테스트
  • 콘솔을 통해 Amazon RDS DB 인스턴스 메타데이터 검토
  • 선택 과제: 다른 AWS 리전에 Amazon RDS 읽기 전용 복제본 생성

 

실습 환경

실습을 시작할 수 있도록 실습 환경에서 제공되는 리소스는 Amazon Virtual Private Cloud(Amazon VPC), 필요한 기본 네트워크 구조, 인바운드 및 아웃바운드 트래픽 제어용 보안 그룹 3개, 프라이빗 서브넷의 EC2 인스턴스 2개, 관련 EC2 인스턴스 프로파일 1개입니다. 인스턴스 프로파일에는 AWS Systems Manager Session Manager 기능이 EC2 인스턴스에 액세스하도록 허용하는 데 필요한 권한이 포함되어 있습니다.
다음 다이어그램은 구축할 중요 실습 리소스의 예상 아키텍처와 실습이 끝날 때 이러한 리소스가 어떻게 연결되어야 하는지 보여 줍니다.
 

  1. AWS 관리 콘솔 상단의 검색 창에서 RDS를 검색하여 선택합니다.
  2. 왼쪽 탐색 창에서 Databases를 선택합니다.
  3. Create database를 선택합니다.

 

  1. Choose a database creation method 섹션에서  Standard create를 선택합니다.
  2. Engine options 섹션에서 다음을 구성합니다.
  • Engine type:  Aurora (MySQL Compatible) 를 선택합니다.
  1. Templates 섹션에서 Dev/Test를 선택합니다.
  1. Settings 섹션에서 다음을 구성합니다.
  • DB cluster identifier: aurora 를 입력합니다.
  • Master username: dbadmin 을 입력합니다.
  • Credentials management: Self managed 옵션을 선택합니다.
  • Master password: 이 실습 지침 왼쪽의 LabPassword 값을 붙여 넣습니다.
  • Confirm master password: 이 실습 지침 왼쪽의 LabPassword 값을 붙여 넣습니다.
  1. Instance configuration 섹션에서 다음을 구성합니다.
  • DB instance class:  Burstable classes (includes t classes) 를 선택합니다.
  • 드롭다운 메뉴에서 db.t3.medium 인스턴스 타입을 선택합니다.
  1. Availability & durability 섹션의 Multi-AZ deployment에서  Don’t create an Aurora Replica를 선택합니다.

 추가 정보: Amazon RDS 다중 AZ 배포는 데이터베이스(DB) 인스턴스의 가용성 및 내구성을 높여주므로 프로덕션 데이터베이스 워크로드에 적합합니다. 다중 AZ DB 인스턴스를 프로비저닝하면 Amazon RDS는 프라이머리 DB 인스턴스를 자동 생성함과 동시에 다른 가용 영역에 있는 예비 인스턴스에 데이터를 복제합니다. 자세한 내용은, 다음을 참조하십시오.
 

  1. Connectivity 섹션에서 다음을 구성합니다.
  • Virtual private cloud (VPC): 드롭다운 메뉴에서 LabVPC 를 선택합니다.
  • DB subnet group: 드롭다운 메뉴에서 labdbsubnetgroup 를 선택합니다.
  • Public access:  No를 선택합니다.
  • VPC security group (firewall):  Choose existing을 선택합니다.
  • Existing VPC security groups:
    • Existing VPC security groups 필드에서 X를 선택해서 default 보안 그룹을 제거합니다.
    • Existing VPC security groups 드롭다운 메뉴에서 LabDBSecurityGroup을 입력하여 이 옵션을 선택합니다.

 

  1. Monitoring 섹션에서  Enable Enhanced monitoring을 선택 취소합니다.
  1.  Additional configuration 섹션을 확장합니다.
  2. Database options 섹션에서 다음을 구성합니다.
  • Initial database name: inventory를 입력합니다.
  • DB cluster parameter group: 이 실습 지침 왼쪽의 DBClusterParameterGroup 값과 일치하는 값을 드롭다운 메뉴에서 선택합니다.

 주의: 드롭다운 메뉴에서 올바른 DB cluster parameter group 값을 선택해야 합니다. 잘못된 값을 선택하면 데이터베이스 복제본을 구축할 때 오류가 발생합니다.

  1. Encryption 섹션에서  Enable encryption을 선택 취소합니다.

 추가 정보: Amazon RDS DB 인스턴스에 대해 암호화 옵션을 활성화하여 저장 중 Amazon RDS 인스턴스와 스냅샷을 암호화할 수 있습니다. 저장 중 암호화되는 데이터에는 DB 인스턴스의 기본 스토리지, 자동 백업, 읽기 전용 복제본, 스냅샷이 포함됩니다. 자세한 내용은, 다음을 참조하십시오. Amazon RDS 리소스 암호화

  1. Maintenance 섹션에서  Enable auto minor version upgrade를 선택 취소합니다

.

 참고: 이 실습의 특성상 단기간 동안만 유지되므로 데이터베이스에 대한 유지 관리 일정을 설정하지 않아도 됩니다.

  1. 화면 맨 아래로 스크롤한 다음 Create database 버튼을 선택합니다.
  2. Suggested add-ons for aurora 팝업 윈도우 에서, Close 를 선택합니다.

 Successfully created database aurora 메세지가 화면 상단에 표시됩니다.
Aurora MySQL DB 클러스터 시작 프로세스가 진행됩니다. Amazon RDS 인스턴스가 시작되려면 최대 5분이 걸릴 수 있습니다. 하지만 기다리지 않고 다음 과제로 진행해도 됩니다.
 
 

과제 2: Application Load Balancer 생성 및 구성

이 과제에서는 퍼블릭 서브넷에 Application Load Balancer를 생성하여 브라우저에서 애플리케이션에 액세스합니다. Amazon EC2 콘솔로 이동하여 기존 Amazon VPC 인프라에 Application Load Balancer를 생성하고 프라이빗 EC2 인스턴스를 대상으로 추가합니다.
로드 밸런서는 클라이언트에 대한 단일 접점 역할을 수행합니다. 클라이언트는 로드 밸런서에 요청을 전송하고, 로드 밸런서는 EC2 인스턴스와 같은 대상에 요청을 전송합니다. 로드 밸런서를 구성하려면 대상 그룹을 생성한 다음 대상 그룹에 대상을 등록합니다.
 

 
 
 

과제 2.1: 대상 그룹 생성

이번 과제에서, target group을 생성하고 target group에서 대상들을 등록합니다. 기본적으로, 로드 밸런서는 받은 요청을 대상 그룹을 위해 설정한 포트와 프로토콜을 기반으로 등록된 대상에게 전송합니다.

  1. 콘솔 상단의 검색 창에서 EC2를 검색하여 선택합니다.
  2. 왼쪽 탐색 창에서, Load Balancing 섹션을 확장하고 Target Groups를 선택합니다.
  3. Create target group을 선택합니다.

Specify group details 페이지가 표시됩니다.

  1. Basic configuration 섹션에서 다음을 구성합니다.
  • Choose a target type:  Instances를 선택합니다.
  • Target group name: ALBTargetGroup을 입력합니다.
  • VPC: 드롭다운 메뉴에서 LabVPC를 선택합니다.

나머지 설정은 기본값으로 둡니다.

  1. Next를 선택합니다.

Register targets 페이지가 표시됩니다.

  1. Available Instances 섹션에서 다음을 구성합니다.
  • EC2 인스턴스 AppServer1 및 AppServer2를 선택합니다.
  • Include as pending below를 선택합니다.

페이지의 Targets 섹션 아래에 인스턴스가 표시됩니다.

  1. Create target group을 선택합니다.

 Successfully created target group: ALBTargetGroup 메세지가 화면 상단에 표시됩니다.
 

과제 2.2: Application Load Balancer 생성

이번 과제에서, Application Load Balancer를 생성하고 이름, 스키마, IP 주소 유형과 같이 로드 밸런서에 필요한 기본적인 환경 구성을 설정합니다. 그 다음 네트워크, 리스너 정보를 등록합니다.

  1. 왼쪽 탐색 창에서, Load Balancing 섹션을 확장하고 Load Balancers를 선택합니다.
  2. Create load balancer를 선택합니다.

Select load balancer type 페이지가 표시됩니다.

  1. Load balancer types 섹션의 Application Load Balancer에서 Create를 선택합니다.

Create Application Load Balancer 페이지가 표시됩니다.

  1. Basic configuration 섹션에서 다음을 구성합니다.
  • Load balancer name에 LabAppALB를 입력합니다.
  1. Network mapping 섹션에서 다음을 구성합니다.
  • VPC: LabVPC를 드롭다운 메뉴에서 선택합니다.
  • Mappings:
    • 나열된 첫 번째 가용 영역의 확인란을 선택하고 Subnet 목록 드롭다운 메뉴에서 PublicSubnet1을 선택합니다.
    • 나열된 두 번째 가용 영역의 확인란을 선택하고 Subnet 목록 드롭다운 메뉴에서 PublicSubnet2를 선택합니다.
  1. Security groups 섹션에서 다음을 구성합니다.
  • X를 선택하여 default 보안 그룹을 제거합니다.
  • 드롭다운 메뉴에서 LabALBSecurityGroup을 선택합니다.
  1. Listeners and routing 섹션에서 다음을 구성합니다.
  • Listener HTTP:80: Default action 드롭다운 메뉴에서 ALBTargetGroup을 선택합니다.
  1. Create load balancer를 선택합니다.

 Successfully created load balancer: LabAppALB 메세지가 화면 상단에 표시됩니다.

  1. View load balancer를 선택합니다.

로드 밸런서가 몇 분 동안 Provisioning 상태였다가 Active로 바뀝니다.
 
 이 과제에서는 Application Load Balancer를 생성하고 EC2 인스턴스를 로드 밸런서에 대상으로 추가했습니다. 이 과제에서는 대상을 로드 밸런서에 등록하는 방법을 보여줍니다. 개별 EC2 인스턴스 외에 Auto Scaling 그룹도 로드 밸런서의 대상으로 등록할 수 있습니다. Auto Scaling 그룹을 로드 밸런싱의 대상으로 사용하는 경우 Auto Scaling 그룹이 시작하는 인스턴스는 로드 밸런서에 자동으로 등록됩니다. 마찬가지로 Auto Scaling 그룹이 종료하는 EC2 인스턴스는 로드 밸런서에서 자동으로 등록 취소됩니다. 로드 밸런서와 함께 Auto Scaling 그룹을 사용하는 방법은 다음 실습에서 설명합니다.
 

과제 3: 콘솔을 통해 Amazon RDS DB 인스턴스 메타데이터 검토

이 과제에서는 Amazon RDS 콘솔을 탐색하여 과제 1에서 생성한 인스턴스가 완료되었고 활성 상태인지 확인합니다. 그리고 콘솔을 탐색하여 DB 인스턴스의 연결 정보를 찾는 방법을 알아봅니다. DB 인스턴스의 연결 정보에는 엔드포인트, 포트, 유효한 데이터베이스 사용자가 포함됩니다.

  1. 콘솔 상단의 검색 창에서 RDS를 검색하여 선택합니다.
  2. 탐색 창에서 Databases를 선택합니다.
  3. DB 식별자 목록에서 이름이 aurora인 클러스터의 링크를 선택합니다.

 
데이터베이스 세부 정보가 포함된 페이지가 표시됩니다.

  1. Connectivity & security 탭에서 데이터베이스 클러스터의 엔드포인트 및 포트 번호를 찾을 수 있습니다. 일반적으로 데이터베이스에 연결하려면 엔드포인트와 포트 번호가 모두 필요합니다.
  2. writer 인스턴스의 Endpoint name 값을 복사하여 메모장에 붙여 넣습니다. 실습 뒷부분에서 이 값이 필요합니다.

 aurora.cluster-crwxbgqad61a.us-west-2.rds.amazonaws.com과 비슷할 것입니다.
 

  1. Configuration 탭에서 데이터베이스의 현재 구성에 관한 세부 정보를 찾을 수 있습니다.
  1. Monitoring 탭에서 데이터베이스의 다음 항목에 대한 지표를 모니터링할 수 있습니다.
  • 데이터베이스 인스턴스에 대한 연결 수
  • 데이터베이스 인스턴스에 대한 읽기 및 쓰기 작업의 양
  • 데이터베이스 인스턴스가 현재 사용 중인 스토리지의 양
  • 데이터베이스 인스턴스에 사용 중인 메모리 및 CPU의 양
  • 데이터베이스 인스턴스에 들어오고 나가는 네트워크 트래픽 양

 

과제 4: 애플리케이션의 데이터베이스 연결 테스트

이 과제에서는 Application Load Balancer URL을 확인한 후 로드 밸런서를 통해 기본적인 HTTP 요청을 실행합니다. 그리고 EC2 인스턴스에 설치된 웹 애플리케이션을 시작하여 애플리케이션의 데이터베이스 연결을 테스트합니다.

  1. 콘솔 상단의 검색 창에서 EC2를 검색하여 선택합니다.
  2. 왼쪽 탐색 창에서 Target Groups를 선택합니다.
  1.  ALBTargetGroup을 선택합니다.
  2. Targets 탭에서 인스턴스 상태가  healthy로 표시될 때까지 기다립니다.

 추가 정보: Elastic Load Balancing은 웹 서비스 인스턴스의 ping 경로를 주기적으로 테스트하여 상태를 확인합니다. 200 HTTP 응답 코드는 정상 상태를 나타내고, 그 밖의 응답 코드는 비정상 상태를 나타냅니다. 인스턴스가 비정상이고 일정 횟수의 연속 검사(비정상 임계값)에서 해당 상태가 지속되는 경우 로드 밸런서는 복구될 때까지 해당 인스턴스를 서비스에서 제거합니다. 자세한 내용은, 다음을 참조하십시오. 대상 그룹에 대한 상태 확인

  1. 왼쪽 탐색 창에서 Load Balancers를 선택합니다.

Load balancers 페이지가 표시됩니다.

  1. DNS name을 복사한 후 새 브라우저 탭에 값을 붙여 넣어 로드 밸런서를 호출합니다.

 

 
 

  1.  Settings 탭을 선택하고 설정합니다.
  • Endpoint: 이전에 복사한 writer instance endpoint를 붙여 넣습니다.
  • Database: inventory를 입력합니다.
  • Username: dbadmin을 입력합니다.
  • Password: 이 실습 지침 왼쪽의 LabPassword 값을 붙여 넣습니다.
  1. Save를 선택합니다.

 애플리케이션이 데이터베이스에 연결되어, 기본 데이터를 가져오고 정보를 화면에 나타냅니다. 이 애플리케이션을 통해서 재고 항목을 추가, 수정, 삭제할 수 있습니다.
재고 정보는 이 실습의 앞부분에서 생성한 Amazon RDS MySQL 호환 데이터베이스에 저장됩니다. 웹 애플리케이션 서버에 장애가 발생하더라도 해당 데이터를 잃지 않습니다. 나아가 여러 애플리케이션 서버에서 동일한 데이터에 액세스할 수 있습니다.
 

선택 과제: 다른 AWS 리전에 Amazon RDS 읽기 전용 복제본 생성

이 챌린지에서는 소스 DB 인스턴스에서 교차 리전 읽기 전용 복제본을 생성합니다. 재해 복구 기능을 개선하거나, 읽기 작업을 사용자와 더욱 가까운 AWS 리전으로 확장하거나, 한 AWS 리전의 데이터 센터에서 다른 AWS 리전의 데이터 센터로 보다 쉽게 마이그레이션하기 위해 다른 AWS 리전에 읽기 전용 복제본을 생성합니다.
 참고: 이 챌린지 과제는 선택 사항이며 실습 시간이 남는 경우에 제공됩니다. 이 과제를 완료하거나 여기를 선택하여 실습 끝으로 건너뛸 수 있습니다.

  1. AWS 관리 콘솔에 열려 있는 브라우저 탭으로 다시 전환합니다.
  2. 콘솔 상단의 검색 창에서 RDS를 검색하여 선택합니다.
  3. 왼쪽 탐색 창에서 Databases를 선택합니다.
  4.  aurora DB 인스턴스를 읽기 전용 복제본의 소스로 선택합니다.
  5. Actions 를 선택하고 Create cross-Region read replica를 선택합니다.

Create cross region read replica 메세지가 화면 상단에 표시됩니다.
Multi-AZ deployment:의 경우:  Don’t create an Aurora Replica을 선택합니다.
이 섹션의 나머지 설정은 기본값 그대로 두어도 됩니다.

  1. Connectivity 섹션에서 다음을 구성합니다.
  • Destination Region: 드롭다운 메뉴에서, 실습 지침 왼쪽의 RemoteRegion 값과 일치하는 리전을 선택합니다.
  • Virtual private cloud (VPC): LabVPC
  • Public access:  No를 선택합니다.
  • Existing VPC security groups:의 경우:
    • X를 선택하여 default 보안 그룹을 제거합니다.
    • 드롭다운 메뉴에서 LabDBSecurityGroup
      을 입력하여 이 옵션을 선택합니다. 이 섹션의 나머지 설정은 기본값 그대로 두어도 됩니다.
  1. Settings 섹션에서 다음을 구성합니다.
  • DB instance identifier: LabDBreplica
    를 입력합니다.

이 섹션의 나머지 설정은 기본값 그대로 두어도 됩니다.

  1. Create를 선택합니다.

 Your Read Replica creation has been initiated. 메세지가 화면 상단에 표시됩니다.

  1. 대상 리전의 교차 리전 읽기 전용 복제본을 검토하려면 같은 페이지에서 여기로 레이블이 지정된 하이퍼링크를 선택합니다.
  2. 검토하지 않으려면 Close를 선택합니다.

 

728x90
반응형