Quiz

1.일년 쀑 μ΅œλŒ€ 세일 기간인 λΈ”λž™ 프라이데이λ₯Ό μ€€λΉ„ν•˜κ³  μžˆλŠ” μ „μž μƒκ±°λž˜ μ›Ήμ‚¬μ΄νŠΈκ°€ μžˆμŠ΅λ‹ˆλ‹€. νŠΈλž˜ν”½μ€ 100λ°°κ°€ 증가할 κ²ƒμœΌλ‘œ μ˜ˆμƒλ©λ‹ˆλ‹€. 이 μ›Ήμ‚¬μ΄νŠΈλŠ” 이미 SQS ν‘œμ€€ λŒ€κΈ°μ—΄μ„ μ‚¬μš©ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. SQS λŒ€κΈ°μ—΄μ€ μ–΄λ–»κ²Œ μ€€λΉ„ν•΄μ•Ό ν• κΉŒμš”?

  • AWS 지원 센터에 연락해 SQS ν‘œμ€€ λŒ€κΈ°μ—΄μ„ 쀀비해쀄 것을 μš”μ²­
  • SQS λŒ€κΈ°μ—΄μ— μ˜€ν†  μŠ€μΌ€μΌλ§ ν™œμ„±ν™”
  • SQS λŒ€κΈ°μ—΄ μš©λŸ‰ 늘리기
  • SQS이 μžλ™μœΌλ‘œ μŠ€μΌ€μΌλ§ν•΄μ€„ κ²ƒμ΄λ―€λ‘œ 아무 μ‘°μΉ˜λ„ μ·¨ν•˜μ§€ μ•ŠμŒ


  1. SQS λ©”μ‹œμ§€κ°€ SQS λŒ€κΈ°μ—΄μ— κ²Œμ‹œλœ 지 5뢄이 μ§€λ‚œ ν›„μ—λ§Œ μ†ŒλΉ„μžλ“€μ— μ˜ν•΄ μ²˜λ¦¬λ˜λ„λ‘ ν•˜κΈ° μœ„ν•΄μ„œλŠ” μ–΄λ–»κ²Œ ν•΄μ•Όν• κΉŒμš”?
  • DelaySeconds νŒŒλΌλ―Έν„° 늘리기
  • κ°€μ‹œμ„± μ‹œκ°„μ΄ˆκ³Ό λ³€κ²½
  • λ‘± 풀링 ν™œμ„±ν™”
  • Amazon SQS Extended Client μ‚¬μš©

SQS λŒ€κΈ°μ—΄ 지연은 Amazon SQSκ°€ μ†ŒλΉ„μžλ“€μ—κ²Œ μƒˆλ‘œμš΄ SQS λ©”μ‹œμ§€κ°€ 보이지 μ•Šλ„λ‘ μœ μ§€ν•˜λŠ” κΈ°κ°„μž…λ‹ˆλ‹€. SQSλŒ€κΈ°μ—΄ 지연은 λŒ€κΈ°μ—΄λ‘œ 처음 μΆ”κ°€λœ λ©”μ‹œμ§€λ₯Ό 감좀 μ²˜λ¦¬ν•©λ‹ˆλ‹€. (κΈ°λ³Έ 0λΆ„, μ΅œλŒ€ 15λΆ„)


  1. μ†ŒλΉ„μžλ“€μ΄ ν•œ λ²ˆμ— 10개의 λ©”μ‹œμ§€λ₯Ό ν΄λ§ν•˜κ³  1λΆ„ λ‚΄λ‘œ μ΄μ—λŒ€ν•œ 처리λ₯Ό μ™„λ£Œν•˜λŠ” SQSλŒ€κΈ°μ—΄μ΄ μžˆμŠ΅λ‹ˆλ‹€. μž μ‹œ ν›„, μ—¬λŸ¬λΆ„μ€ λ™μΌν•œ SQSλ©”μ‹œμ§€λ₯Ό λ‹€λ₯Έ μ†ŒλΉ„μžλ“€λ„ μˆ˜μ‹ ν•˜μ—¬ λ©”μ‹œμ§€κ°€ ν•œ λ²ˆμ΄μƒ μ²˜λ¦¬λ˜μ—ˆμŒμ„ μ•Œκ²Œλ˜μ—ˆμŠ΅λ‹ˆλ‹€. 이 문제λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄μ„œλŠ” μ–΄λ–»κ²Œ ν•΄μ•Ό ν• κΉŒμš”?
  • λ‘± 풀링 ν™œμ„±ν™”
  • λ©”μ‹œμ§€ 생성 μ‹œ λ©”μ‹œμ§€μ— DelaySeconds νŒŒλΌλ―Έν„° μΆ”κ°€
  • κ°€μ‹œμ„± μ‹œκ°„ 초과 늘리기
  • κ°€μ‹œμ„± μ‹œκ°„ 초과 쀄이기

