이슈 사항 : pod 내부에서  aws 리소스 (rds.amazon.com)및  외부 서비스 (ex. www.naver.com) timeout 발생

 

 

히스토리:

1. 특정 큰 이벤트 중 발생 (많은 세션 발생)

2. 이벤트에 사용하지 않는 pod에서도 이슈 발생

 

 

원인 추정:

1번 이벤트 중 외부로 나가는 세션이 nat를 타고 나가고 외부 도메인, 내부 리소스 도메인 쿼리를 많이 보내서 coredns에 부하가 있는 것으로 추정 

 

2번 nat 리소스 제한이 걸렸다. (X)

 

조치 : 

1. coredns sale up, out 진행

2. dns configmap  log 설정 (추후 로깅 서비스 추가 필요 elk?)

 

참고 :

coredns 로그 설정 켜기 (다른 로깅 서비스 연결 필요)

----------------
kind: ConfigMap
apiVersion: v1
data:
  Corefile: |
    .:53 {
        log                  # Enabling CoreDNS Logging
        errors
        health
        ...
----------------

로그 확인 및 저장 (임시 테스트)

 

kubectl logs --follow -n kube-system --selector 'k8s-app=kube-dns' --timestamps --since-time "$(date -u +'%Y-%m-%dT%H:%M:%S.%N%:z' --date='-1 hour')" >>  ./corednsyyyymmdd.txt  

 

 

알 수 없는 정보 :

1. fargate node? pod? 리소스 제한 (네트워크 대역폭, i/o 속도) 해당 정보는 aws 서포트팀에서 오픈을 할 수 없다고 합니다.

 

2. coredns 모니터링에서는 cpu, 메모리 이슈는 없었습니다. (어디서 부하가 있었는지 확인이 어렵습니다.)

 

 

fargate 보다는 worker node 사용이 안정적 일 것 같습니다..

 

 

다양한 래퍼런스도 많고......

 

Personal Health Dashboard 알림 받아보기 

참고한 블로그 : https://dev.classmethod.jp/articles/notice-personal-health-dashboard-to-slack/ 

**채널 가드 레일 정책 : https://docs.aws.amazon.com/chatbot/latest/adminguide/security_iam_service-with-iam-id-based-policies.html 

https://docs.aws.amazon.com/chatbot/latest/adminguide/security-iam.html

 

Identity and Access Management for AWS Chatbot - AWS Chatbot

AWS Chatbot is a global service that requires access to all AWS Regions. If there is a policy in place that prevents access to services in certain Regions, you must change the policy to allow global AWS Chatbot access.

docs.aws.amazon.com

 

참고한 블로그에서 채널 가드레일 권한, 비용 확인을 추적하기 위해 태그 설정을 했습니다. (나중에 비용 할당 태그 설정)

 

 

테스트 결과 

추가 검토 사항  

 1. 모든 리전 적용 ? 

 

 

'AWS' 카테고리의 다른 글

aws cli (v1) pip 설치 실패  (1) 2023.08.05

면접을 본 곳에서 대량 발송 처리를 위한 Messaging System 아키텍쳐 구성도를 과제로 요청을 해서 만들어 봤습니다. 

과거에 msp 업무를 진행하면서 이런 서비스를 구성 해본적이 경험이 없어 많이 고민을 했습니다. 

 

주로 했던 고민에 첫번째는 다양한 메시지 서비스 (RabbitMQ, Apache Kafka, SQS) 들이 있는데 어떤 서비스를 사용 할 것인가 ?

두번째는 사용을 해본적이 없어 해당 구성도를 그려도 되는가? 를 가장 고민을 했습니다. 

 

요청 사항

- 1,000 TPS 처리 가능하여야 함
- 발송 전에 회원 검증, 과금, 템플릿 검수 등 내부 로직이 수반 되어야 함
- 발송 이후 고객에게 성공 유무를 전송하여야 함.
 
결과물 

* SQS FIFO를  높은 처리량 모드 변경이 필요합니다.

* FIFO 대기열 값으로 오토 스케일링 설정합니다. 

* 구성도에서는 FIFO 대기열을 1개만 존재하지만 SNS 와 SQS를 같이 사용하여 팬 아웃 구조로 사용하여 서비스 속도를 증가할 수 있을 것 같습니다.

* 성공 여부를 어떤 방식으로 전송하는 기준이 정확지 않아서 SNS 서비스를 사용하였습니다.

 

후기

 

1. 조금 더 다양한 서비스 workshop, awsskillbuilder 을 진행하면서 구성을 이해하는 노력이 필요하다.

2. 다양한 서비스가 합쳐지면 요구사항에 "1,000 TPS 처리" 가능 할까? 어떻게 측정해야되는가?? 

'etc.' 카테고리의 다른 글

[DNS]네이버 클라우드 스터디  (0) 2023.04.03
[git] 특정 브랜치 지정해서 clone  (0) 2023.03.14
AWS SAA-C03 합격 후기  (0) 2023.01.27
[참석 후기] AWSKRUG 보안 소모임 온라인 밋업  (0) 2022.12.21
chat.openai 후기  (0) 2022.12.06

+ Recent posts