catch-img

ご質問フォームの最近のアーキテクチャ~2020年10月~

こんにちは。
経営企画室 プロトタイプビルダーの山下です。
ラーニングサービス本部 テクニカルトレーニング第一部と兼務でプロトタイプビルダーを始めました。
身の回りで行っているちょっとしたプロトタイピングなどを紹介していきたいと思います。
今日ご紹介するのは、トレーニングコース中に受講者さんからのご質問を匿名で受け付けるご質問フォームの最近のアーキテクチャです。
2019年6月からブログでは更新していなかったのですが、少しずつ見直しを図ったり、機能追加していました。

2019年6月時点のアーキテクチャ

  AWSトレーニングコースで使用している質問フォームのアーキテクチャ(2019年6月版) | トレノケート公式ブログ AWSトレーニングコースで使用している質問フォームのアーキテクチャ(2019年6月版) トレノケート公式ブログ

2020年10月時点のアーキテクチャ

ここ最近のアーキテクチャは、アイキャッチにも使用していますこちらです。

normal (10)

このご質問フォームは、匿名でご質問を受付できる、という目的だけではなく、このアーキテクチャそのものを、Architecting on  AWS、Developing on AWSというAWS認定クラスルームトレーニング(現時点では山下実施時のみ)でベストプラクティスを解説するための体験型デモとしての役割も担っています。

 

疎結合化

AWSの設計/開発ベストプラクティスの一つに、疎結合化があります。
このブログでは、ソフトウェアの制約があるようなケースで、疎結合化によって機会損失を減らし、耐障害性をどのようにして向上するか、一つのユースケースとして解説します。

 

RocketChatの役割と位置づけ

解説しやすくするため、対象のアーキテクチャを絞ります。

normal (11)

データの流れは、S3にデプロイした静的フォームに入力されたご質問メッセージが、API Gatewayに送信されて、SNSからSQSへファンアウト、Lambdaがキューコンシューマーとしてメッセージを受信してRocketChatというOSSのAPIにPOSTしています。

normal (12)

こうすることで、受講者さんからのご質問を受講者さん全員が手元で共有することができ、講師やサブ講師からの返答もリアルタイムに確認することができます。
匿名ですので、ご質問の敷居も下がります。

RocketChatはOSS(オープンソースソフトウェア)です。
構築のやり方によっては、データベースを別のインスタンスにして、複数のEC2やコンテナで冗長化を図ることも可能かと思いますが、今回は迅速にシンプルに構築するために、Ubuntuサーバーで "sudo snap install rocketchat-server"  コマンドを実行することによって、一式をインストールしています。

例えば、このRocketChatサーバーを、自分たちではカスタマイズすることのできない制約付きのソフトウェア、または外部のサービスAPIと仮定します。
そう仮定したとき、RocketChatはいつ止まるか分からないSPOF(単一障害点)と位置づけることができます。

RocketChatを単一障害点と位置づけた上で、RocketChatサーバーが停止しても受講者さんがご質問を送り続けられる設計を考えたいと思います。

 

SQSを使った疎結合化

LambdaからRocketChat APIへのPOSTが失敗してもSQSにご質問メッセージは残ります。
そして、デッドレターキューを指定しているので、30回再試行してPOSTできなかったメッセージはデッドレターキューへ移動します。

normal (13)

RocketChatが復旧してからメッセージをLambdaに渡してあげれば、メッセージを失うことなく、RocketChatへPOSTできます。

 

障害発生時

RocketChatをあえて、t3a.small という小さめのインスタンスで起動しています。
だいたい3日コースであれば、1回はCPUが高騰してユーザーアクセスも、APIアクセスも受け付けられなくなる事象が発生します。
今のところ、原因はCPU高騰で、再起動によって復旧するので、CloudWatchアラームで自動再起動を設定しています。
発生した場合は10分ほどRocketChatにはアクセスできなくなりますが、その間もご質問は送信し続けていただくことができます。
そうして復旧後に、CloudWatchアラームが実際にどう動いたかを見ていただくこともできます。
(t3なのでCPUバーストの解説にも重宝しています)

normal (14)

 


AWSで構築したツールを使いながら、AWS認定クラスルームトレーニングを受講されてみてはいかがでしょうか。
皆さまのご受講を心よりお待ちしております。