SQS κ°€μ‹œμ„± μ‹œκ°„μ΄ˆκ³ΌλŠ” Amazon SQSκ°€ λ‹€λ₯Έ μ†ŒλΉ„μžλ“€μ˜ λ©”μ‹œμ§€ μž¬μˆ˜μ‹  및 재처리λ₯Ό λ§‰λŠ”κΈ°κ°„μž…λ‹ˆλ‹€.

κ°€μ‹œμ„± μ‹œκ°„μ΄ˆκ³ΌλŠ” λŒ€κΈ°μ—΄μ—μ„œ μ†Œλͺ¨λœ λ©”μ‹œμ§€λ§Œμ„ 감좀 μ²˜λ¦¬ν•©λ‹ˆλ‹€.

κ°€μ‹œμ„± μ‹œκ°„μ΄ˆκ³Όλ₯Ό μ¦κ°€μ‹œν‚€λ©΄, μ†ŒλΉ„μžλ“€μ΄ 더 였랜 μ‹œκ°„ λ™μ•ˆ λ©”μ‹œμ§€λ₯Ό μ²˜λ¦¬ν•  수 있게 ν•΄μ£Όλ©°, λ©”μ‹œμ§€μ˜ 쀑볡 읽기λ₯Ό λ°©μ§€ν•©λ‹ˆλ‹€. (κΈ°λ³Έ: 30초, μ΅œμ†Œ:0초, μ΅œλŒ€ 12μ‹œκ°„)


  1. SQS ν‘œμ€€λŒ€κΈ°μ—΄μ—μ„œ λ©”μ‹œμ§€λ₯Ό μ²˜λ¦¬ν•˜λ˜, μ˜€ν†  μŠ€μΌ€μΌλ§ 그룹의 관리 ν•˜μ— μžˆλŠ” EC2 μΈμŠ€ν„΄μŠ€ ν”Œλ¦Ώ(μ†ŒλΉ„μž)이 μžˆμŠ΅λ‹ˆλ‹€. 졜근 λ§Žμ€ λ©”μ‹œμ§€λ“€μ΄ 두 번 μ²˜λ¦¬λ˜μ—ˆλ‹€λŠ” 점을 λ°œκ²¬ν•΄ 쑰사λ₯Ό ν•΄λ³Έ κ²°κ³Ό, 이 λ©”μ‹œμ§€λ“€μ„ μ„±κ³΅μ μœΌλ‘œ μ²˜λ¦¬ν•  수 μ—†μŒμ„ μ•Œκ²Œ λ˜μ—ˆμŠ΅λ‹ˆλ‹€. μ΄λŸ¬ν•œ λ©”μ‹œμ§€ μ‹€νŒ¨μ˜ 원인은 μ–΄λ–»κ²Œ ν•΄κ²°(디버깅)ν•΄μ•Ό ν• κΉŒμš”?
  • SQS ν‘œμ€€λŒ€κΈ°μ—΄
  • SQS λ°λ“œ λ ˆν„° λŒ€κΈ°μ—΄ (DLQ)
  • SQS λŒ€κΈ°μ—΄ 지연
  • SQS FIFO λŒ€κΈ°μ—΄

