マルチテナントアーキテクチャを選択する場合の設計の勘所とは?【デブサミ2019夏】
【A-8】クラウドネイティブ時代のマルチテナントアーキテクチャとデータ設計
AWPで採用しているパフォーマンス改善の仕組み
マルチテナント形式の場合、資源を共有しているという性質上、パフォーマンスに何かあると、影響が広範囲にわたりやすいという問題がある。「あらかじめパフォーマンス問題をすべて抑えるのは難しい」と和田氏。そのため同サービスでもパフォーマンス対応が後手に回ってしまっていたと言う。だが、昨今、ようやくパフォーマンス問題の兆候をつかむ仕組み作りができた。
その仕組みのために活用しているのが、「CloudWatch Logs Insights」というAWSが提供しているパフォーマンス分析サービスである。使い勝手も簡単。EC2上、もしくは標準出力にログ出力するようにし、それに連携するエージェントを仕込んでおく。するとCloudWatch上にログが蓄積されていくので、あとはそれに対してクエリを発行するだけだ。日々同サービスを活用し、処理時間がかかっているタスクの洗い出しを行っていると言う。
PDFや画像、CSVなどのファイル生成を伴うものなど、重たいAPIについては、ロードバランサを利用して別のサーバに処理を振り分けることを行っていると言う。「マルチテナントとは関係ないが、これも簡単にできて効果的なので、ぜひお勧めしたい」(和田氏)
またマルチテナント形式でサービス提供をしていると、どうしても特定のユーザーに資源が専有されてしまうことが起こると言う。これを極力抑えるために、単位時間あたりの呼び出し数や取得可能レコードの件数、アップロードの上限など、いろいろな面で制約をかけていくことが必要になる。「あとから制限をかけるのは大変なことなので、初期段階でしっかり考えておくことが重要になる」と力強く語る。
このようにマルチテナントアーキテクチャを選択した場合、通常の業務システムと比較すると非機能面で考慮すべきことが多い。「初期段階で押さえておくことで、アプリケーションの開発に集中でき、よりよいサービスの提供につながっていくはずだ」
最後にこう語り、和田氏はセッションを締めた。
お問い合わせ
株式会社エイトレッド
この記事は参考になりましたか?
既に会員の方はを行ってください。
- この記事の著者
-
CodeZine編集部(コードジンヘンシュウブ)
CodeZineは、株式会社翔泳社が運営する開発者のための情報メディアです。日々の開発に取り組むエンジニアやテクノロジーを学びたい方に向けて、プログラミングやAI活用、開発ツール、エンジニアの学びとキャリアに関する記事をお届けしています。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社
この記事は参考になりましたか?
この記事をシェア
