Post

[Cloud] RDS(Relational Database Service)의 이해

Amazon RDS의 이해


**학습 목표

  • 데이터베이스와 RDS 의 용어를 확인합니다.
  • Amazon RDS에서 지원하는 데이터베이스 엔진을 확인합니다.
  • Amazon RDS를 만드는 단계를 확인합니다.**

데이터베이스란?

DBMS(데이터베이스 관리 시스템)란?

Amazon RDS 이해

  • 클라우드에서 관계형 데이터베이스를 보다 쉽게 설정, 운영, 확장할 수 있도록 AWS에서 제공하는 서비스
  • 하드웨어 프로비저닝, 소프트웨어 설치 및 패치, 스토리지 관리, 재해 복구를 위한 백업 등을 쉽게 지원
  • RDS 사용시 개발자, 애플리케이션 운영자는 데이터베이스 관리자의 작업 시간을 단축하여 비즈니스에 더 집중할 수 있음

    https://lh7-us.googleusercontent.com/wFmOTZukGuNo8ycYPS5sDfqIZhgcBWqpehHGfUagJGKlFofbSZD8-UJBcWnp5bkScDEwr1_psR3zXs3TQdnYU8R1ioGovjdNZG83e61tFXkkazOR8F10IXun3embU8kvnHMS-kUpilBnJEpZOcYEfHY

  • 온프레미스 데이터베이스에서 Amazon RDS로

    image.png

  • 관리형 서비스의 책임
    • 사용자가 관리:
      • 어플리케이션 최적화
    • AWS가 관리:
      • OS 설치 및 패치
      • 데이터베이스 소프트웨어 설치 및 패치
      • 데이터베이스 백업
      • 고가용성
      • 규모 조정
      • 전력, 서버 랙킹 및 스태킹
      • 서버 유지 관리

Amazon RDS 엔진

Amazon RDS의 구성 정보

  • 서브넷 그룹(Subnet Group): RDS 데이터베이스가 사용할 수 있는 서브넷과 IP 범위를 지정
  • 파라미터 그룹(Parameter Group): RDS의 데이터베이스 설정. 데이터베이스의 작동 방식을 정의하는 매개변수 그룹
  • 옵션 그룹(Option Group): RDS 종류에 따른 백업, 모니터링 도구 또는 기타 고급 옵션과 같이 RDS 인스턴스에 대해 활성화할 수 있는 기능과 관련된 구성이 포함.
  • 데이터베이스

    weplat-rds-mysql.cjtc..qmu.ap-northeast-2.rds.amazonaws.com

    -mysql.-< 리전>.rds.amazonaws.com

