SQS vs SNS vs Kinesis

image-20221018011611803

SQS

  • μ†ŒλΉ„μžκ°€ SQS λŒ€κΈ°μ—΄μ—μ„œ λ©”μ‹œμ§€λ₯Ό μš”μ²­ν•΄μ„œ 데이터λ₯Ό κ°€μ Έμ˜€λŠ”(pull) λͺ¨λΈμ΄λ‹€.
  • 데이터λ₯Ό μ²˜λ¦¬ν•œ ν›„ μ†ŒλΉ„μžκ°€ λŒ€κΈ°μ—΄μ—μ„œ μ‚­μ œν•΄μ„œ λ‹€λ₯Έ μ†ŒλΉ„μžκ°€ 읽을 수 없도둝 ν•œλ‹€.
  • μž‘μ—…μžλ‚˜, μ†ŒλΉ„μž μˆ˜λŠ” μ œν•œμ΄ μ—†λ‹€.
    • μž‘μ—…μžμ™€ μ†ŒλΉ„μžκ°€ ν•¨κ»˜ μ†ŒλΉ„ν•˜κ³  λŒ€κΈ°μ—΄μ—μ„œ μ‚­μ œν•˜κΈ° λ•Œλ¬Έ
  • AWSμ—μ„œ κ΄€λ¦¬λ˜λŠ” μ„œλΉ„μŠ€μ΄λ―€λ‘œ μ²˜λ¦¬λŸ‰μ„ ν”„λ‘œλΉ„μ €λ‹ν•  ν•„μš”κ°€ μ—†κ³ , λΉ λ₯΄κ²Œ 수백 수천 개 λ©”μ‹œμ§€λ‘œ ν™•μž₯κ°€λŠ₯
  • μˆœμ„œλ₯Ό 보μž₯ν•˜λ €λ©΄ FIFO λŒ€κΈ°μ—΄ 즉, μ„ μž…μ„ μΆœ λŒ€κΈ°μ—΄μ„ ν™œμ„±ν™”ν•΄μ•Ό ν•œλ‹€.
  • 각 λ©”μ‹œμ§€μ—λŠ” 지연 κΈ°λŠ₯이 μžˆμ–΄ 30초 λ“± 일정 μ‹œκ°„ 뒀에 λŒ€κΈ°μ—΄μ— λ‚˜νƒ€λ‚˜λ„λ‘ ν•  수 μžˆλ‹€.

SNS

  • pub/sub λͺ¨λΈμ΄λ‹€. (Kafka λ§ˆμ°¬κ°€μ§€)
  • λ‹€μˆ˜μ˜ κ΅¬λ…μžμ—κ²Œ 데이터λ₯Ό pushν•˜λ©΄ λ©”μ‹œμ§€μ˜ 볡사본을 λ°›κ²Œ λœλ‹€.
  • SNS Topicλ³„λ‘œ 1,250만 λͺ…μ˜ κ΅¬λ…μžκΉŒμ§€ κ°€λŠ₯ν•˜λ©° 데이터가 ν•œ 번 SNS에 μ „μ†‘λ˜λ©΄ μ§€μ†λ˜μ§€ μ•ŠλŠ”λ‹€.
  • 즉, μ œλŒ€λ‘œ μ „λ‹¬λ˜μ§€ μ•ŠλŠ”λ‹€λ©΄ 데이터λ₯Ό μžƒμ„ κ°€λŠ₯성이 μžˆλ‹€.
  • pub/sub λͺ¨λΈμ€ μ΅œλŒ€ 10만 개의 Topic으둜 ν™•μž₯ κ°€λŠ₯ν•˜λ‹€.
  • μ—­μ‹œ μ²˜λ¦¬λŸ‰μ„ ν”„λ‘œλΉ„μ €λ‹ν•˜μ§€ μ•Šμ•„λ„ 되고, μ›ν•œλ‹€λ©΄ SQS와 κ²°ν•©ν•  수 μžˆλ‹€.
  • νŒ¬μ•„μ›ƒ 아킀텍쳐 νŒ¨ν„΄μ„ μ΄μš©ν•˜λ©΄ SNS와 SQSλ₯Ό κ²°ν•©ν•˜κ±°λ‚˜, SNS FIFO Topic을 SQS FIFO와 κ²°ν•©ν• μˆ˜ μžˆλ‹€.

