hyewon's study
AWS educate: AWS Database 본문
AWS Database 종류
관계형 데이터베이스
- Amazon Relational Database Service(Amazon RDS)
Amazon Relational Database Service(Amazon RDS)는 데이터 베이스 인프라 및 업데이트들을 AWS 측에서 관리해주고 데이터베이스의 설치, 운영 그리고 관리 등의 서비스들을 지원하는 AWS의 관계형 데이터베이스이다. RDS는 클라우드 환경에서 마치 온프레미스(on-premises) 환경처럼 제약없이 원하는 데이터베이스 엔진을 쓰고 싶을 때 사용할 수 있는 AWS의 대표적인 관계형 데이터베이스 서비스입니다.
- AWS에서 RDS 엔진
- SQL Server: 마이크로소프트에서 개발한 관계형 데이터베이스 관리 시스템
- Oracle: Oracle사의 관계형 데이터베이스
- PostgreSQL: 오픈 소스 관계형 데이터베이스
- MySQL: 가장 많이 사용되는 오픈 소스 관계형 데이터베이스
- Maria DB: MySQL의 한 갈래에 속하는 DB
- Amazon Aurora: MySQL 및 PostgreSQL 호환 관계형 데이터 베이스
- AWS RDS 이점
- AWS RDS는 데이터베이스 설정, 패치, 백업, 복구 등의 관리 작업을 자동화
- 사용자의 요구에 따라 스토리지 및 컴퓨팅 리소스를 쉽게 확장
- 여러 가용 영역(Multi-AZ) 배포를 통해 고가용성을 제공하며, 장애 발생 시 자동으로 장애 조치(Failover)가 수행
- Amazon Aurora
Amazon Aurora는 AWS의 클라우드 환경에 최적화된 고성능, 고가용성의 관계형 데이터베이스 엔진입니다. Aurora는 MySQL 및 PostgreSQL과 호환되며, 기존 RDS 데이터베이스 엔진보다 20% 정도 더 비싸지만 성능이 3~5배 뛰어나고 확장성 및 가용성이 우수합니다.
- Amazon Redshift(데이터 웨어하우스)
Amazon Redshift는 대규모 데이터 분석 및 비즈니스 인텔리전스(BI)용으로 설계된 완전 관리형 데이터 웨어하우스 서비스입니다. 데이터를 컬럼 기반으로 저장하여 효율적인 압축과 빠른 쿼리 처리를 가능하게 하고, 데이터를 여러 노드에 분산하여 병렬 처리를 지원하여 대용량 데이터를 신속하게 처리합니다.
- 관계형 데이터베이스 2가지
- OLTP(Online Transactional Processing): 주로 실시간 데이터의 트랜잭션을 다루는 데이터베이스
- 주로 관계형 데이터베이스에서 처리
- AWS 서비스: Amazon RDS
- OLAP(Online Analytical Processing): 대규모 데이터를 종합적으로 보고 통계를 산출하는데 특화된 데이터베이스
- 주로 데이터 웨어하우스에서 처리
- AWS 서비스: Amazon RedShift
- AWS 관계형 데이터베이스 사용 사례
- 기존 애플리케이션, 전사적 자원 관리(ERP), 고객 관계 관리(CRM), 전자 상거래
NoSQL 데이터베이스
- Amazon DynamoDB
Amazon DynamoDB는 AWS에서 제공하는 고성능과 높은 가용성을 갖춘 완전 관리형(NoSQL) 데이터베이스 서비스입니다. 서버리스(serverless) 제품으로, 사용자는 데이터베이스 인프라를 직접 관리할 필요 없이 데이터를 저장할 수 있으며, 데이터 용량에 맞춰 자동으로 수평 확장됩니다. DynamoDB는 일반적으로 스키마가 없는 데이터를 지원하여 기존 관계형 데이터베이스에 저장하기 적합하지 않는 비정형화된 데이터를 키/값의 형태로 저장할 수 있습니다.
- Amazon DocumentDB
Amazon DocumentDB는 MongoDB와 호환되는 완전 관리형 문서 데이터베이스 서비스로, AWS 환경에서 높은 성능과 가용성을 제공하며, 데이터베이스 관리의 복잡성을 줄여줍니다. JSON 형식의 데이터를 효율적으로 저장하고 관리할 수 있으며, 자바스크립트 기반 애플리케이션과의 통합이 용이합니다. 기존 MongoDB 애플리케이션을 거의 변경 없이 마이그레이션할 수 있어, AWS 인프라에서 효율적으로 운영할 수 있는 최적의 솔루션입니다.
- AWS NoSQL 데이터베이스 사용 사례
- 높은 트래픽의 웹 애플리케이션, 전자 상거래 시스템, 게임 애플리케이션
인메모리 데이터베이스
- Amazon ElastiCache
Amazon ElastiCache는 AWS에서 제공하는 완전 관리형 인 메모리 캐시 서비스로, Redis와 Memcached를 지원합니다. 이 서비스는 데이터베이스 액세스의 부담을 줄이고 애플리케이션의 성능을 향상시키는 데 중요한 역할을 합니다. 기본적으로 인메모리 데이터베이스는 전체 데이터를 RAM에 보관합니다. 즉, 데이터에 액세스할 때마다 디스크가 아닌 메인 메모리에만 액세스한다는 의미입니다. AWS의 관리형 서비스로써 데이터베이스 유지 보수 작업을 대신해주므로 개발자는 애플리케이션의 성능을 개선하는 데 집중할 수 있습니다.
※ Redis: 풍부한 기능을 제공하는 고급 인 메모리 캐시 및 데이터 구조 저장소로, 다양한 데이터 유형을 지원합니다.
※ Memcached: 단순하고 빠른 분산 메모리 객체 캐시 시스템으로, 키/값 쌍을 저장하고 검색할 수 있습니다.
- AWS 인메모리 데이터베이스 사용 사례
- 캐싱, 세션관리, 게임 순위표, 지리 공간 애플리케이션
그래프 데이터베이스
- Amazon Neptune
Amazon Neptune는 AWS에서 제공하는 완전 관리형 그래프 데이터베이스 서비스입니다. 그래프 데이터베이스는 관계형 데이터베이스와 달리 데이터를 노드(node)와 엣지(edge)로 표현하여 복잡한 관계를 나타냅니다.
- AWS 그래프 데이터베이스 사용 사례
- 부정 탐지, 소셜 네트워킹, 추천 엔진
시계열 데이터베이스
- Amazon Timestream
Amazon Timestream은 IoT 및 운영 애플리케이션으로 제공되는 확장이 용이한 고속 서버리스 시계열 데이터베이스입니다. Timestream은 사용자가 직접 서버를 프로비저닝하거나 관리할 필요 없이 자동으로 확장되고, 표준 SQL을 확장한 쿼리 언어를 제공하여 시계열 데이터를 분석할 수 있으며, 이를 통해 데이터를 실시간에 가깝게 분석하고 추세와 패턴을 파악할 수 있습니다.
- AWS 시계열 데이터베이스 사용 사례
- 사물 인터넷(IOT) 애플리케이션, DevOps, 산업용 텔레메트리
AWS Database Migration Service
AWS Database Migration Service(AWS DMS)는 관계형 데이터베이스, 데이터 웨어하우스, NoSQL 데이터베이스 및 기타 유형의 데이터베이스 시스템 간 마이그레이션할 수 있는 클라우드 서비스입니다. AWS DMS를 사용하여 데이터를 AWS 클라우드로 마이그레이션하거나, 클라우드와 온프레미스 설정 조합 간에 마이그레이션할 수 있습니다.
- AWS DMS 특징
- AWS Database Migration Services를 통해 동종 혹은 다른 DB엔진으로부터 RDS로 데이터에 대한 마이그레이션 지원
- AWS Database Migration Service (AWS DMS)를 사용하여 Amazon EC2 인스턴스 또는 Amazon RDS 인스턴스 간에 데이터를 복제(replicate)하여, 필요할 때 비용 효율적인 데이터베이스로 데이터를 이전
★ AWS에서 DB 서비스 사용할 때 선택사항
- EC2에 직접 데이터베이스 설치: Amazon EC2에 직접 DB를 설치하여 온프레미스에서 사용하던 DB를 그대로 사용
- 장점:
- 사용자가 데이터베이스에 대한 모든 제어권을 가지고 있어, 데이터베이스 업데이트, 구성 변경, 보안 설정 등을 자유롭게 관리 즉, 사용자가 모든 것을 관리하고 제어
- 특정한 데이터베이스 엔진이나 버전을 선택하여 설치할 수 있어, 프로젝트 요구 사항에 맞게 최적화된 데이터베이스 환경을 구성
- 단점:
- 데이터베이스의 모든 측면을 관리해야 하므로 시간과 인력이 필요하고, 이는 추가적인 운영 및 관리 비용이 발생
- 백업, 복원, 확장성 등을 직접 구현해야 하므로 복잡성이 증가
- 장점:
- AWS DB를 사용: AWS에서 제공하는 DB 서비스 이용
- 장점:
- AWS가 데이터베이스를 관리하기 때문에 사용자는 데이터베이스에 대한 모든 관리 업무를 할 필요가 없음
- AWS가 제공하는 자동 백업, 자동 확장, 보안 패치 등의 서비스를 통해 데이터베이스 운영이 간편
- 단점:
- AWS가 관리하는 부분이 많아 특정 설정이나 최적화에는 제한
- RDS를 사용하는 경우 추가 요금이 발생하며 이는 EC2 인스턴스를 사용하는 것보다 비용이 더 많이 듦
- 장점:
AWS RDS 실습
1. Amazon RDS 데이터베이스 생성
① AWS RDS 페이지 접속 및 데이터베이스 생성 클릭
- AWS 콘솔에 접속하여 검색필드에 RDS 서비스를 검색하고 Amazon RDS 대시보드 페이지로 들어갑니다.
- 이후 데이터 베이스 생성을 클릭합니다.
② RDS에서 MYSQL 인스턴스 생성
- 표준 생성으로 MySQL 8.0.20 버전을 이용
③ 템플릿에서 개발/테스트를 선택하고 가용성 및 내구성은 단일 DB인스턴스 클릭
④ 데이터베이스 구성 설정
- DB 인스턴스 식별자(DB Instance Identifier): inventory-db
- 마스터 사용자 이름(Master Username): admin
- 마스터 비밀번호(Master Password): lab-password
- 비밀번호 확인(Confirm Password): lab-password
⑤ 인스턴스 구성 설정과 스토리지 설정
- 인스턴스 구성 설정에는 버스터블 클래스(T클래스 포함) db.t3.micro로 설정
- 스토리지 설정은 범용 SSD(gp2)로 할당된 스토리지는 20
여기서 범용 SSD는 Amazon EBS(Amazon Elastic Block Store)에서 제공하는 스토리지 옵션으로.
- 성능과 비용의 균형을 제공하며, 다양한 워크로드에 적합
- 볼륨 크기에 비례한 성능(I/O 성능)을 제공하며, 최대 16,000 IOPS까지 지원
- 버스트 기능을 통해 일시적인 성능 요구를 처리가능
- 개발 및 테스트 환경, 소규모 데이터베이스, 웹 서버 등 다양한 사용 사례에 적합
⑥ 연결 설정
- Virtual Private Cloud(VPC): Lab VPC 선택(대신 데이터베이스를 생성한 후에는 VPC를 변경할 수 없습니다.)
- DB 서브넷 그룹(DB Subnet Group): 기본값 rds-lab-db-subnet-group
- 공개 액세스(Publicly Accessible): 기본값 아니요
- VPC 보안 그룹(VPC Security Group): 기본 설정을 제거하고 드롭다운 목록에서 DB-SG를 선택하여 추가
- 가용 영역(Availability Zone): 기본값 선호 사항 없음
- 데이터베이스 인증(Database Authentication): 암호 인증 유지(기본값 유지)
⑦ 모니터링 설정
- 향상된 모니터링 활성화 선택 취소
※ 데이터 베이스를 생성한 후 rds-monitoring-role 을 언급하는 오류 메시지가 표시되면 이전 단계에서 향상된 모니터링 활성화 옵션을 선택 취소했는지 확인한 후 다시 시도하십시오.
⑧ 추가 구성 설정
- 초기 데이터베이스 이름(Initial Database Name): inventory 입력
- 암호화(Encryption): 선택 취소
⑨ 데이터베이스 생성 선택
- Virtual Private Cloud(VPC)에 MySQL 데이터베이스를 생성 완료
Virtual Private Cloud(VPC): 사용자가 자신의 AWS 리소스를 가상 네트워크에서 운영할 수 있게 해줄 수 있는 Amazon Web Services(AWS)에서 제공하는 가상 네트워크 서비스
2. 데이터베이스 인스턴스와 웹 애플리케이션 통신 구성
① EC2 서비스에 인스턴스 선택하고 App Server 라는 실행 중인 인스턴스 존재 확인
② App Server 인스턴스 세부 정보 퍼블릭 IPv4 주소 복사
③ 복사한 주소를 새 브라우저 탭에 붙여넣기
- 웹 애플리케이션이 나타나야 하고 애플리케이션이 아직 데이터베이스에 연결되지 않아서 많은 정보가 표시되지 않음
- 이전에 생성한 Amazon RDS 데이터베이스 인스턴스를 사용하도록 애플리케이션을 구성
④ 다시 RDS로 돌아와 inventory-db를 선택해 연결 및 보안 설정에서 엔드포인트를 복사
여기서, 엔드포인트란?
- 엔드포인트는 네트워크 상의 특정한 주소를 나타내며, 보통 웹 서비스나 클라우드 서비스에서 사용
- Amazon RDS의 엔드포인트는 주로 호스트 이름 또는 IP 주소로 표현되며, 해당 데이터베이스 인스턴스에 대한 네트워크 주소(즉, 데이터베이스 인스턴스가 위치한 곳)를 가리킵니다.
- Amazon RDS의 각 데이터베이스 인스턴스는 고유한 엔드포인트를 가지며, 이를 통해 해당 데이터베이스에 접근할 수 있습니다.
⑤ 복사한 엔드포인트를 붙여넣어 아래에 있는 값 넣기
- 데이터베이스 호스트: <RDS 엔드포인트>
- 데이터베이스 이름: inventory
- 사용자 이름: admin
- 비밀번호: lab-password
⑥ AWS Secrets Manager 확인
AWS Secrets Manager는 AWS에서 제공하는 완전 관리형 보안 저장소 서비스입니다. 이 서비스를 사용하면 애플리케이션, 서비스 또는 다른 리소스에서 사용하는 비밀 정보를 안전하게 저장하고 관리할 수 있습니다
3. 데이터베이스 인스턴스 모니터링
① AWS 관리 콘솔로 돌아가 RDS 선택하여 데이터베이스에 inventory-db선택하여 모니터링 선택
- 데이터베이스 인스턴스 매개변수를 나타내는 CloudWatch 지표 관찰
Amazon CloudWatch : AWS 리소스 및 애플리케이션을 실시간으로 모니터링하고, 로그 및 지표를 수집하여 분석
CPU utilization(중앙 처리 장치 이용률): 시스템의 CPU가 현재 작업을 처리하는 데 사용되고 있는 비율
데이터베이스 연결 수(DB connections): 데이터베이스에 대한 클라이언트 응용 프로그램 또는 사용자가 데이터베이스에 접속해 있는 수
4. 데이터베이스에서 작업 수행
① RDS의 데이터베이스 inventory-db를 선택하여 작업 메뉴에서 일시적으로 중지 선택
② 몇 분 후 탭을 새로고쳐 인스턴스가 중지되었는지 확인
- 상태: 일시적으로 중지됨
실습을 완료하였습니다.
'AWS' 카테고리의 다른 글
AWS Educate: AWS Networking (1) | 2024.06.05 |
---|---|
AWS Educate: AWS Cloud Operation (0) | 2024.06.05 |
AWS Skillbuilder: Getting Started with DevOps on AWS(Korean) (0) | 2024.05.22 |
AWS Skillbuilder : Introduction to AWS CloudFormation (Korean) (0) | 2024.05.22 |
AWS Skillbuilder : Building with Amazon Aurora Databases (Korean) (0) | 2024.05.22 |