Dead Letter Queue λŠ” λ‹€λ₯Έ SQSλŒ€κΈ°μ—΄(μ†ŒμŠ€ λŒ€κΈ°μ—΄)듀이 처리(μ†ŒλΉ„)될 수 μ—†λŠ” λ©”μ‹œμ§€λ₯Ό 보낼 수 μžˆλŠ” κ³³μž…λ‹ˆλ‹€.

이λ₯Ό 톡해 λ¬Έμ œκ°€ λ˜λŠ” λ©”μ‹œμ§€λ“€μ„ λΆ„λ¦¬ν•˜μ—¬ μ²˜λ¦¬κ°€ μ‹€νŒ¨ν•œ 이유λ₯Ό 디버깅할 수 μžˆμœΌλ―€λ‘œ, 디버깅에 μœ μš©ν•©λ‹ˆλ‹€.


  1. λ‹€μŒ 쀑 μ–΄λ–€ SQSλŒ€κΈ°μ—΄ μœ ν˜•μ„ μ‚¬μš©ν•΄μ•Ό λ©”μ‹œμ§€κ°€ 순차적으둜, 단 ν•œλ²ˆλ§Œ μ²˜λ¦¬λ κΉŒμš”?
  • SQS ν‘œμ€€λŒ€κΈ°μ—΄
  • SQS λ°λ“œ λ ˆν„° λŒ€κΈ°μ—΄ (DLQ)
  • SQS λŒ€κΈ°μ—΄ 지연
  • SQS FIFO λŒ€κΈ°μ—΄

SQS FIFO(First-In-First-Out) λŒ€κΈ°μ—΄μ€ SQS ν‘œμ€€ λŒ€κΈ°μ—΄μ˜ λͺ¨λ“  κΈ°λŠ₯을 가지고 있으며, λ‹€μŒκ³Ό 같은 두 κΈ°λŠ₯이 μΆ”κ°€λ©λ‹ˆλ‹€. 첫 번째, μ–΄λ–€ λ©”μ‹œμ§€λ₯Ό 보내고 μˆ˜μ‹ ν–ˆλŠ”μ§€μ— λŒ€ν•œ μ˜€λ”κ°€ μ—„κ²©ν•˜κ²Œ λ³΄μ‘΄λ©λ‹ˆλ‹€. λ©”μ‹œμ§€λŠ” ν•œ 번만 μ „μ†‘λ˜λ©°, μ†ŒλΉ„μžκ°€ ν•΄λ‹Ή λ©”μ‹œμ§€λ₯Ό μ²˜λ¦¬ν•˜κ³  μ‚­μ œν•  λ•ŒκΉŒμ§€ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 두 번째, 볡제된 λ©”μ‹œμ§€λŠ” λŒ€κΈ°μ—΄μ— λ“€μ–΄μ˜€μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.


  1. 3개의 μ„œλ‘œ λ‹€λ₯Έ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μœΌλ‘œ λ™μΌν•œ λ©”μ‹œμ§€λ₯Ό 보내렀 ν•©λ‹ˆλ‹€. 3개의 μ• ν”Œλ¦¬μΌ€μ΄μ…˜ λͺ¨λ‘ SQSλ₯Ό μ‚¬μš©ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. 이λ₯Ό μœ„ν•΄ μ–΄λ–€ 접근법을 μ„ νƒν•˜λŠ” 것이 κ°€μž₯ μ μ ˆν• κΉŒμš”?
  • SQS 볡제 κΈ°λŠ₯을 μ‚¬μš©
  • SNS + SQS νŒ¬μ•„μ›ƒ νŒ¨ν„΄μ„ μ‚¬μš©
  • 3개의 SQS λŒ€κΈ°μ—΄μ— κ°œλ³„μ μœΌλ‘œ λ©”μ‹œμ§€ μ „μ†‘ν•˜κΈ°

