본문 바로가기

DevOps

AWS SaaS design workshop

반응형

c4.large

인스턴스 패일리 / 인스턴스 세대 / 인스턴스 크기

 

하나의 큰 인스턴스보다 작은 여러개의 인스턴스를 로드밸런서로 진행하는 것이 더욱 좋을 것.

 

최소 트래픽에 맞춰 리절브 인스턴스.. 크래픽 오를 떄에는 온디맨드 인스턴스로 스케일 아웃이 될 수 있도록 설정

 

금요일 토요일 사용량이 많은 시간에는 온디맨드 인스턴스 늘려 늘어나는 트래픽 관리.

 

오토 스케일링 : 인스턴스 스케일 인/아웃

클라우드 와치 : 성능 측정 

cpu 80프로 이상 5일 정도 지속 -> 스케일 아웃으로 클라우드 와치에서 설정

 

오토스케일링 설정 사항

  • launch configuration
  • 어떤 AMI
  • instance type
  • 시큐리티 그룹
  • 롤 (리소스에 롤를 부여하고, access control)

 

auto scaling groups

  • 어떤 vpc와 서브넷
  • 로드 밸런서 사용할 것인지
  • 미니멈 인스턴스 설정
  • 멕시멈 인스턴스 설정
  • 배포할 capacity 

 

policy setting

  • 스케줄
  • 온 디멘드
  • 스케일 인/아웃 정책

 

 

여러 운영체제 이미지 지원

 

인스턴스 수명 주기

ec2는 러닝 중에 과금

 

       런치

AMI -> 팬딩  

            러닝 (과금 ㅇ) -> 스탑 : 과금x

                                  -> 종료 : 과금x

 

서버 스탑 자동화로 비용 축소..

단, EBS 볼륨을 루트로 사용하는 인스턴스가 아닌 경우에는 VM의 데이터는 나 날아감 (스토리지에 대한 과금은 계산됨)

종료 될때 날릴 것으로 설정하면 ok

 

하이버네이트 기능 : 리눅스 서버 스탑해도 메모리에 있는 것 날아가지 않고 볼륨에서 잠깐 잠재웠다가 원복 가능한 기능

elastic ip

 

서브넷 라우터 테이블에 연결하여 트레픽 제어

 

계층화된 보안 그룸 사용 가능

로드밸런서에 시큐리티 그룹애서 허용 포트 설정 -> 시큐리티 그룹에서는 로드밸러서에서 들어온 트래픽만 받음  ->인스턴스 1

                                                                                                                                                                      ->인스턴스2

->새로운 인스턴스 추가 시에도 자동 보안 규칙 

 

ec2키페어

퍼블릭 키, 프라이빗 키 -> 리눅스에서는 ssh로 접속

인스턴스 메타데이터 -> 내 아이피를 다른 어플리케이션에 알려줄 수 있는 기능

 

컨테이너 서비스 

 ECS/EKS :

일정부분 또는 모든 ec2 클러스터 관리

elastic conrainer service / elastic conrainer service for kubernetes

컨테이너 인프라 운영의 복잡성 해소

머신러닝 속도 향상 (모델 학습 시킬 때 사용 .. tensor : 큐브 플로어)

 

Fragate

 

EBS

독립적인 데이터 라이프사이클

하나의 인스턴스에 여러 볼륨..

볼륨은 하나의 인스턴스에

ssd hdd

 

NFS 클라

NFS 서버 : 관리 힘듦

 

NFS 클라

EFS 서버 : 관리형 파일 시스템

 

AWS quickstart

https://aws.amazon.com/ko/quickstart/?quickstart-all.sort-by=item.additionalFields.updateDate&quickstart-all.sort-order=desc

AWS cloudformation

https://aws.amazon.com/ko/cloudformation/

https://docs.aws.amazon.com/ko_kr/AWSCloudFormation/latest/UserGuide/cfn-whatis-concepts.html

 

AWS CloudFormation 개념 - AWS CloudFormation

AWS CloudFormation 개념 AWS CloudFormation을 사용하는 경우에는 템플릿 및 스택으로 작업합니다. 템플릿을 생성하여 AWS 리소스와 해당 속성에 대해 설명합니다. 스택을 생성할 때마다 AWS CloudFormation에서 템플릿에 설명된 리소스를 프로비저닝합니다. 주제 템플릿 AWS CloudFormation 템플릿은 JSON 또는 YAML 형식의 텍스트 파일입니다. .json, .yaml, .template 또는 .txt 등

docs.aws.amazon.com

AWS saas 솔루션 설계를 위한 프레임 워크 (동접자 백만명 Active user를 서비스하는 saas 설계)

최신 글로벌 어플리케이션 동향 

- 삼성 엑사바이트 / 쿠팡 테라바이트

in memory database

micro seconds 요구사항이 온다면 어떤 DB? 레디스 

모바일 트레픽이 전체 트레픽의 70프로로 육박.. 