トレノケートのAWS研修(AWS認定トレーニング)

トレノケートのAWS認定トレーニングでは、AWS社の厳格なテクニカルスキル及びティーチングスキルチェックに合格した認定トレーナーがコースを担当します。AWS初心者向けの研修や、AWS認定資格を目指す人向けの研修をご提供し、皆様のAWS知識修得のサポートをいたします。
トレノケートのAWS研修(AWS認定トレーニング)はこちら


▼AWS初心者の方は、   AWS Cloud Practitioner Essentials から!
座学中心の研修で、AWSを初めて学ぶ方や、営業などで提案に関わる方におすすめです。
「AWS Certified Cloud Practitioner」資格取得を目指す方の基礎知識修得にも最適です。
→ 詳細・日程はこちらから

 

▼実践スキルを磨くなら、AWS Technical Essentials で !
実機演習が中心の研修です。仕事で構築作業を行う方や、シナリオベースの演習を通じて、実際に手を動かしながら各サービスの特徴を学びたい方におすすめのAWS研修です。
→ 詳細・日程はこちらから

 

いきなりの有償コースに抵抗がある方やまずはお試しをしてみたい方は、トレノケートが実施している無料セミナーがおすすめです。詳細はセミナーページよりご確認ください。

▼無料セミナーの詳細はこちらから

山下 光洋(やました みつひろ)

トレノケート株式会社 講師。AWS Authorized Instructor Champion / AWS認定インストラクター(AAI) / AWS 認定ソリューションアーキテクト - プロフェッショナル /AWS認定DevOpsエンジニア - プロフェッショナル / AWS 認定デベロッパー - アソシエイト / AWS 認定 SysOps アドミニストレーター - アソシエイト / AWS 認定クラウドプラクティショナー / kintone認定 カスタマイズスペシャリスト他。AWS認定インストラクターとしてAWS認定コースを実施。毎年1,500名以上に受講いただいている。AWS 認定インストラクターアワード2018, 2019を日本で唯一受賞。著書『AWSではじめるLinux入門ガイド』(マイナビ出版社)。共著書『AWS認定試験対策 AWS クラウドプラクティショナー』(SBクリエイティブ社)。前職では2016年にAWS Summitにパネラーとして参加。その前はLotus Technical Award 2009 for Best Architectとして表彰されている。また、各コミュニティの運営にも個人的に関わり、勉強会にてスピーカーや参加をしている。

無料ダウンロード

オススメコンテンツ

オススメ記事

AWS プロジェクトマネジメント PMP 人材育成 田中淳子 Microsoft ビジネススキル PMBOKⓇ IT資格 ITスキル 山下光洋 人材育成応援ラジオ クラウド AMA コミュニケーション Azure 人材開発用語集 PMBOK®ガイド入門 新入社員 横山哲也 AWS認定トレーニング DX re:Invent セキュリティ AI(人工知能) PMP試験問題に挑戦 Cisco PMBOKⓇガイド 第6版 イベント・セミナー 試験体験記 キャリア PMBOK®ガイド第6版の変更点 人材開発 CCIE CCNA 生成AI 研修 AI人材 DX人材育成 IT人材 スキルアップ テレワーク ネットワーク リモートワーク 人材トレンド GCP PMP(R)試験問題 第6版対応 PMP合格体験記 Windows Server voicy リーダーシップ AWS_Q&A Active Directory IT資格解説 アセスメント デジタルビジネス ヒューマンスキル 人気コースランキング 大喜利 部下の育成 PMの心得 reinvent2023 グローバル人材 リスキリング 新入社員研修といえば IoT OJT reinvent2022 プログラミング 1on1 AWS_DiscoveryDay CCNP Security Windows PowerShell クリエイティビティ コーチング AWSトレーニングイベント Google Cloud ITインフラ ITエンジニア PMP試験対策一問一答 ダイバーシティ プロジェクト プロトタイプビルダー 試験対策問題 GCP無料セミナー Google Cloud Platform G検定 Linux Power Platform oVice アワード クリティカルシンキング サンプル問題 ステークホルダー ディープラーニング リーダー ワーケーション 女性活躍 新入社員研修