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
AWS cloudformation
https://aws.amazon.com/ko/cloudformation/
https://docs.aws.amazon.com/ko_kr/AWSCloudFormation/latest/UserGuide/cfn-whatis-concepts.html
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/
subscription 관리(빌링)
빌드 : 어떤 sw 컴포넌트? 어떻게 saas서비스에 배포할 것인지
saas 테넌트의 프로파일 고려해야.. 테넌트가 요구하는 isolation, 속성 파악과 고객 대상이 요구하는 SLA
멀티 테넌트 서비스 설계: 인증, 분석, 모니터링. 컴포넌트 단위로.. 어떤 테넌트의 어떤 유저인지..