Contents

18. AWS Integration & Messaging

SQS, SNS & Kinesis

Application communication

Application communication ๋‘ ๊ฐ€์ง€ ํŒจํ„ด

  1. Synchronous communications (application to application)
    • Synchronous๋Š” ์š”์ฒญ๋Ÿ‰์ด ๊ธ‰์ฆํ•˜๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ฐ„ ์—ฌ๋Ÿฌ ๋ฌธ์ œ๋ฅผ ์œ ๋ฐœ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.
  2. Asynchronous / Event based (application to queue to application)

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์˜์กด๊ด€๊ณ„decouple๋ฅผ ๋‚ฎ์ถ”๋Š” ์‚ฌ๋ก€

์•„๋ž˜ ์„œ๋น„์Šค๋“ค์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฆ‰๊ฐ์ ์œผ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํ™•์žฅ๊ฐ€๋Šฅ ํ•˜๋‹ค.

  • SQS ์‚ฌ์šฉ : Queue ๋ชจ๋ธ
  • SNS ์‚ฌ์šฉ : pub/sub ๋ชจ๋ธ
  • Kinesis : ์‹ค์‹œ๊ฐ„ ์ŠคํŠธ๋ฆฌ๋ฐ ๋ชจ๋ธ

Amazon SQS

Amazon SQS - Standard Queue

  • AWS์—์„œ ๊ฐ€์žฅ ์˜ค๋ž˜๋œ ์„œ๋น„์Šค.
  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ decouplingํ•˜๊ธฐ ์œ„ํ•ด ์„œ๋น„์Šค๋ฅผ ๊ด€๋ฆฌ
  • ์ค‘๋ณต ๋ฉ”์„ธ์ง€๋ฅผ ๊ฐ–์„ ์ˆ˜ ์žˆ๋‹ค. -> ์ ์–ด๋„ ํ•œ๋ฒˆ์€ ์ „์†ก ๋œ๋‹ค.
  • Can have out of order messages (best effort ordering)

ํŠน์ง•

  • ํ์— ์ ์žฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ”์„ธ์ง€ ๋ฐ ์ฒ˜๋ฆฌ๋Ÿ‰์— ์ œํ•œ์ด ์—†๋‹ค unlimited throughput.
  • ๊ธฐ๋ณธ 4์ผ์—์„œ ์ตœ๋Œ€ 14์ผ๊นŒ์ง€ ํ์— ๋ฉ”์„ธ์ง€๋ฅผ ๋ณด์กดํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๋‚ฎ์€ ์ง€์—ฐ
  • ๋ฉ”์„ธ์ง€์˜ ํฌ๊ธฐ๋Š” 256KB๋กœ ์ œํ•œ

Produing Message

  • SDK์˜ SendMessage API๋ฅผ ํ†ตํ•ด SQS ๋ฉ”์„ธ์ง€๋ฅผ ์ƒ์‚ฐ
  • ๋ฉ”์„ธ์ง€๋Š” consumer๊ฐ€ ์‚ญ์ œํ•˜๊ธฐ ์ „๊นŒ์ง€ SQS์— ์œ ์ง€๋œ๋‹ค.
  • ๋ฉ”์„ธ์ง€ ๋ณด์กด๊ธฐ๊ฐ„ : ๊ธฐ๋ณธ 4 days ~ 14 days
example

์˜ˆ์‹œ) ์ฃผ๋ฌธ์ •๋ณด๋ฅผ ์ „์†กํ•œ๋‹ค.

  • Order Id
  • Customer Id
  • ๋‹ค๋ฅธ ์†์„ฑ ๊ฐ’๋“ค…

Consuming Message

  • consumers : ์šด์šฉ์ค‘์ธ EC2 ์ธ์Šคํ„ด์Šค, ์„œ๋ฒ„ ๋˜๋Š” AWS ๋žŒ๋‹ค ์„œ๋น„์Šค ๋“ฑ
  • Poll SQS for message : ๋งค 10์ดˆ๋งˆ๋‹ค ๋ฉ”์„ธ์ง€๋ฅผ ํด๋ง ํ•œ๋‹ค.
  • Process the message : ex) RDS ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋ฉ”์„ธ์ง€๋ฅผ ์ €์žฅ
  • DeleteMessage API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฒ˜๋ฆฌ๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด ๋ฉ”์„ธ์ง€๋ฅผ ์‚ญ์ œํ•ด์•ผ ํ•œ๋‹ค.

Multiple EC2 ์ธ์Šคํ„ด์Šค ์ปจ์Šˆ๋จธ

  • ์ปจ์Šˆ๋จธ๋“ค์€ ๋ฉ”์„ธ์ง€๋ฅผ ์ˆ˜์‹  ๋ฐ›๊ณ  ๋ณ‘๋ ฌ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ ์–ด๋„ ํ•œ๋ฒˆ์€ ์ „์†ก์ด ๋œ๋‹ค.
  • ์ปจ์Šˆ๋จธ๋Š” ์ฒ˜๋ฆฌ๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด ๋ฉ”์„ธ์ง€๋ฅผ ์‚ญ์ œํ•œ๋‹ค.
  • ์ปจ์Šˆ๋จธ๋ฅผ ๋ณ‘๋ ฌ๋กœ ํ™•์žฅํ•˜์—ฌ ํ”„๋กœ์„ธ์Šค ์ฒ˜๋ฆฌ๋Ÿ‰์„ ์ฆ๊ฐ€์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.

SQS with Auto Scaling Group (ASG)

SQS to decouple between application tiers

SQS ๋ณด์•ˆ

์•”ํ˜ธํ™”

  • HTTPS API๋ฅผ ํ†ตํ•œ ์ „์†ก์ค‘ ์•”ํ˜ธํ™”
  • KMS ํ‚ค๋ฅผ ํ†ตํ•œ At-rest ์•”ํ˜ธํ™”
  • ํด๋ผ์ด์–ธํŠธ ์›ํ•˜๋Š”๋Œ€๋กœ ์•”/๋ณตํ˜ธํ™”๋ฅผ ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ ๊ฐ€๋Šฅ

์ ‘๊ทผ์ œํ•œ

  • IAM ์ •์ฑ…์„