SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

イベントレポート

"Well-Architected"なアーキテクチャに必要なこととは? 現役CTOたちが選出した、Startup Architecture of the year 2019【AWS Summit Tokyo】

  • X ポスト
  • このエントリーをはてなブックマークに追加

株式会社スタメン――松谷勇史朗氏

株式会社スタメン マネージャー兼テックリード 松谷勇史朗氏
株式会社スタメン マネージャー兼テックリード 松谷勇史朗氏

 スタメンの提供する「TUNAG」は、会社でのコミュニケーションに特化した企業向けSNS。そのデータの処理基盤(ETL基盤)のアーキテクチャについて語った。

 「TUNAG」で蓄積したコミュニケーションのデータには、会社と社員との距離感などが反映されている。「このデータを活用することで、エンゲージメントを定量的に分析できる」と松谷氏。そのため今回構築したETL基盤も、ビジネス上重要な鍵となっているという。

 採用しているアーキテクチャは以下の通りだ。

 まず、サーバから流れてくるアプリケーションログや、Amazon Auroraに保存されているマスターデータなどを含めたすべてのデータをAmazon S3に保存。そのデータをAWS Glueでクローリングし、AWS Glue Data Catalogを同期、クローラーの成功のイベントをフックして、Amazon CloudWatch Eventsで集計処理のワークフローを実行する。ここまでの処理は、イベントドリブンで進んでいる。

 その後AWS LambdaからAmazon AthenaにCTAS(create table as)という処理を実行して、Amazon S3に再配置した集計データをエンドユーザーに使ってもらっているという。

 過去の集計をやり直す場合には、SQSに集計ジョブをキューイング。それをAWS Lambdaが受け取り、日別に集計を並列処理する形だ。以前のETL基盤では8時間かかっていたこの処理だが、AWS Lambdaのオートスケールを利用することによって、20分にまで短縮できた。

 このアーキテクチャの採用理由を、松谷氏は、以下のように語った。

  • 「TUNAG」のサービスが順調に伸びデータが増えているので、集計処理のスケーラビリティを確保したい:AWS LambdaやAmazon S3のスケーラビリティの高さで実現
  • 今後間違いなくデータを活用した事業をしていくので、拡張性を獲得したい:Amazon S3を置くことでほかのMLOps系サービスとの親和性アップ、機能拡張しやすい
  • ELT基盤の構築経験がなかった:ベストプラクティスの詰まったマネージドサービスを使うことで、短期間で構築

 Well-Architectedである理由としては、「コスト最適化」と「運用上の優秀性」の2点を挙げた松谷氏。コスト最適化については、「Amazon AthenaやAWS Glueなど、マネージドサービスの活用とサーバレスなアーキテクチャによって、運用上の人的コストがほぼかからない。またデータ量に応じた従量課金のおかげで、データ量が枯渇するのではと言った不安からも解放された」と話す。

 また、運用上の優秀性については、「SAMでワークロード全体をコード化」しているという。これによってデプロイ自動化に組み込みやすくなる。またAWS Step Functionsを採用しており、どこで集計処理に失敗したのか一目瞭然。エラー処理やトライアル処理の設定が柔軟で、あらかじめ障害を見越した設計が可能。さらに、X-Rayでいつでも診断ができ、パフォーマンスの問題が可視化されるのもポイントだ。

 最後に、アーキテクチャによるビジネスへの貢献を、以下のように話した。

 「Amazon SQSによって並列処理することで、再集計の処理時間が大幅に短縮。これによって私たちのようなエンゲージメントが不確実な領域でも、トライ&エラーで運用の効率が上がった。また、基盤系の経験の少ないエンジニアチームでも、マネージドサービスによって短期間で構築できた。さらに、今後のデータを活用した事業の可能性を広げることができた」

ストックマーク株式会社――谷本龍一氏

