Ordering Data into Kinesis

Kinesis์™€ SQS FIFO์—์„œ ๋ฐ์ดํ„ฐ๊ฐ€ ์–ด๋–ป๊ฒŒ ์ •๋ ฌ๋˜๋Š”์ง€ ์•Œ์•„๋ณด์ž

๊ธฐ์ˆ ์ด ์„œ๋กœ ๋น„์Šทํ•ด๋ณด์ด๊ณ , ๊ธฐ๋Šฅ๋„ ๋น„์Šทํ•œ ํŽธ์ด์ง€๋งŒ, ์‹ค์ œ๋กœ๋Š” ์•„์ฃผ ๋‹ค๋ฅด๋‹ค.

image-20221018005646267

  • ๋„๋กœ์— ํŠธ๋Ÿญ์ด 100๋Œ€๊ฐ€ ์žˆ๊ณ , ๊ฐ๊ฐ ํŠธ๋ŸญID๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•œ๋‹ค.
  • ํŠธ๋Ÿญ1, ํŠธ๋Ÿญ2, โ€ฆ ํŠธ๋Ÿญ100 ๊นŒ์ง€ ๋„๋กœ์— ์žˆ์œผ๋ฉฐ GPS์œ„์น˜๋ฅผ ์ฃผ๊ธฐ์ ์œผ๋กœ AWS์— ๋ณด๋‚ธ๋‹ค.
  • ๊ฐ ํŠธ๋Ÿญ์˜ ์ˆœ์„œ๋Œ€๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์†Œ๋น„ํ•ด์„œ ํŠธ๋Ÿญ์˜ ์ด๋™์„ ์ •ํ™•ํ•˜๊ฒŒ ์ถ”์ ํ•˜๊ณ  ๊ทธ ๊ฒฝ๋กœ๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ํ™•์ธํ•˜๋ ค๊ณ  ํ•œ๋‹ค.
  • ์–ด๋–ป๊ฒŒ Kinesis๋กœ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์„๊นŒ?
  • ํŒŒํ‹ฐ์…˜ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค. (ํŒŒํ‹ฐ์…˜ ํ‚ค ๊ฐ’์€ ํŠธ๋ŸญID)
  • ํŠธ๋Ÿญ1์€ ํŠธ๋Ÿญ1์˜ ํŒŒํ‹ฐ์…˜ํ‚ค ์ „์†ก
  • ํŠธ๋Ÿญ2๋Š” ํŠธ๋Ÿญ2์˜ ํŒŒํ‹ฐ์…˜ํ‚ค ์ „์†ก
  • ๊ฐ™์€ ํŒŒํ‹ฐ์…˜ ํ‚ค๋ฅผ ์ง€์ •ํ•˜๋ฉด ํ•ด๋‹น ํ‚ค๊ฐ€ ์–ธ์ œ๋‚˜ ๋™์ผํ•œ ์ƒค๋“œ๋กœ ์ „๋‹ฌ๋œ๋‹ค. (Kafka์™€ ๋น„์Šทโ€ฆ???)

  • Kinesis ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆผ๊ณผ ์ƒค๋“œ ์„ธ ๊ฐœ๊ฐ€ 1, 2, 3๋ฒˆ ์žˆ๋‹ค.
  • ๊ฐ„๋‹จํ•˜๊ฒŒ ํŠธ๋Ÿญ 100๋Œ€ ๋Œ€์‹  5๋Œ€๋กœ ๊ฐ€์ •ํ•œ๋‹ค.
  • ์ด 5๋Œ€์˜ ํŠธ๋Ÿญ์ด ๋„๋กœ์— ์žˆ๊ณ  Kinesis์— ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•œ๋‹ค.
  • ํŠธ๋Ÿญ ID๋กœ ํŒŒํ‹ฐ์…˜ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
  • ํŠธ๋Ÿญ 1์ด GPS๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ผ ๋•Œ Kinesis๋กœ ํŠธ๋Ÿญ 1์˜ ํŒŒํ‹ฐ์…˜ํ‚ค๋ฅผ ๋ณด๋‚ด๊ฒŒ ๋˜๋ฉฐ, ์ด ๋•Œ Kinesis๋Š” ํŠธ๋Ÿญ 1์˜ ํŒŒํ‹ฐ์…˜ ํ‚ค๋ฅผ ํ•ด์‹œํ•œ๋‹ค. ๋‹ค์‹œ ๋งํ•ด ๊ณ„์‚ฐํ•œ๋‹ค.
  • ํŠธ๋Ÿญ 1์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์ƒค๋“œ 1๋ฒˆ์œผ๋กœ ๊ฐ€๊ฒŒ ๋œ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฐ์ดํ„ฐ๋Š” ์ƒค๋“œ 1๋ฒˆ์œผ๋กœ ์ด๋™ํ•œ๋‹ค.
  • ํŠธ๋Ÿญ 2๋„ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•œ๋‹ค. ํŠธ๋Ÿญ 2๋ฒˆ์˜ ํŒŒํ‹ฐ์…˜ ํ‚ค๋ฅผ ์ „์†กํ•œ๋‹ค. Kinesis๋Š” ํ•ด๋‹น ํŒŒํ‹ฐ์…˜ ํ‚ค๋ฅผ ํ™•์ธํ•˜๊ณ  ํ•ด์‹œํ•œ ํ›„ ํ•ด๋‹น ๊ฐ’์ด ์ƒค๋“œ 2๋ฒˆ์— ๋“ค์–ด๊ฐ€๋„๋ก ํ•œ๋‹ค.
  • ํŠธ๋Ÿญ 3๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๊ณ , ํŠธ๋Ÿญ 3์˜ ํŒŒํ‹ฐ์…˜ ํ‚ค๋ฅผ ์ „์†กํ•˜๋Š”๋ฐ Kinesis ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆผ์ด ์ด๋ฒˆ์—” ํŠธ๋Ÿญ 3์˜ ํ‚ค๊ฐ€ ์ƒค๋“œ 1๋ฒˆ์œผ๋กœ ์ด๋™ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ๊ฒฐ์ •ํ•œ๋‹ค.
    • ์ƒค๋“œ 3๋ฒˆ์œผ๋กœ ๊ฐˆ ํ•„์š” ์—†์ด ์ด ํŒŒํ‹ฐ์…˜ ํ‚ค๋Š” ์ƒค๋“œ 1๋กœ ์ด๋™ํ•˜๋ฉด ๋œ๋‹ค๊ณ  ํ•œ๋‹ค.
  • ํŠธ๋Ÿญ 4๋Š” ์ƒค๋“œ 3๋ฒˆ์œผ๋กœ ์ด๋™,
  • ํŠธ๋Ÿญ 5๋Š” ์ƒค๋“œ 2๋ฒˆ์œผ๋กœ ์ด๋™,
  • ์ด๋ ‡๊ฒŒ ์žฌ๋ถ„ํ• ํ•˜๋Š” ๊ฒƒ์„ ํŒŒํ‹ฐ์…˜์ด๋ผ๊ณ  ํ•˜๊ธฐ์— ํŒŒํ‹ฐ์…˜ ํ‚ค๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.
  • ๊ฐ ํŠธ๋Ÿญ์˜ ํŒŒํ‹ฐ์…˜ ํ‚ค๋Š” ๊ฑฐ๊ธฐ์— ๋”ฐ๋ฅธ ์ƒค๋“œ์— ์†ํ•œ๋‹ค.
  • ํŠธ๋Ÿญ 1์€ ๊ณ„์† ํŠธ๋Ÿญ1์ด๋ผ๋Š” ๋™์ผํ•œ ํŒŒํ‹ฐ์…˜ ํ‚ค๋ฅผ ์ „์†กํ•˜๋ฏ€๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ ์–ธ์ œ๋‚˜ ๊ฐ™์€ ์ƒค๋“œ๋กœ ์ด๋™ํ•œ๋‹ค.
  • ๊ทธ๋Ÿฌ๋ฏ€๋กœ ํŠธ๋Ÿญ 1์˜ ๋‹ค์Œ ๋ฐ์ดํ„ฐ ์ง€์ ์€ ์ƒค๋“œ 1๋กœ๊ฐ€๊ณ , ํŠธ๋Ÿญ3์˜ ๋‹ค์Œ ๋ฐ์ดํ„ฐ ์ง€์ ๋„ ์ƒค๋“œ 1๋ฒˆ์œผ๋กœ ๊ณ„์† ์ด๋™ํ•œ๋‹ค.

  • ๊ทธ๋Ÿฌ๋ฏ€๋กœ ํŠธ๋Ÿญ 100๋Œ€์™€ ์ƒค๋“œ 5๊ฐœ๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•˜๋ฉด ๊ฐ ์ƒค๋“œ๋Š” ํ‰๊ท ์ ์œผ๋กœ 20๋Œ€์˜ ํŠธ๋Ÿญ์„ ๊ฐ€์ง€๊ฒŒ ๋  ๊ฒƒ์ด๋‹ค.
  • ํ•˜์ง€๋งŒ ํŠธ๋Ÿญ๊ณผ ๊ฐ๊ฐ์˜ ์ƒค๋“œ ์‚ฌ์ด๊ฐ€ ์ง์ ‘์ ์œผ๋กœ ์—ฐ๊ฒฐ๋œ ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค.
  • Kinesis๊ฐ€ ํŒŒํ‹ฐ์…˜ ํ‚ค๋ฅผ ํ•ด์‹œํ•ด์„œ ์–ด๋Š ์ƒค๋“œ๋กœ ๋ณด๋‚ผ์ง€ ๊ฒฐ์ •ํ•œ๋‹ค.
  • ๋‹ค์‹œ๋งํ•ด, ์•ˆ์ •๋œ ํŒŒํ‹ฐ์…˜ ํ‚ค๋ฅผ ์–ป์œผ๋ฉด ๋ฐ”๋กœ ํŠธ๋Ÿญ์ด ๊ทธ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ™์€ ์ƒค๋“œ๋กœ ์ „๋‹ฌํ•˜๊ณ , ๊ทธ๋Ÿฌ๋ฉด ์ƒค๋“œ ๋ ˆ๋ฒจ์—์„œ ๊ฐ ํŠธ๋Ÿญ์˜ ์ˆœ์„œ์— ๋”ฐ๋ฅธ ๋ฐ์ดํ„ฐ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

