AWS Solutions Architect | Design High Performing Architecture(1)

Jihun Kim·2022년 5월 22일
0

aws solutions architect

목록 보기
55/57
post-thumbnail

이 글은 Udemy의 AWS Certified Solutions Architect Associate Practice Exams를 공부하며 정리한 것입니다.

상황1

어떤 회사에서 자주 접근하는 데이터를 S3에 저장하려고 하는 데 이 때 객체의 삭제 또는 생성이 일어날 경우 S3 버킷이 SQS에 알림을 보내도록 설정하고 싶다. 이 알림은 개발 팀 또는 운영 팀에게 객체의 상태에 대해 알려주는 알림이다.

해결책

기능 분석

S3의 알림 기능

  • S3는 버킷에 특정 이벤트가 발생할 때 알림을 보내줄 수 있다.
  • 이 기능은 S3 > 속성 > 이벤트 알림 탭에서 설정할 수 있다.
  • S3 알림이 이벤트를 게시할 수 있는 대상은 아래와 같이 3가지가 있다.
    - SNS topic(주제)
    - SQS queue
    - lambda 함수

SNS의 특징

  • 만약 SNS 주제가 복제 되어 여러 엔드포인트(ex) SQS, HTTPS(S), 람다 함수 등)로 전달 되었을 경우 여러 엔드포인트에서 동시에 비동기 프로세싱이 일어나게 된다.

    - 즉, 특정 SNS 주제에 구독한 SQS가 SNS로부터 동시에 알림을 받아 해당 알림을 분석하고 작업을 수행하는 등의 일을 할 수 있는 것이다.

답 찾기

이제 해당 상황에 대한 답을 찾아 보면 다음과 같다.

우리는 fan out 패턴을 이용하기 위해 한 SNS 주제와 두 개의 SQS 큐를 생성할 수 있다. 이 때 두 SQS 큐는 각각 생성, 삭제에 관한 메시지를 받을 것이다. 만약 SNS가 이벤트 알림을 받으면 이 SNS는 각 구독자들에게 해당 메시지를 게시하게 된다.

주의해야 할 점은 S3 이벤트 알림 기능은 적어도 한 번 알림을 전송하며 한 번에 한 목적지로만 이동할 수 있다는 것이다. 즉, 여러 SNS 주제를 구독할 수는 없다.

따라서 이 상황에 대한 답을 정리하면,
먼저 SNS 주제를 생성하고 두 개의 큐가 해당 주제를 구독하도록 한다. 그 다음 S3가 SNS로 알림을 보낼 수 있도록 permission을 생성하고 S3가 해당 SNS 주제를 이용할 수 있도록 설정하면 된다.


[확인해야 할 점]

  • 만약 한 S3가 여러 SNS를 구독할 수 있도록 하는 내용의 보기가 나온다면 이 보기는 틀린 보기이다.
  • SQS는 SNS로부터 폴링을 할 수 없다. 단, 특정 서비스가 SQS로부터 폴링하는 것은 가능하다. SQS는 SNS 주제를 구독하는 것이다.
profile
쿄쿄

1개의 댓글

comment-user-thumbnail
2023년 8월 10일

Thank you for sharing your insightful article on designing high-performing AWS architecture! Your breakdown of key concepts and considerations is valuable for aspiring solution architects. In a similar vein, I recommend reading the article at https://www.cleveroad.com/blog/what-does-a-solutions-architect-do/, as it offers a comprehensive overview of solution architecture roles and responsibilities. This resource can further enhance your understanding of the multifaceted nature of the role and provide practical insights to excel in your journey as a solutions architect.

답글 달기