데이터베이스 계층 추가
아키텍처 요구사항 : 고가용성, 확장이 용이하며 애플리케이션 서버와 분리된 데이터베이스가 필요합니다.
데이터베이스 계층 고려 사항
확장성, 총 스토리지 요구 사항, 객체 크기 및 유형, 내구성
“얼마나 많은 처리량이 필요한가?
선택한 솔루션이 필요할 경우 나중에 확장이 가능한가? “
“단순 데이터 구조, 대용량 데이터 객체, 또는 모두를 저장해야 하는가?”
“어떤 수준의 데이터 내구성, 데이터 가용성 및 복구성이 필요한가?
관련 규제 의무가 있는가?”
2
관계형 데이터베이스를 선택해야 할 경우:
• 엄격한 스키마 규칙 및 데이터 품질 적용이 필요
• 데이터베이스가 과도한 읽기/쓰기 용량을 필요로 하지 않음
• 최상의 성능을 필요로 하지 않는 관계형 데이터베이스의 경우 RDBMS가 자원 소비가 적은 최고
의 솔루션이 될 수 있습니다.
비관계형 데이터베이스
비관계형 데이터베이스를 선택해야 할 경우:
• 데이터베이스를 수평적으로 확장해야 함
• 데이터가 기존 스키마에 적합하지 않음
• 읽기/쓰기 속도가 기존 SQL DB에서 경제적으로 지원할 수 있는 범위를 초과
3
온프레미스 서비 비관리형 데이터베이스 관리형 데이터베이스
Amazon 데이터베이스 옵션
Amazon RDS
완전 관리형 관계형 데이터베이스 서비스
몇 분이면 새 인스턴스를 프로비저닝
몇 번의 마우스 클릭으로 수직으로 조정
MySQL, MariaDB, PostgreSQL, Oracle – 최대 16TB
MySQL 및 PostgreSQL용 Aurora – 최대 64TB
4
Amazon Aurora는 MySQL 및 PostgreSQL과 호환되는 완전 관리형 관계형 데이터베이스 엔진입니다.
• MySQL 처리량의 최대 5배
• PostgreSQL의 처리량의 최대 3배
• 3개의 가용 영역에 6가지 방법으로 데이터를 복제
• 기존 애플리케이션을 최소한으로 변경
Amazon DynamoDB
완전 관리형 비관계형 데이터베이스 서비스
이벤트 중심 프로그래밍(서버리스 컴퓨팅) 가능
최상의 수평 확장 기능
DynamoDB 트랜잭션은 단일 AWS 계정 및 리전 내에 있는 하나 이상의 테이블에서 ACID를 제공합니다.
Amazon DynamoDB가 적합한 경우
대용량의 단순 데이터를 보유
신속하고 간편하게 확장해야 함
복잡한 조인이 필요하지 않음
글로벌 테이블은 단일 AWS 계정이 소유하고 복제본 테이블로 한 개 이상의 DynamoDB 테이블의 모음입니다.
Amazon DynamoDB 일관성 옵션
최종적 일관된 읽기(Eventually Consistent Read)
DynamoDB 테이블의 데이터를 읽을 때, 응답은 최근 완료된 쓰기 작업의 결과를 반영하지 않을 수 있습니다. 응
답에는 변경 전 데이터가 일부 포함될 수 있습니다. 잠시 후 읽기 요청을 반복하면 응답이 최신 데이터를 반환합
니다.
5
강력한 일관된 읽기(Strongly Consistent Read)
강력한 일관된 읽기를 요청하면 DynamoDB는 성공한 모든 이전 쓰기 작업의 업데이트를 반영하여 가장 최신 데
이터로 응답을 반환합니다. 강력한 일관된 읽기는 네트워크 지연 또는 중단이 발생한 경우에 사용이 어려울 수
있습니다.
Amazon RDS 보안 제어
DB 자체에 대한 액세스 – 누가 가시성을 보유하고 데이터베이스에 대한 작업을 실행할 수 있는가?
저장 시 암호화 – 저장 시 암호화되는 데이터에는 DB 인스턴스에 대한 기본 스토리지, 자동 백업, 읽기 전용 복
제본, 스냅샷이 포함됩니다
전송 중 암호화 – 전송 중 암호화는 SSL을 사용하여 수행할 수 있습니다.
이벤트 알림 – Amazon RDS 인스턴스에서 발생할 수 있는 다양한 중요 이벤트에 대한 알림을 받을 수 있습니다.
Amazon DynamoDB 보안 제어
정의 가능한 액세스 권한 – DynamoDB에서는 데이터베이스의 테이블에서 항목, 심지어 속성까지 모든 것에 대해
액세스 권한을 부여할 수 있습니다
저장 시 암호화 – DynamoDB는 완전 관리형 저장 암호화 기능을 제공합니다.
SSL/TLS – 기본적으로 DynamoDB와의 통신은 SSL/TLS 암호화를 사용하여 네트워크 트래픽을 보호하는 HTTPS
프로토콜을 사용합니다.
AWS 데이터베이스로 데이터 마이그레이션
AWS Database Migration Service 는 가장 광범위하게 사용되는 데이터베이스(Oracle, PostgreSQL, Microsoft SQL
Server, Amazon Redshift, Amazon Aurora, MariaDB 및 MySQL) 간 마이그레이션을 지원합니다.
데이터 마이그레이션이 힘든 경우 ➔ AWS Snowball Edge를 권장
• 데이터베이스가 너무 큼
• 연결이 너무 느림
• 개인 정보 보호 및 보안 문제
AWS DMS에는 Snowball Edge 통합 포인트가 있습니다. Snowball Edge 디바이스를 사용하여 하나 이상의 데이터
6
베이스를 마이그레이션할 수 있습니다.
• 멀티 테라바이트 스토리지
• 인터넷 또는 DX 대역폭을 사용하지 않음
Amazon Virtual Private Cloud (VPC)
VPC 는 AWS 계정 전용 가상 네트워크입니다. (AWS Cloud 의 프라이빗 네트워크 공간)
워크로드에 대한 논리적 격리를 제공합니다.
Amazon VPC (Amazon Virtual Private Cloud)는 클라우드의 네트워크 환경입니다.
Amazon VPC 는 AWS 리소스를 사용자가 정의한 가상 네트워크안에서 시작할 수 있게 합니다.
VPC 에서의 IP 주소 지정에 대한 자세한 내용은 https://docs.aws.amazon.com/vpc/latest/userguide/vpc-ip-
addressing.html 을 참조하십시오.
VPC 는 AWS 리전 중 1 개 리전에 배포됩니다.
단일 VPC 패턴
하나의 VPC 가 적절한 사용 사례는 제한적입니다.
한 명 또는 매우 작은 팀이 관리하는 소규모 단일 애플리케이션
다중 VPC 패턴
• 단일 팀 또는 단일 조직(예: 관리형 서비스 공급자)
• 더 쉽게 표준 상태를 유지하고 액세스를 관리할 수 있는 제한된 팀
• 거버넌스 및 규정 준수 표준은 조직의 복잡성과 관계없이 워크로드 격리를 요구할 수 있습니다.
복수 계정 패턴
• 대규모 조직 및 여러 IT 팀이 있는 조직
• 빠른 성장이 예상되는 중간 규모의 조직
엔터프라이즈 고객 또는 조직에 가장 적합합니다. 예를 들어, 2 개 이상의 팀을 지원하는 조직은 이 패턴을
사용하여, 개발 환경 리소스에는 전체 액세스 권한이 있지만, 프로덕션 환경 리소스에는 제한된 액세스 또는
전혀 액세스 권한이 없는 개발자를 지원할 수 있습니다.
• 동일한 리전 또는 다른 리전에 여러 VPC 를 보유할 수 있습니다.
단, 서비스 제한: 계정당 리전당 VPC 5 개
• 각 VPC 는 사용자가 지정하는 프라이빗 IP 주소의 범위를 예약합니다.
• 이러한 프라이빗 IP 주소는 해당 VPC 에 배포된 리소스에서 사용할 수 있습니다.
• IP 범위는 CIDR (Classless Inter-Domain Routing) 표기법을 사용하여 정의됩니다.
• 고유 IP 주소 가져오기(BYOIP-Bring Your Own IP) 접두사 지원
예: 10.0.0.0/16 = 10.0.0.0에서 10.0.255.255까지의 모든 IP
라우팅 테이블
• VPC 리소스 간에 트래픽을 연결하는 데 필요합니다.
• 각 VPC에는 주요(기본) 라우팅 테이블이 있습니다.
• 사용자 지정 라우팅 테이블을 생성할 수 있습니다.
• 모든 서브넷에는 연결된 라우팅 테이블이 있어야 합니다.
• 모범 사례: 각 서브넷에 대해 사용자 지정 라우팅 테이블 사용
서브넷을 통해 허용되는 다양한 수준의 네트워크 격리
퍼블릭 서브넷
• 퍼블릭 인터넷에 대한 인바운드/아웃바운드 액세스를 지원하도록 인터넷 게이트웨이에 대한 라우
팅 테이블 항목을 포함합니다.
프라이빗 서브넷
• 인터넷 게이트웨이에 대한 라우팅 테이블 항목이 없습니다.
• 퍼블릭 인터넷에서 직접 액세스할 수 없습니다.
• 일반적으로 제한된 아웃 바운드 퍼블릭 인터넷 액세스를 지원하기 위해 NAT 게이트웨이를 사용
합니다.
퍼블릭 서브넷에 인터넷 연결
인터넷 게이트웨이
• VPC의 인스턴스와 인터넷 간에 통신을 허용합니다.
• 기본적으로 가용성이 뛰어나고, 중복적이며, 수평적으로 확장됩니다.
• 인터넷으로 라우팅 가능한 트래픽에 대한 서브넷 라우팅 테이블에 대상을 제공합니다.
프라이빗 서브넷에 인터넷 연결
• 프라이빗 서브넷의 인스턴스가 인터넷 또는 다른 AWS 서비스로의 아웃바운드 트래픽을 시작하도
록 활성화합니다.
• 프라이빗 인스턴스가 인터넷에서 인바운드 트래픽을 수신하는 것을 차단합니다.
서브넷 권장 사항
• 작은 크기보다는 더 큰 크기의 서브넷을 고려합니다(/24 이상).
• 워크로드 배치 간소화:
• 워크로드를 10개의 작은 서브넷 중 어디에 배치할지 선택하는 것이 1개의 큰 서브넷보다
더 복잡합니다.
• 서브넷에서 사용 가능한 IP가 부족한 경우, 해당 서브넷에 IP를 추가할 수 없습니다.