AWS

wow_kim·2021년 3월 6일
0
post-thumbnail

1. 서비스 개요

이점
1. 민첩성과 즉각적인 탄력성(On-Demand)
2. 비용 절감 효과
3. 개방성 및 유연성(API)
4. 보안
5. 높은 기술 노하우

대표 솔루션
1. 어플리케이션 호스팅 : 서버 자원 제공
2. 웹 사이트 : 서버 자원 제공(CPU, Memory, Storage 등)
3. 백업 및 스토리지(S3 등)
4. 데이터베이스
5. 엔터프라이즈 IT

2. AWS 서비스 레이어

  1. AWS Global Physical Infrastructure
  2. Compute(EC2) / Storange(S3) / Network(RDS) / Database(VPC) : Low-Level Building Blocks

  1. Paralled Processing(Elastic MapReduce) / Transfer / Content Delivery / App Services / Search : High-Level Building Blocks
  2. Auth, Authorization, Federation/ Monitoring / Deployment and Automation : Cross Service Features
  3. Libraries and SDKs / Web Interface / Tools / Command Line : Tools to access services
  4. Application

3. AWS 책임 분담 모델

Infrastructure 서비스 모델

  • Managed By AWS(EC2, S3, RDS, VPC 등)
  • Managed By Customers, Apache같은것 설치 가능

Abstracted 서비스 모델

  • 해당 플랫폼을 빌려쓰는 느낌

4. EC2(Elastic Compute Cloud)

  • EC2는 AWS에서 가장 기본이 되는 low-level 빌딩 블럭에 속하는 컴퓨팅 서비스이며, 원하는 만큼 가상 서버를 구축하고 보안 및 네트워크 구성과 스토리지 관리가 가능.
  • OS를 EC2에 연결되어 있는 AMI(Amazon Machine Image)에 올릴 수 있음
  • InfraStructure 책임 모델

구성요소

  1. 인스턴스 : 가상 컴퓨팅 환경
  2. AMI(아마존 머신이미지), 인스턴스에 필요한 OS와 소프트웨어가 구성된 템플릿(골드 이미지)
  3. 인스턴스 타입 : 가상 서버의 CPU, 메모리 사이즈 용량
  4. EIP(Elastic IP) : 가상의 컴퓨팅 서버에 할당되는 고정 공인 IP
  5. VPC : 가상의 컴퓨팅 서버가 속하는 독립된 네트워크 블럭

5. Lambda

  • 이벤트에 응답하여 코드를 실행하고 자동으로 기본 컴퓨팅 리소스를 관리하는 서버리스 컴퓨팅 서비스
  • 백엔드 서버와 운영 체제 유지 관리, 용량 프로비저닝 및 자동 조정, 코드 및 보안 패치 배포, 코드 모니터링, 로깅 등 모든 컴퓨팅 리소스 관리를 수행한ㄷ.
  • Abstracted 책임 모델

New Data -> Batch Layer / Serving Layer / Speed Layer -> 'Merge' -> Query

6. 컴퓨트 서비스 장애에 대한 디자인

  1. 확장성 : AZ(가용영역) 단위로 확장 가능하며, Autoscailing을 통해 요구되는 트래픽들을 수용한다.
  2. 모니터링 및 운영 관리 : API와 대시보드를 통해 손쉽게 관리
  3. 이중화 : 여러 AZ에 DB를 구성하여 단일요소의 장애 제거, 하나의 AZ에 장애가 났을 때 서비스를 지속할 수 있도록
  4. Failover : EIP와 Disk를 별도로 관리 가능하여 정상적인 상태의 서버로 대체

7. AWS 데이터베이스 서비스

  • 데이터베이스의 용량과 성능에 맞게 조정 가능 -> 시간 소모적인 관리 작업들(패치, 백업, 확장)등으로부터 자유롭게 해줌
  • 관계형 데이터베이스 : RDS : Mysql, MsSQL, Oracle, PostgreSql 등 사용 가능
  • 비관계형 데이터베이스 : DynamoDB : key-value 형식

관계형 데이터베이스

  • 키 값에 의해 서로 관련되는 테이블로 구성하는 가장 일반적인 데이터베이스
  • 각 테이블/관계는 하나의 엔티티 타입(고객이나 제품)을 대표
  • 효율적이고 정확하게 운용되기 위해서 ACID 트랜잭션 특징을 가짐
    ACID 트랜잭션 : 데이터는 학상 원자성, 일관성, 지속성, 고립성을 가져야 함

NoSQL

  • 스키마가 없으며 저장하고 싶은 값을 무제한으로 저장하는 DB
  • 각 데이터 항목으로 고유하게 식별하는 기본 키는 있어야 하지만 다른 속성값에 대해서는 제한이 없음
  • DynamoDB는 JSON 문서를 비롯한 정형 또는 반정형 데이터를 관리할 수 있으며 BASE의 특징을 가짐
    BASE : Basically Available, Soft-State, Eventually Consistency(ACID에 비해서는 조금 느슨함)

데이터베이스 장애에 대한 디자인

  1. 확장성 : AZ 단위로 확장 가능, 다른 AZ로의 두번째 구성 가능
  2. 백업 및 운영 관리 : API와 대시보드를 통해 손쉽게 관리
  3. 이중화 : 여러 AZ에 DB를 구성하여 단일요소의 장애 제거
  4. Failover : 데이터가 소결합으로 저장되어 있어 대체작동 가능
profile
def __wow__(?):

0개의 댓글