ν”νžˆ μ‚¬μš©λ˜λŠ” νŒ¨ν„΄μœΌλ‘œ, 단 ν•˜λ‚˜μ˜ λ©”μ‹œμ§€λ₯Ό SNS 주제둜 μ „μ†‘ν•œ λ’€, λ‹€μˆ˜μ˜ SQS λŒ€κΈ°μ—΄λ‘œ β€˜νŒ¬ μ•„μ›ƒβ€™ν•©λ‹ˆλ‹€. 이 λ°©μ‹μ—λŠ” λ‹€μŒμ˜ κΈ°λŠ₯이 ν¬ν•¨λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€: μ™„μ „νžˆ λΆ„λ¦¬λ˜μ–΄ 있고, 데이터 손싀이 μ—†μœΌλ©°, ν–₯ν›„ 더 λ§Žμ€ SQS λŒ€κΈ°μ—΄(더 λ§Žμ€ μ• ν”Œλ¦¬μΌ€μ΄μ…˜)을 μΆ”κ°€ν•  수 μžˆμŠ΅λ‹ˆλ‹€.


  1. ν•œ Kinesis Data Stream에 6개의 μƒ€λ“œκ°€ ν”„λ‘œλΉ„μ €λ‹λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. 이 데이터 μŠ€νŠΈλ¦Όμ€ 보톡 5MB/s 의 μ†λ„λ‘œ 데이터λ₯Ό μˆ˜μ‹ ν•˜λ©°, 8MB/s의 μ†λ„λ‘œ 데이터λ₯Ό μ „μ†‘ν•©λ‹ˆλ‹€. μ΄λ”°κΈˆ νŠΈλž˜ν”½μ΄ 2λ°°κΉŒμ§€ μ¦κ°€ν•˜μ—¬ ProvisionedThroughputExceededException μ˜ˆμ™Έμ²˜λ¦¬κ°€ λ°œμƒν•©λ‹ˆλ‹€. 이 문제λ₯Ό ν•΄κ²°ν•˜λ €λ©΄ μ–΄λ–»κ²Œ ν•΄μ•Ό ν• κΉŒμš”?
  • 더 λ§Žμ€ μƒ€λ“œ μΆ”κ°€
  • Kinesis 볡제 ν™œμ„±ν™”
  • SQSλ₯Ό Kinesis λ²„νΌλ‘œ ν™œμš©

Knesis Data Stream의 μš©λŸ‰ μ œν•œμ€ 데이터 슀트림 내에 μžˆλŠ” μƒ€λ“œμ˜ μˆ˜μ— μ˜ν•΄ κ²°μ •λ©λ‹ˆλ‹€. μ΄λŸ¬ν•œ μ œν•œμ€ 데이터 μ²˜λ¦¬λŸ‰, ν˜Ήμ€ 읽기 데이터 ν˜ΈμΆœμ— μ˜ν•΄ 초과될 수 μžˆμŠ΅λ‹ˆλ‹€. 각 μƒ€λ“œλŠ” 1MB/초 만큼의 λ“€μ–΄μ˜€λŠ” 데이터와 2MB/초 만큼의 λ‚˜κ°€λŠ” 데이터λ₯Ό ν—ˆμš©ν•©λ‹ˆλ‹€. μΆ©λΆ„ν•œ μš©λŸ‰μ„ μ œκ³΅ν•˜λ €λ©΄ 데이터 슀트림의 μƒ€λ“œ 수λ₯Ό μ¦κ°€μ‹œμΌœμ•Ό ν•©λ‹ˆλ‹€.


  1. ν•œ μ›Ήμ‚¬μ΄νŠΈ λ‚΄μ—μ„œ μ‚¬μš©μžλ“€μ΄ ν΄λ¦­ν•˜λŠ” μˆœμ„œ, μ‚¬μš©μžλ“€μ΄ λ³΄λ‚΄λŠ” μ‹œκ°„ 및 탐색이 μ–΄λ””μ—μ„œ μ‹œμž‘λ˜κ³  μ–΄λ–»κ²Œ μ’…λ£Œλ˜λŠ”μ§€ λ“±μ˜ 클릭슀트림 데이터λ₯Ό λΆ„μ„ν•˜κ³ μž ν•©λ‹ˆλ‹€. Amazon Kinesis λ₯Ό μ‚¬μš©ν•˜κΈ°λ‘œ ν–ˆκ³ , μ›Ήμ‚¬μ΄νŠΈκ°€ μ΄λŸ¬ν•œ 클릭슀트림 데이터λ₯Ό Kinesis Data Stream으둜 μ „μ†‘ν•˜λ„λ‘ κ΅¬μ„±ν•œ μƒνƒœμž…λ‹ˆλ‹€. Kinesis Data Stream으둜 μ „μ†‘λœ 데이터λ₯Ό ν™•μΈν•˜λ˜ 쀑, 데이터가 μˆœμ„œλŒ€λ‘œ μ •λ ¬λ˜μ–΄ μžˆμ§€ μ•ŠμœΌλ©°, ν•œ κ°œλ³„ μ‚¬μš©μžλ‘œλΆ€ν„° 온 데이터가 μ—¬λŸ¬ μƒ€λ“œμ— λΆ„μ‚°λ˜μ–΄ μžˆλ‹€λŠ” 것을 μ•Œκ²Œλ˜μ—ˆμŠ΅λ‹ˆλ‹€. 이 경우, μ–΄λ–»κ²Œ 문제λ₯Ό ν•΄κ²°ν•΄μ•Ό ν• κΉŒμš”?
  • μƒ€λ“œκ°€ λ„ˆλ¬΄ λ§ŽμœΌλ―€λ‘œ 였직 1개의 μƒ€λ“œλ§Œμ„ μ‚¬μš©ν•΄μ•Ό 함
  • λ‹€μˆ˜μ˜ μ†ŒλΉ„μžλ₯Ό μ‚¬μš©ν•΄μ„œλŠ” μ•ˆλ˜λ―€λ‘œ, 였직 ν•˜λ‚˜λ§Œμ„ μ‚¬μš©ν•˜λ©΄ 데이터가 μž¬μ •λ ¬λ  것
  • Kinesis둜 λ³΄λ‚΄μ§€λŠ” 각 λ ˆμ½”λ“œμ— μ‚¬μš©μžμ˜ 신원을 λ‚˜νƒ€λ‚΄λŠ” νŒŒν‹°μ…˜ ν‚€λ₯Ό μΆ”κ°€ν•΄μ•Ό 함