ストックマーク株式会社 チーフエンジニア 谷本龍一氏
ストックマーク株式会社 チーフエンジニア 谷本龍一氏

 ストックマークは、AIベンチャーとしてテキスト解析、テキストマイニングをベースとしたクラウドソリューションを提供している。

 これは、世の中にあふれる膨大なニュースを、AIを用いて企業・個人にパーソナライズし配信。企業の競合やマーケットの情報を分析することもでき、ビジネスの現場における情報収集や整理・分析を効率化、最適化するものだ。

 アーキテクチャは以下の通り。

 メディアサイトから、AWS LambdaとAmazon SQSでクローリングとニュース記事を分析、保存。そうして収集された記事に対して、AWS Batch上で管理されたCPUコンテナ(一部EC2上で管理されたGPUコンテナ)で機械学習を行い、記事のデータはAmazon Elasticsearch Serviceに、その他のデータはAmazon DynamoDBに保存される。

 このデータに対して、オンラインアプリケーションでユーザーが興味のある業界や企業を検索した結果を、個人にパーソナライズしてレコメンデーションを返すといった仕組みになっている。

 このアーキテクチャの採用理由を谷本氏は、まず「情報収集の網羅性を担保する」ためと話す。記事の収集・分析の仕組みは、AWS LambdaやAmazon SQSを用いていているので、スケーラブルな構成になっているうえ、今後も高速な追加開発ができる。

 また、収集した膨大なデータを、使えるものとしてユーザーに提供するために、CPU/GPUコンテナを用いて、累計数千万におよぶ記事を独自のAIエンジンで分析。CPUコンテナでは要約の生成など、GPUコンテナでは類似事例・企業の抽出などを行っている。

 さらに、オンラインアプリケーションの部分では、Amazon DynamoDBとAmazon Elasticsearch Serviceを併用することで、リアルタイムなレコメンデーションを可能にしている。

 Well-Architectedである理由としては、まず「信頼性」を挙げた。ニュース記事のようなオープンデータの収集・分析は、「増え続けるデータとそれに伴って現れる特殊ケースとの格闘の連続」だと谷本氏は語る。メディアサイトからの情報収集の仕組みも、最初期は1台のEC2インスタンスだったものを、プロダクトの成長に合わせて段階的にマイクロサービス化することで対応してきた。

 また、「パフォーマンス」の高さもWell-Architectedである理由の1つだ。AWS Elastic Beanstalk下のAmazon EC2と、Amazon Elasticsearch Serviceのインスタンスをそれぞれ最適化することで、数十万記事の分析結果を、1秒でユーザーに提供する高速なレコメンデーションを実現したという。

 2017年4月にリリースしたこのサービスは、すでに1000社以上の企業で利用されている。広くビジネスへ貢献できているとして、谷本氏は発表を締めくくった。

株式会社スナックミー――三好隼人氏

株式会社スナックミー CTO&co-founder 三好隼人氏
株式会社スナックミー CTO&co-founder 三好隼人氏

 お菓子のサブスクリプションサービスを提供するスナックミー。サブスクのKPIで大事なのは、「チャンレートを下げること」だとの三好氏は語る。データ分析の結果、「リクエストしてもらう」状況になると解約率が下がる(満足している)と分かった。リクエスト率を上げ、MAU(月間アクティブユーザー数)を向上させることが、同社のビジネス課題というわけだ。

 そこで同社では、リクエストに基づいて届けるお菓子を決定し、ユーザーに届けるまでの仕組み、つまりアサインシステムの強化と効率化を目指したという。アーキテクチャは以下の通り。

 AWS Step Functions上にAWS LambdaやAWS Batchのフローを載せている。三好氏は「ユーザーをクラスタリングさせたアサイン方法や、配送パターンの増加など、アサインパターンが複雑化している」ため、このAWS Step Functionsを採用したと話す。「昨年のre:InventでAWS Step FunctionsとAWS Batch、その他7つのマネージドサービスと連携可能になったと発表された。これによってAWS Step Functionsの利便性は上がった」と三好氏は話し、連携後のワークフローの例としてAWS Batchを用いた場合を挙げた。

 これによって、Well Architectedを実現できている。三好氏は、ポイントとして以下の5つを挙げた。

  • コストの最適化: AWS BatchとAWS Lambdaを実行時間によって使い分ける
  • 運用上の優秀性:AWS Step Functionsにまとめることで一元管理
  • セキュリティ:AWS Step Functions IAM / Amazon GuardDutyによる、AWSの他のサービスとリソースへのアクセスを制御 / 不正トラフィックのモニタリング
  • 信頼性:job間を疎結合にすることで、障害を極小化
  • パフォーマンスの効率:Amazon CloudWatchでワークフローのモニタリング

 ビジネスの貢献としては、アサイン業務の手動時間を1週間あたり5時間削減、チャーンレート率は最大値から4%減、リクエスト率は昨年度から10%向上など、数字的にも効果が明らかになっている。また、「新しいアルゴリズムを容易に試すことができるので、さらなる解析も可能」と三好氏は今後にも期待する。今一度AWS Step Functionsの有用性を強調して、発表を終えた。

 

次のページ
double jump.tokyo株式会社――満足亮氏

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
イベントレポート連載記事一覧

もっと読む

この記事の著者

岡田 果子(編集部)(オカダ カコ)

2017年7月よりCodeZine編集部所属。慶応義塾大学文学部英米文学専攻卒。前職は書籍編集で、趣味・実用書を中心にスポーツや医療関連の書籍を多く担当した。JavaScript勉強中。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/11587 2019/08/21 11:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング