21-04-21 AWS 웨비나 둘째날 노트정리
[AWS Builders 프로그램] 데이터베이스 이론 및 실습
- 교육 일자 : 2021. 04. 21(수)
- 이 강의에서는 AWS의 완전관리형 데이터베이스인 Aurora 서비스에 대해 알아보고 실습을 진행 (오전 강의)
- 또, 효율적인 Aurora의 활용을 위해 인터널 아키텍처의 구조를 알아보고 상세 기능의 사용법에 대해 배움 (오후 강의)
오전 강의 : AWS의 Aurora 서비스
열어보기
AWS RDS 서비스의 특징
- 자체 관리형 DB의 경우 많은 작업들을 부담해야 하지만 AWS의 완전 관리형 DB를 사용한다면 개발자는 스키마 디자인, 쿼리 구성, 쿼리 최적화만 담당하고 그 외의 일은 AWS에서 담당하게 된다
- AWS에서 담당하는 것은 자동 백업 및 복구, 보안 및 격리, 산업 규정 준수, 자동 패치, 모니터링, 서버 유지관리 등
- Amazon RDS(이하 RDS)에서 제공하는 DB: Aurora, MySQL, PostgreSQL, MariaDB, SQLServer, ORACLE
- AWS 콘솔에서 몇 분 만에 서비스에 필요한 데이터베이스를 구성할 수 있으며, 서버나 네트워크 OS, DB의 설치 등 모든 작업은 불필요함
- DB 인스턴스에 대한 CloudWatch 지표로 모니터링이 가능하며 SNS와 연계해 이벤트가 발생할 때 경보 수신이 가능
- 데이터베이스 성능 개선 도우미를 제공하며 로드를 유발하는 SQL문과 그 이유를 찾기에 용이함
- 물리적으로 분리된 가용영역에 standby DB를 운영하며 동기식 복제 및 자동 Failover를 수행함
- 또한 읽기 전용 DB를 제공(MySQL, MariaDB, PostgreSQL, Oracle에서 지원)하며, 장애 발생 시에 빠른 복구를 위해 읽기 전용 복제본을 마스터로 승격 가능함
- 매일 전체 인스턴스에 대한 볼륨을 백업, DB변경 로그가 저장 됨 (기본 7일 최대 35일 보관)
AWS Aurora 서비스
- 클라우드 용으로 구축된 MySQL, PostgreSQL 호환 관계형 데이터베이스
- 3개의 가용 영역에 복제본을 하나씩 갖는 6벌의 데이터 베이스로 내구성이 매우 높다
- Aurora Serverless 서비스가 새로 런칭, 필요할 때만 사용하고 사용하지 않을 때는 Shutdown되는 초당 과금 서비스
Amazon Redshift 서비스
- 빠르고 강력한 페타 바이트 규모의 데이터 웨어하우스
- 2PB까지 데이터 확장 가능(SSD 및 SAS 디스크 옵션 존재)
Amazon Dynamo DB 서비스
- 완전관리형 key-value, 문서 데이터베이스
- 어떤 규모에서도 10밀리초 미만의 성능 제공
- 내구성이 뛰어난 다중 리전, 다중 마스터 DB
- 하루 10조 개 이상 요청 처리 가능
Amazon DocumentDB
- JSON 데이터에 최적화된 완전관리형 문서 데이터베이스
- MongoDB와 호환되어 기존 MongoDB 드라이버 사용 가능
Amazon ElastiCache
- Redis, Memcached와 호환되는 인 메모리 DB
AWS Schema Conversion Tool
- 기존 DB 스키마를 다른 DB 엔진 스키마로 변환하는 툴
오전 강의 : AWS Aurora 실습
열어보기
- CloudFormation Template을 사용해 실습환경 생성 (Stack 생성에 10~20분 정도 걸림)
- Stack이 생성되면 출력(Outputs)에 Key-Value가 표시됨
- Session Manager를 이용해 EC2 인스턴스에 접속
- 터미널에서 우분투 유저로 스위칭하기
sudo su -l ubuntu
tail -n1 /debug.log
로 인스턴스의 정상 기동 확인* bootstrap complete, rebootin
env |grep DB
로 DBUSER, DBPASS, DBUS_SESSION_BUS_ADDRESS를 각각 확인- mysql client를 사용해 aurora 인스턴스로 접속을 확인 clusterEndpoint는 2번에서 확인 가능
1 | export DBURL=auroralab-mysql-cluster.cluster-cqxoqejlondh.ap-northeast-2.rds.amazonaws.com |
- 스프링을
sudo apt-get install openjdk-11-jdk -y
로 설치 - PetClinic을 사용하기 위해 클론 및 빌드
1 | git clone https://github.com/kiwonyoon0701/spring-petclinic.git |
- EC2의 퍼블릭 IP를
curl -s ifconfig.me | awk ' { print $1 "\n" }'
로 확인 11.java -jar target/*.jar
로 어플리케이션 기동 - 퍼블릭 IP와 8080포트로 어플리케이션 접속
→ 이후 DB관련 작업 및 DB복제 등의 작업이 이어짐 (클론 후 이어지는 작업이므로 생략)