Ordering data into SQS

SQS ํ‘œ์ค€๋ฐฉ์‹์—๋Š” ์ˆœ์„œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ SQS FIFO ๋ผ๋Š” ์„ ์ž…์„ ์ถœ ๋ฐฉ์‹์ด ์žˆ์Šต๋‹ˆ๋‹ค.

image-20221018010448055

  • ์ด SQS FIFIO์˜ ๊ทธ๋ฃน ID๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด ๋ชจ๋“  ๋ฉ”์‹œ์ง€๊ฐ€ ์†Œ๋น„๋˜๋Š” ๋ฐฉ์‹์€ ๋ณด๋‚ด์ง„ ์ˆœ์„œ์— ๋”ฐ๋ฅด๋ฉฐ ์†Œ๋น„์ž๋Š” ํ•˜๋‚˜๋งŒ ์กด์žฌํ•œ๋‹ค.
  • ์œ„์˜ ๊ทธ๋ฆผ์„ ๋ณด๋ฉด ์˜ต์…˜์ด ๋‹ค์–‘ํ•œ๋ฐ, SQS FIFO ๋Œ€๊ธฐ์—ด์— ์ „์†ก๋˜๋Š” ์ค‘์ด๋‹ค.
  • ๊ทธ๋Ÿฌ๋ฉด ์ „์†ก๋˜๋Š” ์ˆœ์„œ๋Œ€๋กœ ์†Œ๋น„์ž๊ฐ€ ์ˆ˜์‹ ๋ฐ›์„ ๊ฒƒ์ด๋‹ค. ๋ณด๋‹ค์‹œํ”ผ ์†Œ๋น„์ž๋Š” ํ•˜๋‚˜์ด๊ธฐ ๋•Œ๋ฌธ์— ๋‘ ๋ฐฐ์น˜์˜ ๋ฉ”์‹œ์ง€๋ฅผ ์†Œ๋น„ํ•œ
  • ๋”ฐ๋ผ์„œ ์„ ์ž…์„ ์ถœ ๋ฐฉ์‹์œผ๋กœ๋Š” ํŒ๋‹จํ•˜๊ธฐ๊ฐ€ ์‰ฝ๋‹ค. ์†Œ๋น„์ž๋„ ํ•˜๋‚˜๋งŒ ๊ฐ€์งˆ์ˆ˜ ์žˆ๋‹ค.
  • ํŠธ๋Ÿญ์ด ์žˆ๋‹ค๋ฉด, ๋ชจ๋“  ํŠธ๋Ÿญ์ด FIFO ๋Œ€๊ธฐ์—ด๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๋”๋ผ๋„ ์†Œ๋น„์ž๋Š” ํ•˜๋‚˜๋ฟ์ด๋‹ค.

  • ๋งŒ์•ฝ ์†Œ๋น„์ž ์ˆซ์ž๋ฅผ ์Šค์ผ€์ผ๋งํ•˜๊ณ  ์„œ๋กœ ์—ฐ๊ด€๋œ ๋ฉ”์‹œ์ง€๋ฅผ ๊ทธ๋ฃนํ™”ํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ๊ทธ๋ฃนID๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
  • Kinesis ์˜ ํŒŒํ‹ฐ์…˜ํ‚ค์™€ ๊ฐœ๋…์ด ๋น„์Šทํ•˜๋‹ค.
  • ๊ทธ๋ฃน ID๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด FIFO ๋Œ€๊ธฐ์—ด์€ FIFO ๋‚ด๋ถ€์— ๋‘ ๊ฐœ ๊ทธ๋ฃน์ด ์ƒ๊ธฐ๊ณ , ์ •์˜ํ•œ ๊ทธ๋ฃน๋งˆ๋‹ค ๊ฐ๊ฐ ์†Œ๋น„์ž๋Š” ๊ฐ€์งˆ ์ˆ˜ ์žˆ๊ฒŒ๋œ๋‹ค.
  • ๊ทธ๋ฃนID๊ฐ€ ๋งŽ์•„์งˆ์ˆ˜๋ก ์†Œ๋น„์ž๋„ ๋งŽ์•„์ง„๋‹ค.