확장성 고려 : 이전에는 앤터프라이즈 플러그앤플레이, 핫 플러그 개념으로 스케일 업..

카톡.. 수백대의 mysql .. 적은 돈으로 쥐어짬

 

오로라디비,, 

dynamo db, document db

디비에 없는데 프로토타입 만들고 싶다. json으로 오브젝트 받고 가공하여 저장하고 쓰고 싶다는 요구사항..?으로 생겨남..

sql db : 하드나 sdd가 consistance layer..마이크로 새컨드 절대 불가능

in memory database : 메모리..베터리가 달려있는 메모리? 

graph db : 소셜 네트웤 친구찾기.. 은행권 

time series db : 시계열 데이터 저장.. 주식, 모니터링 서비스

 

아마존 서비스는 3천여개의 MSA로 구성되어 있음. 로그인, 카테고리, 등..

read replica

읽기 확장 : 쓰기 확장 = 2:8

cud와 r의 경계치를 알아서 rr을 추가, 그 후에 cud replica 추가 또는 샤딩.(샤드 노드간의 조인은 유의해야 샤드 스페어)

 

WHY 오로라?

MySQL

az1   ->    az2

master    slave

1. 커밋 시 자신 디비에 쓰기 작업

2. slave 에 req

3. slave는 자신 디비 쓰기작업

-> commit 완료

Aurora

rac구조 ( 하위 스토리지 모두 한번에 요청한다. )

하나의 master가 모든 스토리지에 쓰기작업..

어느정도 부하가 일정 수준 이상 올라가면 오로라의 tps가 떨어진다...

최소 40프로 이상 빠름

DynamoDB

파티션 키, sort 키

조회를 하면 50미리 새컨드 이하의 ratancy.. 

몇기가가 있다 하더라도, 어떤 특정 키에서만 찾음.

QLDB

히스토리테이블... 업데이트했을 때 해시 키로 판단

Red shift

아테나, 아파치 스파크

 

AWS 컨테이너

아키텍쳐 MSA로 변화.. db를 개발자가 직접 관리. 서비스 단위로 컨퍼넌트끼리 나눠지다 보니,  운영자가 배포하는 게 아니라 자동화 배포를 위한 니즈 .. 컨테이너가 탄생!

container를 이용하면 배포 롤백이 하나의 명령어로 가능. 

애자일, CIC, 에 맞는 기술..

자동화한 컨테이너 배포는 간단하고, 이식성이 좋음(컨테이너 데몬이 설치되어 있는 곳이면, 배포와 운영이 가능), 클라우드 네이티브한 애플리케이션 가능,  

퍼블릭 클라우드, AWS 

IMA 시큐리티, 오토스케일링

사용 예시

MAS app, CICD.. 쿠버네티스 기반의 paas, AI/ML, scale testing, 

 

테라폼, 노마드, 쿠버네티스, 도커 swarm, ecs, 

 

2day

SaaS 설계시 인증 서비스

인증은 외부 시스템 쓰라 구글, 네이버, 카카오톡 로그인,, 을 활용하라.

idp (신원관리, 인증에 대한 오버헤드 가지도록 구성) identity provider,, 들로부터 인증 시스템 분리

API throttling 어떠한 경우에도 하나의 사용자가 전페 서비스의 성능에 영향을 주어서는 안됨 https://docs.aws.amazon.com/ko_kr/apigateway/latest/developerguide/api-gateway-request-throttling.html

SLA 준하도록 https://tech.whatap.io/2015/11/23/about-sla/

 

IT 서비스 운영의 기본 – SLA 이해하기 | WhaTap Tech Blog

SLA의 이해 서비스 수준 협약서(Service Level Agreement)는 서비스를 제공함에 있어서 공급자와 사용자간에 서비스에 대하여 측정지표와 목표 등에 대한 협약서입니다. 여러분이 서비스를 아웃소싱 받고 있다면 서비스 업체에 SLA를 요구할 수 있습니다. 하지만 SLA가 외부 업체를 통해 서비스를 제공 받는 경우에만 작성하는 것은 아닙니다. SLA는 서비스 운영의 내부 규정을 마련하기 위해 정의하기도 합니다. ITSM(IT Service Man

tech.whatap.io

subscription 관리(빌링)

 

빌드 : 어떤 sw 컴포넌트? 어떻게 saas서비스에 배포할 것인지

saas 테넌트의 프로파일 고려해야.. 테넌트가 요구하는 isolation, 속성 파악과 고객 대상이 요구하는 SLA

멀티 테넌트 서비스 설계: 인증, 분석, 모니터링. 컴포넌트 단위로.. 어떤 테넌트의 어떤 유저인지..

 

 

https://github.com/aws-samples/aws-saas-factory-bootcamp

반응형

'DevOps' 카테고리의 다른 글

AWS SaaS conference  (0) 2019.08.23
Linux  (0) 2019.08.21
rdb  (0) 2019.08.12
서버리스  (0) 2019.07.24
Docker  (0) 2019.06.16