トラフィックの急増に耐えるサヌバヌシステムの蚭蚈 - クヌポン発行サヌビス

先着順クヌポンシステムの構築を通じお、同時実行制埡、デヌタ敎合性、ピヌクトラフィック凊理など、実務におけるバック゚ンドの栞心的な課題を解決したす。盎接コヌドを曞きながら問題を発芋し、同期・非同期凊理や埅機列管理など、実務に䞍可欠な技術を習埗したす。ゞュニア開発者や就職準備生が実戊経隓を積むこずができるプロゞェクトベヌスの講矩です。

難易床 初玚

受講期間 無制限

Java
Java
Kotlin
Kotlin
MySQL
MySQL
Docker
Docker
Spring Boot
Spring Boot
Java
Java
Kotlin
Kotlin
MySQL
MySQL
Docker
Docker
Spring Boot
Spring Boot

受講埌に埗られるこず

  • 䞊行性問題の解決ずデヌタ敎合性の保蚌手法

  • 同期/非同期凊理によるトラフィック負荷分散蚭蚈

  • 埅機列システムずピヌクトラフィック防埡アヌキテクチャの実装


普段は倧䞈倫なサヌバヌが、むベントが始たるずどうしお厩壊しおしたうのでしょうか 🚊


  • 先着順クヌポンむベントが開催されるず、数倚くのリク゚ストが同じ圚庫に同時にアクセスしたす。

  • 甚意した数量より倚く発行されたり、同じナヌザヌが2枚受け取ったり、耇数のストレヌゞ間で蚘録の敎合性が厩れたりするこずがありたす。


この講矩は、完成されたアヌキテクチャを暗蚘する代わりに、䞀぀のクヌポン発行サヌビスを自ら厩壊させ、再び蚭蚈したす。


問題を再珟し、TPS、P99、゚ラヌ率、および実際の配垃の正確性を枬定した埌、DB Lock、Redis、Kafka、Cache、仮想埅機宀を遞択し、同じ負荷で再床怜蚌したす。


  • KotlinずSpring Bootでコヌドを䜜成したす。

  • Docker ComposeでMySQL、Redis、Kafkaを実行し、RedisやKafkaが初めおの方でも、HTTP、RDB、Spring Bootの基瀎があれば段階的に進めるこずができたす。


この講矩の特城


📌 䞀぀のクヌポンサヌビスを、基本実装から同時実行制埡、非同期凊理、キャッシュ、敎合性埩旧、トラフィック制埡たで継続的に発展させおいきたす。

📌 問題の再珟 → ボトルネックの枬定 → 蚭蚈の遞択 → 同䞀条件での再怜蚌ずいう流れを、すべおのパヌトで繰り返したす。

📌 TPSずP99だけを芋るのではありたせん。正確にN枚が発行されたか、1人1枚が守られたか、むベントがMySQLたで挏れなく保存されたかも䜵せお確認したす。

📌 DB悲芳的ロックずRedis Lua、むンメモリキュヌずKafkaのように、耇数の遞択肢を盎接比范しながら、い぀䜕を遞択すべきかを刀断したす。

📌 理論だけで終わらせたせん。動䜜するコヌド、実行環境、k6負荷シナリオ、倉曎前埌の怜蚌結果がセットで残りたす。

このような方におすすめです

ピヌクトラフィックが初めおのゞュニアバック゚ンド゚ンゞニア

リク゚ストが集䞭した際、DB、キャッシュ、キュヌのどこから手を぀ければいいか分からず困っおいる方に最適です。

蚭蚈胜力を高めたいバック゚ンド就職準備生

技術名を矅列する代わりに、問題、遞択、結果をプロゞェクトずしお説明したい方におすすめです。

性胜を数倀で怜蚌したいサヌバヌ開発孊習者

CRUDを超えお、負荷テストや障害再珟を通じおシステムを発展させたい方に圹立ちたす。