Kinesis vs SQS ordering

Kinesis์™€ SQS์˜ ์ฐจ์ด์ ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž

  • ํŠธ๋Ÿญ 100๋Œ€๊ฐ€ ์žˆ๊ณ , Kinesis ์ƒค๋“œ๊ฐ€ 5๊ฐœ, SQS FIFO ๋Œ€๊ธฐ์—ด์ด 1๊ฐœ๋ผ๋ฉด,
  • Kinesis Data Streams
    • Kinesis ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆผ์—์„œ ํ‰๊ท ์ ์œผ๋กœ ๊ฐ€์ง€๋Š” ๊ฐ’์€ ์ƒค๋“œ๋‹น ํŠธ๋Ÿญ 20๋Œ€๊ฐ€ ๋ ๊ฒƒ์ด๋‹ค.
    • ํ•ด์‹œ ๊ธฐ๋Šฅ ๋•๋ถ„์— ๊ฐ ํŠธ๋Ÿญ์€ ํ•˜๋‚˜์˜ ์ƒค๋“œ์— ์ง€์ •๋˜๊ณ  ํ•ด๋‹น ์ƒค๋“œ์— ๊ณ„์† ๋จธ๋ฌผ๊ฒƒ์ด๋‹ค.
    • ๊ทธ๋ฆฌ๊ณ  ํŠธ๋Ÿญ ๋ฐ์ดํ„ฐ๋Š” ๊ฐ ์ƒค๋“œ์— ์ˆœ์„œ๋Œ€๋กœ ์ •๋ ฌ๋œ๋‹ค.
    • ํ•˜์ง€๋งŒ ๋™์‹œ์— ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ์†Œ๋น„์ž ๊ฐœ์ˆ˜๋Š” 5๊ฐœ๋ฟ์ด๋‹ค.
    • ์ƒค๋“œ๊ฐ€ 5๊ฐœ์ด๊ณ , ์ƒค๋“œ๋งˆ๋‹ค ํ•˜๋‚˜์˜ ์†Œ๋น„์ž๊ฐ€ ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
    • Kinesis ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆผ์€ ์ƒค๋“œ๊ฐ€ 5๊ฐœ์ธ ๊ฒฝ์šฐ์— ์ดˆ๋‹น ์ตœ๋Œ€ 5MB์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์‹ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ์ฒ˜๋ฆฌ๋Ÿ‰์ด ๊ฝค๋งŽ์€ํŽธ
  • SQS FIFO
    • SQS FIFO ๋Œ€๊ธฐ์—ด์€ ํ•˜๋‚˜๋ฟ์ด๋‹ค.
    • ์ƒค๋“œ ๋ฐ ํŒŒํ‹ฐ์…˜์„ ์ •์˜ํ•  ํ•„์š”์—†์ด FIFO ๋Œ€๊ธฐ์—ด์ด ํ•˜๋‚˜๋งŒ ์žˆ๋‹ค.
    • ํŠธ๋Ÿญ์ด 100๋Œ€ ์žˆ์œผ๋ฏ€๋กœ ๊ฐ ํŠธ๋Ÿญ ID์— ์ƒ์‘ํ•˜๋Š” ๊ทธ๋ฃน ID๋ฅผ 100๊ฐœ ์ƒ์„ฑํ•œ๋‹ค.
    • ์ฆ‰ ๊ทธ๋ฃนID๊ฐ€ 100๊ฐœ๊ฐ€ ๋˜๊ณ , ์†Œ๋น„์ž๋„ ์ตœ๋Œ€ 100๊ฐœ๊ฐ€ ๋  ์ˆ˜ ์žˆ๋‹ค.
    • ๊ฐ ์†Œ๋น„์ž๊ฐ€ ํŠน์ • ๊ทธ๋ฃนID์™€ ์—ฐ๊ฒฐ๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
    • ๊ทœ๋ชจ๋ฅผ ๋ณด๋ฉด SQS FIFO์—์„œ ์ตœ๋Œ€ ์ดˆ๋‹น 300, ํ˜น์€ ๋ฐฐ์น˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด 3,000๊ฐœ์˜ ๋ฉ”์‹œ์ง€๋ฅผ ๊ฐ€์ง„๋‹ค.