LAB : AWS 관리형(Managed) 데이터베이스 생성 및 운영

  • 인프라 아키텍처

    image.png

  • TASK 1. 보안 그룹 만들기
    • Web Server를 위한 Security Group
      • 이름 : web-sg
      • VPC : lab-vpc
      • 인바운드 규칙: HTTP,SSH ← source: anywhere
    • RDS를 위한 Security Group
      • 이름 : rds-sg
      • VPC : lab-vpc
      • 인바운드 규칙: MySQL/Aurora 3306 ← source: web-sg
  • TASK 2. DB 서브넷 그룹, 파라메터 그룹, 옵션 그룹 생성
    • 서브넷 그룹 생성
      • RDS가 위치할 서브넷을 정의
      • 이름 : lab-rdb-subnetgroup
      • VPC : lab-vpc
      • 가용영역 : ap-northeast-2a, ap-northeast-2c
      • 서브넷 : Private Subnet 2a(10.0.2.0/24), Private Subnet 2c(10.0.3.0/24)
    • 파라메터 그룹 생성
      • 설치할 Database 엔진과 버전 선택
      • 이름 : lab-rdb-parm-group
      • 엔진유형 : MySQL Community
      • 파라미터 그룹 패밀리: mysql8.0
    • 옵션그룹 생성
      • RDS에 적용할 옵션 구성
      • 이름 : lab-rdb-options-group
      • 엔진 유형 : mysql
      • 메이저 엔진 버전: 8.0
  • TASK 3. Amazon RDS DB 인스턴스 생성
    • Amazon RDS를 조건에 맞게 구성 및 설치합니다.
    • Amazon RDB 만들기
      • 데이터베이스 생성 방식 선택
        • 표준 생성
      • 엔진 옵션
        • 엔진유형 : MySQL
        • 엔진 버전: MySQL 8.0.39
      • 템플릿 : 개발/테스트

        프로덕션과 개발/테스트 템플릿의 차이

        항목프로덕션개발/테스트
        기본 Multi-AZ 배포권장 (고가용성 및 자동 장애 조치 지원)선택 가능 (비용 절감을 위해 옵션)
        백업 설정자동 백업 및 모니터링 활성화필요에 따라 백업 및 모니터링 설정 가능
        성능 최적화높은 I/O 성능 및 스토리지 옵션 권장상대적으로 낮은 성능 요구 사항
        비용고가용성 및 성능 최적화로 인해 상대적으로 높음비용 절감 가능, 단일 AZ 설정 가능
        사용 목적안정적인 운영 및 데이터 연속성 확보개발 및 테스트 환경, 비용 절감 중시
      • 가용성 및 내구성-배포옵션 : 다중 AZ DB 인스턴스
      • 설정
        • DB 인스턴스 식별자: lab-rds
        • 마스터 사용자 이름: master
        • 자격증명 관리 : 자체관리
          • 마스터 암호: master-password
      • 인스턴스 구성
        • 버스터블 클래스
        • 인스턴스 클래스 : t3.micro
      • 스토리지 :
        • 할당된 스토리지 : 범용SSD(gp3), 20GB
        • 스토리지 자동 조정 : 해제
      • 연결
        • 컴퓨팅 리소스 : EC2 컴퓨팅 연결 안함
        • 네트워크 유형 : IPv4
        • VPC : lab-vpc
        • 서브넷 그룹 : db-subnet-group
        • 퍼블릭 액세스 : 아니오
        • 보안그룹 : rds-sg
        • 추가구성 : 3306
      • 데이터베이스 인증 : 암호인증
      • 모니터링 : 세부 수준: 60초, 역할 모니터링 : 기본값
      • 추가구성
        • 데이터베이스 옵션
          • 초기 데이터베이스 이름 : labdb
          • 파라메터 그룹: db-parm-group
          • 옵션그룹 : db-option-group
        • 백업해제, 암호화 해제
        • 로그 내보내기 : 선택없음
        • 유지관리 : 마이너버전 자동 업그레이드 해제
        • 삭제방지 : 선택없음
  • TASK 4. 웹 서버 인스턴스 만들기
    • Amazon EC2 [인스턴스 시작]
    • 이름 : Web Server
    • AMI : Amazon Linux 2023 AMI
    • 인스턴스 유형: t2.micro
    • 키페어 : multi-key
    • 네트워크: Lab VPC 서브넷: Public Subnet 2(ap-northeast-2c) 퍼블릭 IP 자동할당: 활성화 보안그룹 : web-sg
    • 스토리지: 8G
    • 사용자 데이터 :

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      
        #!/bin/bash -ex
        # Install http php, mysql
        dnf update
        dnf install httpd php php-mysqlnd php-fpm php-json mariadb105 -y
              
        #Web Service start
        systemctl enable --now httpd
              
        #Download web data
        cd /var/www/html/
        wget https://aws-largeobjects.s3.ap-northeast-2.amazonaws.com/AWS-AcademyACF/lab7-app-php7.zip
        unzip lab7-app-php7.zip -d /var/www/html/
        chown apache:root /var/www/html/rds.conf.php
      
  • TASK 5. 데이터 베이스와 상호 작용

    생성된 RDS와 웹 서버가 연동될 수 있도록 php 구성 정보를 수정합니다.

    • 웹브라우저로 웹서버 접속 후 DB 정보 기록
      • 엔드포인트 :
      • 초기 데이터베이스 이름 : labdb
      • 마스터 사용자 이름: master
      • 마스터 암호: master-password

      image.png

    • 실습을 통해 StandBy RDS로 fail over 되는지 확인합니다.

      1
      2
      3
      4
      5
      6
      7
      
        **nslookup <rds_Endpoint>**
        Server:         10.0.0.2
        Address:        10.0.0.2#53
              
        Non-authoritative answer:
        Name:   lab-rds-lab.cju4wie0kf3b.ap-northeast-2.rds.amazonaws.com
        **Address: 10.0.3.XX**
      
      • labrds -> [수정] -> [재부팅] - 장애 조치로 재부팅 -> [확인]

        image.png

      • 연결 상태 확인 및 Failover 확인

        1
        2
        3
        4
        5
        6
        7
        
          **nslookup <rds_Endpoint>**
          Server:         10.0.0.2
          Address:        10.0.0.2#53
                    
          Non-authoritative answer:
          Name:   lab-rds-lab.cju4wie0kf3b.ap-northeast-2.rds.amazonaws.com
          Address: 10.0.2.41
        
      • 다시 리부팅하면?

  • TASK 6. 리소스 삭제
    • 데이터베이스 삭제
    • 서브넷 그룹 삭제
    • 파라메터, 옵션 그룹 삭제
    • 인스턴스 삭제
    • 보안그룹 삭제

REVIEW

  • Amazon RDS를 사용하면 클라우드에서 관계형 데이터베이스를 설정, 운영 및 확장할 수 있습니다.
  • 특징
    • 관리형 서비스(PaaS)
    • 콘솔, AWS CLI(AWS CLI) 또는 애플리케이션 프로그래밍 인터페이스(API) 호출을 통해 액세스 가능
    • 확장 가능(컴퓨팅 및 스토리지)
    • 자동화된 중복성 및 백업 기능 사용 가능
    • 지원되는 데이터베이스 엔진:
      • Amazon Aurora, PostgreSQL, MySQL, MariaDB, Oracle, Microsoft SQL Server, IBM db2
This post is licensed under CC BY 4.0 by the author.

Comments powered by Disqus.