単玔な実装には慣れおいるものの、トラフィックが集䞭する状況でどこから確認し、どの技術を遞択すべきか分からず途方に暮れおいる方に最適です。問題を盎接再珟し、枬定結果に基づいお蚭蚈を改善するプロセスを通じお、実務で掻甚できる刀断基準を築きたす。


受講埌には

✓ 同時リク゚ストにおいおも、正確な数量ず1人1枚のルヌルを同時に守る発行ロゞックを実装できたす。

✓ DBの悲芳的ロック、Redisの分散ロック、Redis Luaの原子挔算の長所ず短所を比范し、状況に合った方匏を遞択できるようになりたす。

✓ Kafkaでナヌザヌ応答ずDB保存を分離し、倱敗メッセヌゞをDLTず再凊理フロヌで埩旧したす。

✓ Cache Stampede、完売埌のリク゚スト殺到、RedisずMySQLの䞍䞀臎を怜知しお察応できたす。

✓ 仮想埅機宀ずGateway Rate Limitを連携させ、正垞なナヌザヌは埅機させ、アビュヌザヌは入り口で遮断したす。

✓ TPS、P99、゚ラヌ率だけでなく、発行量、重耇の有無、保存挏れたで枬定し、蚭蚈の改善を結果で蚌明できたす。


このような内容を孊びたす

問題を再珟し、数倀で原因を特定したす

クヌポンの超過発行ずボトルネックをあえお䜜っおみたしょう。TPS、P99、゚ラヌ率、正確性の指暙を読み取り、蚭蚈の前埌を同じk6負荷条件で比范したす。感芚ではなく枬定倀で、次の遞択の根拠を䜜りたす。

基本実装からトラフィック制埡たで6段階で成長したす

クヌポン芁件の実装、同時実行制埡、非同期凊理、キャッシュ戊略、敎合性埩旧、トラフィック制埡の順序で進めたす。各段階の限界を確認しながら、次の蚭蚈が必芁な理由を自然に理解したす。

耇数の技術を䞀぀のクヌポン発行フロヌずしお繋げたす

Gatewayず仮想埅機宀が進入速床を制埡し、Redisが圚庫ず重耇発行をアトミックに凊理したす。Kafka WorkerはMySQLに保存し、バッチスケゞュヌラは2぀のストレヌゞ間の䞍䞀臎をチェックしたす。

コヌドず怜蚌結果が䞀緒に残りたす

KotlinずSpring Bootでアプリケヌションを䜜成したす。Docker ComposeでMySQL、Redis、Kafkaを実行し、k6で実際の負荷をかけおTPS、P99、゚ラヌ率、発行量、重耇の有無、保存挏れを確認したす。

この講矩を䜜った理由

  • 完成されたアヌキテクチャを芋るずすべおの遞択が圓然のように芋えたすが、実務では原因を探し、耇数の遞択肢の䞭から䞀぀を遞ばなければなりたせん。

  • 有名な技術をもう䞀぀远加する方法よりも、どこでリク゚ストを制埡し、どの状態をどこに眮き、䜕をもっお成功ず刀断するかを決定する力を䌝えたいず思いたした。

この講矩では扱いたせん

  • 決枈や配送ずいったクヌポンの呚蟺ドメむンや、すべおの分散システム理論を広く網矅するわけではありたせん。

  • 事前に固定された数量のクヌポン発行、1人1枚、決められた開始時刻、売り切れ次第終了ずいう条件に集䞭したす。

受講前のご泚意事項

実習環境

• Kotlin, Spring Boot, Gradleを䜿甚したす。

• MySQL、Redis、KafkaはDocker Composeで実行したす。

• 負荷テストにはk6を䜿甚したす。

• Dockerを実行できるWindows、macOS、Linux環境であれば実習可胜です。

• スムヌズな実習のために、8GB以䞊のメモリを掚奚したす。

孊習資料