์ด๋ ‡๋“ฏ ์„œ๋กœ ๋‹ค๋ฅธ ์†Œ๋น„, ์ƒ์‚ฐ ๊ทธ๋ฆฌ๊ณ  ์ •๋ ฌ๋ชจ๋ธ์—์„œ ๊ธฐ์–ตํ•ด์•ผํ• ๊ฒƒ์€ ์ด๊ฒƒ์ด๋‹ค.

  • ๊ฒฝ์šฐ์— ๋”ฐ๋ผ ์ ์ ˆํ•œ ๋ชจ๋ธ์€ ๋‹ฌ๋ผ์ง€๋ฉฐ, SQS FIFO๋Š” ๊ทธ๋ฃนID ์ˆซ์ž์— ๋”ฐ๋ฅธ ๋™์  ์†Œ๋น„์ž ์ˆ˜๋ฅผ ์›ํ• ๋•Œ ์ข‹๋‹ค.
  • Kinesis ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆผ์„ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ๋Š” ์˜ˆ๋ฅผ ๋“ค์–ด ํŠธ๋Ÿญ 10,000๋Œ€๊ฐ€ ๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๊ณ  ๋˜ Kinesis Data Streams์— ์ƒค๋“œ๋‹น ๋ฐ์ดํ„ฐ๋ฅผ ์ •๋ ฌํ•  ๋•Œ์ž…๋‹ˆ๋‹ค.

๋Œ“๊ธ€๋‚จ๊ธฐ๊ธฐ