10. 캐싱
10.1. 세션관리
- 사용자 세션을 관리하는 특정 서버로 요청을 라우팅할 수 있습니다.
- 쿠키토큰을 사용하여 세션을 유지
- ELB 사용 시, 트래픽이 분산되기 때문에, 한 서버에만 쿠키+사용자 정보가 저장되기 때문에 로드밸런스로 인해 다른 서
버로 향하게 되면 로그인이 풀리는 문제가 있다.
- 따라서 ELB의 고정 세션기능 사용하거나 세션생태를 저장하기 위한 캐싱 DB를 생성하여 사용한다.
10.2. DB 캐싱
- Amazon DynamoDB Accerlerator : 탁월한 성능 , 높은 확장성, 완전 관리형, 보안 / 인 메모리 캐쉬(Dynamo 전용)
- Amazon Elastcache : 인 메모리 캐쉬, 클라우드에서 인 메모리 캐시를 배포, 운영, 조정하는데 사용하는 웹 서비스
- 연속쓰기 : 데이터가 저장될 때 마다 캐시의 데이터가 업데이트 되므로, 캐시의 데이터는 언제나 최신입니다.
-> 모든 쓰기 작업은 캐시로 쓰기와 데이터 베이스로 쓰기라는 2번의 작업이 수행
-> 한번도 읽지않은 데이터가 대부분이므로 클러스터에는 한번도 읽지 않은 데이터가 상당히 많을 수 있다.
11. 결합 해제된 아키텍처 구축
- ( 밀결합 ) 기존 인프라는 강력하게 통합된 서버 체인을 중심으로 움직이며 각 서버는 특정 목적을 가지고 있다.
- 이러한 구성에서 요소나 계층 하나에 장애가 발생하면 시스템에 치명적인 영향을 줄 수 있습니다.
- 상호종속성을 줄여 다른 요소에 영향을 주지 않도록 해야한다. --> 밀결합 해제된 결합을 소결합
- 계층 사이 로드밸런스 같은 기능을 통해 결합을 축소한다.
- Amazon SQS : 완전 관리형 메시지 대기열 서비스
: 메시지는 처리 및 삭제될 때까지 저장
: 발신자와 수신자 간 버퍼 역할을 담당
: 소결합 실현 : 비동기식 처리를 사용하여 각 단계에서 신속하게 응답
: 성능 및 서비스 요구 사항 처리
: 실패한 단계에서 십게 복구
: 표준 대기열( 최소 한 번 ) 과 fifo 대기열 ( 정확히 한번)
: 배달 못한 편지 대기열 지원
: 백엔드에서 오래걸리는 작업에 경우 앞에 큐를 배치함으로서 작업의 효율성을 높인다.
11.1. amazon SNS와 결합 해제 : 클라우드 기반 앱 용도
- amazon SNS : 클라우드에서 손쉽게 알림 기능을 설정, 작동 및 전송할 수 있는 웹 서비스
11.2. 아마존 MQ
- 아파치 MQ용 관리형 메시지 브로커 서비스.
->> 애플리케이션 마이그레이션 용도
12. 마이크로 서비스 및 서버리스 아키텍처
12.1. 마이크로 서비스란?
- 잘 정의된 API를 통해 통신하는 독립서비스로 구성된 애플리케이션
- 코드에 대한 종속성을 제거하여 각 서비스들을 독립적으로 구성
- 특성 : 자율적, 전문적,
12.2. 컨테이너 서비스
- 반복 가능하며 독립형 실행 환경이며 VM보다 더 빠른 처리속도를 가진다.
- 컨테이너는 리소스 격리 프로세스에서 애플리케이션과 종속 항목을 실행하게 해주는 운영 시스템 가상화 방법
- 환경이 변화해도 정상적으로 수행이 가능하다.
- ECS : 도커 컨테이너의 실행을 조정
: 컨테이너를 실행하는 노드 플릿을 유지
: 인프라 구축의 복잡성을 제거
: 컨테이너 이미지를 가져와 적절한 EC2 클러스터에 요구한 만틈 컨테이너를 구동
: ECR을 이용하여 컨테이너의 저장소 역할을 하며 서비스를 저장하여 EC2에서 구동
:
- EKS : 쿠버네티스 기반인 컨테이너 대규모 환경 지원
- AWS Fargate : 완전 관리형 컨테이너 서비스
: 클러스터 프로비저닝 및 관리
: 런타임 환경관리
: ECS EKS 실행 가능
12.3. 서버리스 환경 구현
- 서버를 관리하지 않고 앱과 서비스를 구축하고 실행
- AWS Lambda : 완전 관리형 컴퓨팅 서비스
: 상태 비저장 코드 실행
: 일정에서 또는 이벤트에 대한 응답으로 코드 실행, 엣지에서 실행 가능
: 서버를 프로비저닝하거나 관리할 필요없이 코드를 실행할 수 있다.
- 서버리스 컴퓨팅의 이점 : 구성이 아니라 애플리케이션에 집중함
: 요청 시에만 컴퓨팅 리소스 사용
: 마이크로 서비스 아키텍처 구축
--------------------------------------------------------------------------------------------------------------------
- amazon api gateway : 애플리케이션에 접속 역할을 하는 API 생성
: (waf 같이 사용) 엔드 포인트 노출 방지 , DDOS 공격 방지
: WAF => 가용성에 영향을 주거나, 보안을 위협하거나, 리소스를 과도하게 사용하는 공격으로
부터 애플리케이션이나 API를 보호하는데 도움이되는 웹 애플리케이션 방화벽
AWS 환경에서 발생하는 7계층에 해당되는 보안위험에 대응하기 위한 보안 서비스
- AWS step function : 단계를 자동으로 트리거하고 추적
애플리케이션 기능을 단계별로 실행
상태시스템 : 출력을 결정하기 위해 이전 조건에 의존하는 일련의 작동조건을 가진 객체
12.4. AWS 관리형 서비스로 서버리스 아키텍처 구현
- 시나리오 : 재고 내역 파일을 업로드하고 저장 -> 대시 보드 를 통해 재고 수준을 모니터링 -> 재고가 없얼 때 재고관리자
에게 알림
csv 재고 내역파일이 s3 업로드 -> lambda 함수가 dynamodb 테이블에 콘텐츠 로드 -> 재고내역을 서버리스 대시
보드앱을 통해 모니터링 -> 두번째 lambda 함수는 재고가 없을 때 알림을 보냄
- lambda 함수 생성하여 데이터 로드
- s3 이벤트 구성
- 이벤트 생성
** 버킷에 재고파일 수신 준비
- 로딩 프로세스 테스트
- 미리 구성되어 있는 대시보드 앱 URL을 통해 확인
-. 대쉬보드 app 은 s3 에서 정적 웹 페이지로 제공되며 amazon Cognito를 통해 anonymous user로 인증
이는 대시보드가 DynamoDB에서 데이터를 검색할 수 있는 충분한 권한 제공
- dynamodb에서 데이터를 확인 => 테이블 확인
- 알림 구성 : 아마존 sns 사용
- 알림 수신을 위해 주제를 구독
- 알림을 전송하는 lambda 함수 생성
- 테이블에 데이터가 추가될때마다 함수가 트리거 되도록 함수 구성
- 시스템 테스트
'클라우드 > AWS' 카테고리의 다른 글
Architecting on AWS (5일) 2 (0) | 2022.07.12 |
---|---|
Architecting on AWS (4일) (0) | 2022.07.07 |
Architecting on AWS (3일) (0) | 2022.07.06 |
Architecting on AWS (2일) (0) | 2022.07.05 |
Architecting on AWS (1일) (0) | 2022.07.04 |