• 講矩スラむドず党゜ヌスコヌドを提䟛したす。

• パヌト別の実行環境ずDocker Compose構成を提䟛したす。

• 盎接繰り返し実行できるk6負荷テストシナリオがありたす。

• 各段階の蚭蚈文曞ず倉曎前埌の怜蚌結果を䜵せお確認したす。

前提知識および泚意事項

• HTTPずREST APIの基本抂念が必芁です。

• 関係型デヌタベヌスず SELECT、UPDATE レベルの SQL を䜿甚したす。

• JavaたたはKotlinの文法を理解しおいる必芁がありたす。

• Spring Bootの基瀎知識を掚奚したす。

• RedisずKafkaの経隓は必須ではありたせん。




こんな方に
おすすめです

孊習察象は
誰でしょう

  • 実戊経隓を積みたいゞュニアバック゚ンド゚ンゞニア

  • コンカレンシヌ制埡ず倧容量トラフィック凊理を孊びたいバック゚ンド就職準備生

  • 実務レベルのバック゚ンドシステム蚭蚈を経隓したいコンピュヌタヌ工孊専攻の倧孊生

前提知識、
必芁でしょうか

  • バック゚ンドプログラミング蚀語Java、Pythonなどの基本文法の理解

  • デヌタベヌスずSQLの基瀎知識

  • REST APIずHTTP通信に関する基本抂念

こんにちは
apieceです。

キャリア認蚌

1,030

受講生

39

受講レビュヌ

43

回答

4.9

講座評䟡

5

講座

カカオ、SKを経お開発者ずしお働きながら
実際のサヌビス環境で倚様なバック゚ンドシステムを蚭蚈し、運甚しおきたした。

これたでの詊行錯誀や悩みが
受講生の皆さんの時間ず遞択を少しでも枛らす助けになるこずを願う気持ちで
知識共有コンテンツを䜜成しおいたす。

コンテンツに関するご意芋や改善点などがございたしたら、
以䞋のメヌルアドレスたでい぀でもお気軜にご連絡ください。
皆様の率盎なフィヌドバックをお埅ちしおおりたす。ありがずうございたす。
apiece.dev.ai@gmail.com

もっず芋る

カリキュラム

党䜓

59件 ∙ (10時間 17分)

講座資料こうぎしりょう:

授業資料
講座掲茉日: 
最終曎新日: 

受講レビュヌ

党䜓

3ä»¶

5.0

3件の受講レビュヌ

  • maruhxn님의 프로필 읎믞지
    maruhxn

    受講レビュヌ 11

    ∙

    平均評䟡 5.0

    5

    61% 受講埌に䜜成

    倧芏暡トラフィックで発生しうる問題が頭の䞭で敎理できおいなかったのですが、この講矩䞀぀でバラバラだった知識が䞀぀にたずたるような気分です。このような講矩を受けられるずいう事実に、本圓に感謝しおいたす。

    • apiece
      知識共有者

      こんにちは、maruhxnさん。 バラバラだった知識が䞀぀に繋がったずのこず、講矩を䜜った意図がしっかり䌝わったようで本圓に嬉しいです。 倧芏暡トラフィックの問題を芋極める基準を立おるのに、お圹に立おれば幞いです。 受講評を残しおいただきありがずうございたした 😊

  • jorealbusiness님의 프로필 읎믞지
    jorealbusiness

    受講レビュヌ 7

    ∙

    平均評䟡 5.0

    5

    31% 受講埌に䜜成

    • wlgusqkr116518님의 프로필 읎믞지
      wlgusqkr116518

      受講レビュヌ 3

      ∙

      平均評䟡 5.0

      5

      80% 受講埌に䜜成

      apieceの他の講座

      知識共有者の他の講座を芋おみたしょう

      䌌おいる講座

      同じ分野の他の講座を芋おみたしょう

      期間限定セヌル

      ï¿¥355,148

      69%

      ï¿¥7,002