Kinesis Data Stream은 각 데이터 λ ˆμ½”λ“œμ— μ—°κ²°λœ νŒŒν‹°μ…˜ ν‚€λ₯Ό μ‚¬μš©ν•΄ 주어진 데이터 λ ˆμ½”λ“œκ°€ μ–΄λŠ μƒ€λ“œμ— μ†ν•˜λŠ”μ§€ νŒλ‹¨ν•©λ‹ˆλ‹€. 각 μ‚¬μš©μžμ˜ 신원을 νŒŒν‹°μ…˜ ν‚€λ‘œ μ‚¬μš©ν•  경우, 각 μœ μ €μ— λŒ€ν•œ 데이터가 μ •λ ¬λ˜μ–΄ λ™μΌν•œ μƒ€λ“œλ‘œ 보낼 수 μžˆμŠ΅λ‹ˆλ‹€.


  1. 데이터 μŠ€νŠΈλ¦Όμ— λŒ€ν•œ μ‹€μ‹œκ°„ 뢄석을 μˆ˜ν–‰ν•˜λ €λŠ” 경우, λ‹€μŒ AWS μ„œλΉ„μŠ€μ€‘ μ–΄λŠκ²ƒμ΄ κ°€μž₯ μ μ ˆν• κΉŒμš”?
  • Amazon SQS
  • Amazon SNS
  • Amazon Kinesis Data Analytics
  • Amazon Kinesis Data Firehose

Kinesis Data Analyticsλ₯Ό μ‚¬μš©ν•˜λ €λ©΄ Kinesis Data Streamsλ₯Ό 기반 데이터 μ†ŒμŠ€λ‘œ μ‚¬μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€.


  1. λŒ€λŸ‰μ˜ μ‹€μ‹œκ°„ 데이터λ₯Ό μƒμ„±ν•˜λŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μ‹€ν–‰ 쀑이며, 이 데이터λ₯Ό S3와 RedShift둜 λ‘œλ”©ν•˜λ € ν•©λ‹ˆλ‹€. λ˜ν•œ 이 데이터듀은 λͺ©μ μ§€μ— λ„λ‹¬ν•˜κΈ° 전에 λ³€ν™˜λ˜μ–΄μ•Ό ν•©λ‹ˆλ‹€. 이λ₯Ό μœ„ν•΄, 선택할 수 μžˆλŠ” κ°€μž₯ μ μ ˆν•œ μ•„ν‚€ν…μ²˜λŠ” λ¬΄μ—‡μΈκ°€μš”?
  • SQS + AWS Lambda
  • SNS + HTTP Endpoint
  • Kinesis Data Streams + Kinesis Data Firehose

