[Cloud] RDS(Relational Database Service)의 이해
Amazon RDS의 이해
**학습 목표
- 데이터베이스와 RDS 의 용어를 확인합니다.
- Amazon RDS에서 지원하는 데이터베이스 엔진을 확인합니다.
- Amazon RDS를 만드는 단계를 확인합니다.**
데이터베이스란?
- 데이터베이스(Database)란 여러 사람이 공유하여 사용할 목적으로 데이터를 조직적으로 체계화하여 통합하고, 관리하는 데이터의 집합
데이터베이스에 저장하는 데이터는 사람 이름, 제품 정보 등 여러가지가 포함될 수 있음
관계형 데이터베이스(Relational Database)는 데이터가 하나 이상의 열과 행의 테이블(또는 ‘관계’)에 저장되어 서로 다른 데이터 구조가 어떻게 관련되어 있는지 쉽게 파악하고 이해할 수 있도록 사전 정의된 관계로 데이터를 구성.
DBMS(데이터베이스 관리 시스템)란?
- 하나의 공간에 수많은 데이터가 저장되려면 관리 프로그램이 필요.
- DBMS(Database Management System)은 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해 주고 데이터베이스를 관리해 주는 소프트웨어
DBMS를 통해 데이터베이스에 데이터를 생성, 업데이트, 삭제, 검색할 수 있음.
Amazon RDS 이해
- 클라우드에서 관계형 데이터베이스를 보다 쉽게 설정, 운영, 확장할 수 있도록 AWS에서 제공하는 서비스
- 하드웨어 프로비저닝, 소프트웨어 설치 및 패치, 스토리지 관리, 재해 복구를 위한 백업 등을 쉽게 지원
RDS 사용시 개발자, 애플리케이션 운영자는 데이터베이스 관리자의 작업 시간을 단축하여 비즈니스에 더 집중할 수 있음
온프레미스 데이터베이스에서 Amazon RDS로
- 관리형 서비스의 책임
- 사용자가 관리:
- 어플리케이션 최적화
- AWS가 관리:
- OS 설치 및 패치
- 데이터베이스 소프트웨어 설치 및 패치
- 데이터베이스 백업
- 고가용성
- 규모 조정
- 전력, 서버 랙킹 및 스태킹
- 서버 유지 관리
- 사용자가 관리:
Amazon RDS 엔진
- MySQL: 널리 사용되는 오픈 소스 데이터베이스로 다용도로 사용하기에 적합
- PostgreSQL: 강력한 규정 준수, 성능 및 고급 기능을 갖춘 고급 오픈 소스 데이터베이스
- Oracle: 널리 사용되는 상용 데이터베이스
- SQL Server: 다른 Microsoft 서비스와의 통합으로 알려진 Microsoft의 데이터베이스
- MariaDB: 오픈 소스 및 커뮤니티 개발로 알려진 MySQL 포크.
Amazon Aurora: AWS의 자체 데이터베이스 엔진. MySQL 및 PostgreSQL과 호환되며 고성능과 확장성으로 알려짐
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) 데이터베이스 생성 및 운영
인프라 아키텍처
- 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
- Web Server를 위한 Security Group
- 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
실습을 통해 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**
- 웹브라우저로 웹서버 접속 후 DB 정보 기록
- 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.