このページの本文へ

前へ 1 2 3 次へ

AIチャットボットの機械学習基盤で得たノウハウを「ServerlessConf Tokyo」で披露

商用サービスのサーバーレス構築は「すごく大変」、リクルートLSが語る

2017年11月28日 07時00分更新

文● 大塚昭彦/TECH.ASCII.jp

  • この記事をはてなブックマークに追加
  • 本文印刷

モニタリングなど:サーバーレスでは「全体像」が見えにくい

 以上がパイプライン処理の一連の流れだが、今回のシステム基盤ではさらにモニタリングの仕組みや、起動失敗/多重起動などを自動的にリカバリする処理を付け加えている。

 たとえば、複数のコンポーネント群を連携させて処理を進めていく仕組みのため、そのままでは「全体」の状況がつかみにくいという。そのために、すべてのステートを「Amazon DynamoDB」に集約し、可視化する仕組みを設けた。

 「イベントドリブンのシステムでは、いま処理がどこまで動いているのかがとても追いづらい。この基盤でも、処理を追うならばまずS3を見て、次にLambdaのログを見て、Step Functionsのログを見て……となってしまい、とても大変だ。そうしなくてもいいように、すべてのステートをDynamoDBに書き込んで(Elastic Serchserviceの)Kibanaで可視化し、どのステートにいるかを一元的に見られるようにした」(山田氏)

ステート情報をDynamoDBに集約、Kibanaで一元的に可視化している

 なお、S3のイベントトリガによってLambdaがStep Functionsを起動する際、起動に失敗したり、反対に多重起動してしまったりするケースもある。こうしたケースへの対策も行っていると、堤氏は説明した。

 まず、起動失敗への対策としてはLambdaのDead Letter Queue(DLQ)を使い、Lambdaが3回試行しても起動できなかった場合にはキューに入れる設定にしている。このキューをCloudWatch Eventsがポーリングし、Step Functionsの起動を再実行する。

LambdaのDLQを使った、Step Functions起動が失敗した場合の対策

 また多重起動の防止のために、DynamoDBへのステート書き込みを条件付きINSERTで行うことで、書き込めない(すでに書き込まれている=起動済み)場合は新たに起動しない仕組みをとっている。

 「さらに、S3のイベントトリガでLambdaそのものが起動しない場合もある。それに備えて、DatadogでStep Functionsの監視を行っており、一定時間以上Step Functionsが起動していない場合にはDatadogがアラートを上げる」(堤氏)

 管理者へのアラートは、Slack経由で通知する仕組みとなっている。CloudWatch Logsを使ってLambdaやAWS Batchからログを自動収集し、サブスクリプションフィルタとLambdaを使ってエラーログを抽出、自動投稿する。また上述したとおり、Datadogによる監視も併用することで、エラーログを出さないまま長時間処理が停止しているようなケースでもアラートが上がる。

CloudWatch Logsがログを自動収集、エラーログや必要なログを抽出してSlackに投稿

 なお“Infrastructure as Code”を実現する仕組みとしては、「Jenkins」でCIサーバーを構築し、構成管理はすべて「Terraform」で書いていると、山田氏は説明した。この部分のみEC2でサーバーを常時稼働させているという。

* * *

 冒頭に挙げたコメントのとおり、山田氏は、サーバーレスアーキテクチャでプロダクション環境を構築するのは「すごく大変」だと述べた。ここまで見てきたとおり、稼働状況のモニタリングや何重ものエラー対策、構成管理など、考えるべき点が多くあるからだ。

 だが、それでもなおサーバーレスには多くのメリットがあり、「楽しい」と山田氏は語った。

 「ただし(サーバーレスの)コストパフォーマンスはとても良い。そして最初にうまく設計すればとてもよく動く。またインフラについて考える必要がほぼなくなり、アプリ開発に集中することができるとも思う。ぜひ皆さん、これからも一緒に、楽しいサーバーレスの開発をやっていきましょう」(山田氏)

前へ 1 2 3 次へ

カテゴリートップへ

本記事はアフィリエイトプログラムによる収益を得ている場合があります

アクセスランキング

  1. 1位

    sponsored

    60年の時を超え「COBOL」がGitHub Copilotでよみがえる 勘定系アプリの“超難関”モダナイに7社が挑戦

  2. 2位

    ビジネス・開発

    富士ソフトがエンジニア1万人超を「AIネイティブ」化 実装力を武器にフィジカルAIなど3本柱に注力

  3. 3位

    ITトピック

    IT技術者の8割超「AI生成コードには人間のレビューが必要」/「偽・誤情報を見破れる」と自信を持つ人はICTリテラシーテストの正答率が低い、ほか

  4. 4位

    ITトピック

    実用化が楽しみすぎるスマート技術たち 「長距離ワイヤレス給電」から「室内向け太陽電池」「超音波センサー」まで

  5. 5位

    ITトピック

    6.4万人の熱狂をAIが導く FIFA W杯全スタジアム「デジタルツイン」化が変えた観戦体験

  6. 6位

    TECH

    攻撃するAIと防御するAI 日本企業のセキュリティ対策にいま何が必要か?

  7. 7位

    sponsored

    「現場に行くのが当たり前」を変えたアズビルのリモート調整 効果はプライスレス

  8. 8位

    Team Leaders

    SharePointリストへの登録データを、CSVファイル形式に成形/変換して自動保存する方法

  9. 9位

    ビジネス

    開発案件の立ち上げを「60分から1分」に ソースコード管理も一本化したKDLのBacklog活用術

  10. 10位

    ITトピック

    「クロスの定義とは?」 AIに“サッカー言語”を教えることから始まった、FIFAとLenovoの協業

集計期間:
2026年07月19日~2026年07月25日
  • 角川アスキー総合研究所