μ΄λŠ” μ‹€μ‹œκ°„ 데이터λ₯Ό S3와 Redshift둜 λ‘œλ”©ν•˜κΈ° μœ„ν•œ μ™„λ²½ν•œ 기법 μ‘°ν•©μž…λ‹ˆλ‹€. Kinesis 데이터 νŒŒμ΄μ–΄ν˜ΈμŠ€λŠ” AWS Lambdaλ₯Ό μ‚¬μš©ν•˜λŠ” μ»€μŠ€ν…€ 데이터 λ³€ν™˜μ„ μ§€μ›ν•©λ‹ˆλ‹€.


  1. λ‹€μŒ 쀑 AWS SNSλ₯Ό μ§€μ›ν•˜μ§€ β€œμ•ŠλŠ”β€ κ΅¬λ…μžλ₯Ό κ³ λ₯΄μ„Έμš”.
  • Amazon Kinesis Data Streams
  • Amazon SQS
  • HTTP(S) Endpoint
  • AWS Lambda

ν˜„μž¬ Kinesis Data Firehose λŠ” μ§€μ›ν•˜μ§€λ§Œ, Kinesis Data Stream은 μ§€μ›λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.


  1. λ‹€μŒ 쀑 μ‚¬μš©μžλ“€μ—κ²Œ 이메일 μ•Œλ¦Όμ„ 보내렀 ν•  λ•Œ 도움이 λ˜λŠ” AWS μ„œλΉ„μŠ€λŠ” λ¬΄μ—‡μΈκ°€μš”?
  • AWS Lambdaλ₯Ό κ°–λŠ” Amazon SQS
  • Amazon SNS
  • Amazon Kinesis


  1. μ—¬λŸ¬ 마이크둜 μ„œλΉ„μŠ€ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μ˜¨ν”„λ ˆλ―ΈμŠ€λ‘œ 싀행쀑이며, 이듀은 MQTT ν”„λ‘œν† μ½œμ„ μ§€μ›ν•˜λŠ” λ©”μ‹œμ§€ 브둜컀λ₯Ό μ‚¬μš©ν•΄ ν†΅μ‹ ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μƒˆλ‘œ μ—”μ§€λ‹ˆμ–΄λ§ν•˜κ±°λ‚˜ μ½”λ“œλ₯Ό μˆ˜μ •ν•˜λŠ” μž‘μ—… 없이, 이 μ• ν”Œλ¦¬μΌ€μ΄μ…˜λ“€μ„ AWS둜 μ΄μ „μ‹œν‚€λ € ν•©λ‹ˆλ‹€. MQTT ν”„λ‘œν† μ½œμ„ μ§€μ›ν•˜λŠ” 관리 λ©”μ‹œμ§€ 브둜컀λ₯Ό ν™œμš©ν•˜κΈ° μœ„ν•΄μ„œλŠ” λ‹€μŒ 쀑 μ–΄λ–€ AWS μ„œλΉ„μŠ€λ₯Ό μ‚¬μš©ν•΄μ•Ό ν• κΉŒμš”?
  • Amazon SQS
  • Amazon SNS
  • Amazon Kinesis
  • Amazon MQ

Amazon MQλŠ” JMS, NMS와 같은 업계 ν‘œμ€€ APIλ₯Ό μ§€μ›ν•˜λ©° AMQP, STOMP, MQTT 및 WebSocket 등을 λΉ„λ‘―ν•œ λ©”μ‹œμ§• ν”„λ‘œν† μ½œμ„ μ§€μ›ν•©λ‹ˆλ‹€.

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