CodeZine(コードジン)

特集ページ一覧

マルチテナントアーキテクチャを選択する場合の設計の勘所とは?【デブサミ2019夏】

【A-8】クラウドネイティブ時代のマルチテナントアーキテクチャとデータ設計

  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加
2019/07/30 12:00

目次

AWPで採用しているパフォーマンス改善の仕組み

 マルチテナント形式の場合、資源を共有しているという性質上、パフォーマンスに何かあると、影響が広範囲にわたりやすいという問題がある。「あらかじめパフォーマンス問題をすべて抑えるのは難しい」と和田氏。そのため同サービスでもパフォーマンス対応が後手に回ってしまっていたと言う。だが、昨今、ようやくパフォーマンス問題の兆候をつかむ仕組み作りができた。

 その仕組みのために活用しているのが、「CloudWatch Logs Insights」というAWSが提供しているパフォーマンス分析サービスである。使い勝手も簡単。EC2上、もしくは標準出力にログ出力するようにし、それに連携するエージェントを仕込んでおく。するとCloudWatch上にログが蓄積されていくので、あとはそれに対してクエリを発行するだけだ。日々同サービスを活用し、処理時間がかかっているタスクの洗い出しを行っていると言う。

 PDFや画像、CSVなどのファイル生成を伴うものなど、重たいAPIについては、ロードバランサを利用して別のサーバに処理を振り分けることを行っていると言う。「マルチテナントとは関係ないが、これも簡単にできて効果的なので、ぜひお勧めしたい」(和田氏)

 またマルチテナント形式でサービス提供をしていると、どうしても特定のユーザーに資源が専有されてしまうことが起こると言う。これを極力抑えるために、単位時間あたりの呼び出し数や取得可能レコードの件数、アップロードの上限など、いろいろな面で制約をかけていくことが必要になる。「あとから制限をかけるのは大変なことなので、初期段階でしっかり考えておくことが重要になる」と力強く語る。

 このようにマルチテナントアーキテクチャを選択した場合、通常の業務システムと比較すると非機能面で考慮すべきことが多い。「初期段階で押さえておくことで、アプリケーションの開発に集中でき、よりよいサービスの提供につながっていくはずだ」

 最後にこう語り、和田氏はセッションを締めた。

図2 CloudWatch Logs Insightsを活用し、パフォーマンス分析
図2 CloudWatch Logs Insightsを活用し、パフォーマンス分析

お問い合わせ

 株式会社エイトレッド



  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • CodeZine編集部(コードジンヘンシュウブ)

    CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

バックナンバー

連載:【デブサミ2019夏】セッションレポート

もっと読む

All contents copyright © 2005-2020 Shoeisha Co., Ltd. All rights reserved. ver.1.5