굿즈와 경품 받으러 방문
클라우드 공부하는 이유
- 서버개발자로서 기본적인 소양이라 생각한다.
- 특히 노드 서버개발은 스타트업에서 일할 가능성이 큰데, 스타트업은 어디에 서버를 둘까? 당연히 클라우드...
- 만약 1인 개발로 진로를 정해 혼자서 북치고 장구치려면 더더욱 클라우드가 중요
관심있는 AWS 서비스들
- ECS
- lambda
- AWS Solutions Architect Certificate 취득하고 싶음
방문 기록
네 가지 세션 중 두가지를 중점적으로 들었다.
특히 천만사용자를 위한 인프라 구축 세션은 서버 개발자로서 알아야할 내용들을 가볍게 소개해줘 앞으로 큰 도움이 될거라 생각한다.
천만사용자를 위한 인프라 구축
AWS 강승욱 SA
천만 사용자를 위한 AWS 클라우드 아키텍처 진화하기 - 이일구, AWS | AWS Builders 온라인 시리즈
0. 한번에 마법처럼 구축할수는 없다.
그럼 어디부터 시작?
서비스 구축 기반을 서버기반, 컨테이너, 서버리스 중 선택 가능
빌드 → 측정 → 학습의 선순환 구조 구축
1. 토이프로젝트
- Route53
- Elastic IP
- Instance
- 페일오버, 이중화, 확장성, 기술선택의 제약
LightSail
2. 더 큰 시스템이 필요하면?
스케일 업
- 단일 서버에서 가장 간단하게 구현
- 결국 리소스나 비용제약으로 한계에 도달
3. DB 분리(100명 이상)
- EC2에 직접 구축하거나 managed DB service
- 최초는 RDB 사용
AWS aurora
- mysql, postgres호환되는 클라우드버전 DB
- 적극적 도입 추천
- 비용효율화를 위한 serverless 옵션도 가능함
NoSQL 솔루션
Cognito
- 인증과 자격증명
- 소셜로그인 제공
- jwt 토큰기능 제공
4. 분산 부하 설정(1000 이상)
ELB : 로드밸런서
- 일반적으로 7계층 Application Load Balancer 사용
Multi-AZ DB
Multi Instance
5. 더 많은 부하를 분산 시켜보자, Scale Out More (만명 이상)
AWS Aurora Read Replica
S3 and Cloudfront for static contents
- DB, 서버 부하 분산
- 서버에는 코드만. 서버 인스턴스가 죽더라도 바로 pull 해서 복구가능
- 탈부착이 신속히 가능한 CDN - CloudFront
AWS ElatiCache - in memory db
- 관리형 redis
- DB부하 분산을 위한 캐싱 DB
- RDB보다 지연시간 짧음
6. 동적으로 Scale Out, Scale In 해보자 (50만명)
시간대별, 요일별 패턴에 맞는 운영
오토스케일링
모니터링
- 당연히 서비스 운영에 매우 중요.
- CloudWatch 활용
7. 50만명 이상이면?
8. 100만명
- 앞서 언급한 기술들의 최적화
- 서버리스 아키텍쳐를 하이브리드 형식으로 적용
9. 1000만명
- DB 최적화 필요
- DB 쪼개기 및 이관
- 샤딩
- NoSQL 하이브리드, GraphQL 활용
서버 아키텍쳐의 종류
Service Oriented Architecture
Micro Service Architecture
Dont reinvent the wheel
aws’s predefined services for msa
SQS, RabbitMQ, Kafka queue service for loose coupling
Event driven compute AWS Lambda