-
결합 해제된 아키텍처 구축
아키텍쳐 결합 해제
"밀결합"
구성 요소들은 서로 강력하게 결합되어 있다.
ELB를 통해 부하를 분산시킨다.
외부 ELB ( internet passing)
내부 ELB ( 웹 앱 사이에서 로드 분산)
SQS를 사용한 결합해제 (Queue 사용)
- 완전 관리형 메시지 대기열 서비스
- 메시지는 처리 및 삭제될 때까지 저장( 삭제 메시지를 날려줘야 사라진다)
- 발신자와 수신자 간 버퍼 역할을 담당
- 1:1 모델
SQS로 소결합 실현
- 비동기식 처리로 각 단계에서 신속하게 응답
- 작업 인스턴스의 수를 늘려 성능 및 서비스 요구사항 처리
- 메시지가 대기열에 남아 있기 때문에 실패한 단계에서 쉽게 복구
SQS 유형
- 표준 대기열 :
- 최소 1회 전송 , 거의 무제한 횟수의 초당 트랜잭션(TPS)
- FIFO 대기열 :
- 정확히 한번 처리(순서대로), 초당 최대 3000건의 메시지 지원
SQS 일반 사용 사례
- 작업 대기열
- 배치 작업 버퍼
- 요청 오프로딩 (end user가 불편함 느끼지 않도록 뒷단에서 처리)
- 조정 트리거
SQS 기능
- 배달 못한 편지 대기열 지원 (Dead Letter Q)
- 가시성 제한 시간 ( 메시지가 중복 전달되지 않도록 잠금 조치)
- 긴 폴링 ( 요청 주기를 길게)
SQS 메세지 수명 주기
- 메세지를 가져가는 순간 딴 소비자가 가지고 가지 못하게 가시성 제한시간 시작된다
- 사용이 완료되면 삭제시켜줘야 한다.
메시징 사용 사례
- 서비스 대 서비스 통신
- 비동기 작업 항목
- 상태 변경 알림
- 불가 : 특정 메시지 선택, 대규모 메시지(동영상등, 처리하고 싶으면 s3에 동영상을 저장 후 s3주소를 넘긴다)
Amazon Simple notification Service를 사용한 결합 해제
https://aws.amazon.com/ko/sqs/pricing/
SNS 1:N 발행자
Topic을 구독자에게 발행한다.
채팅 만들 수 있다 : 채팅 채널을 topic으로
구독 유형
- 이메일
- HTTP/HTTPS
- SMS(문자 서비스) 클라이언트
- Amazon SQS 대기열
- AWS Lambda 함수
SNS 의 특성
- 하나의 게시된 메시지
- 리콜 옵션이 없음 ( 보내면 잘 전달 받았는지 확인 할 수 없다)
- 주문 및 전달을 보장할 수 없음
- HTTP/HTTPS 재시도
- 일대다 모델