Kinesis

  • 두 가지 μ†ŒλΉ„ λͺ¨λ“œκ°€ μžˆλ‹€.
  • μ†ŒλΉ„μžκ°€ Kinesisλ‘œλΆ€ν„° 데이터λ₯Ό κ°€μ Έμ˜€λŠ”(pull) ν‘œμ€€λͺ¨λ“œλŠ” μƒ€λ“œλ‹Ή 2MB/s λ₯Ό 지원
  • 반면 ν–₯μƒλœ νŒ¬μ•„μ›ƒ μœ ν˜• μ†ŒλΉ„μ˜ λ©”μ»€λ‹ˆμ¦˜μ—μ„œλŠ” Kinesisκ°€ μ†ŒλΉ„μžμ—κ²Œ 데이터λ₯Ό pushν•˜λ©° μƒ€λ“œ ν•˜λ‚˜μ— μ†ŒλΉ„μžλ‹Ή 2MB/s 의 속도가 λ‚˜μ˜΅λ‹ˆλ‹€.
    • μ²˜λ¦¬λŸ‰μ΄ 훨씬 λ†’μ„ν…Œλ‹ˆ Kinesis Data Streamμ—μ„œ 더 λ§Žμ€ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 읽기가 κ°€λŠ₯ν•˜λ‹€.
  • Kinesis 데이터 μŠ€νŠΈλ¦Όμ—μ„œλŠ” 데이터가 μ§€μ†λ˜κΈ° λ•Œλ¬Έμ— 데이터λ₯Ό λ‹€μ‹œ μž¬μƒν•  수 μžˆλ‹€.
  • λ”°λΌμ„œ μ‹€μ‹œκ°„ 빅데이터 뢄석, ETL 등에 ν™œμš©λœλ‹€.
  • μƒ€λ“œ λ ˆλ²¨μ—μ„œ μ •ν•  수 μžˆμ–΄ 미리 Kinesis 데이터 μŠ€νŠΈλ¦Όλ§ˆλ‹€ μ›ν•˜λŠ” μƒ€λ“œ 양을 지정해야 ν•œλ‹€.
  • μƒ€λ“œλ₯Ό 직접 ν™•μž₯ν•΄μ„œ 데이터가 μ–Έμ œ λ§Œλ£Œλ μ§€ μ •ν•œλ‹€.
  • 1μΌμ—μ„œ 365μΌκΉŒμ§€ 데이터λ₯Ό 보쑴할 수 μžˆλ‹€.
  • μš©λŸ‰ λͺ¨λ“œμ—λŠ” 2가지가 μžˆλ‹€.
    • ν”„λ‘œλΉ„μ €λ‹ μš©λŸ‰λͺ¨λ“œ
      • Kinesis 데이터 μŠ€νŠΈλ¦ΌμœΌλ‘œλΆ€ν„° μ›ν•˜λŠ” μƒ€λ“œ 양을 미리 지정
    • μ˜¨λ””λ§¨λ“œ μš©λŸ‰ λͺ¨λ“œ
      • μƒ€λ“œ μˆ˜κ°€ Kinesis데이터 μŠ€νŠΈλ¦Όμ— 따라 μžλ™μœΌλ‘œ μ‘°μ •

νƒœκ·Έ: , , ,

μΉ΄ν…Œκ³ λ¦¬:

μ—…λ°μ΄νŠΈ:

λŒ“κΈ€λ‚¨κΈ°κΈ°