# 実装の参考資料 - https://soudai.hatenablog.com/entry/2022/11/11/110825 # 類似の登壇内容の動画 - https://www.youtube.com/watch?v=PXy6I-AeI-I
クラウドが備えるスケーラビリティやアベイラビリティ、そして膨大な処理能力を実現する技術として、MapReduceやキーバリュー型データベースが注目を浴びています。「リレーショナルデータベースはもう古い」という人さえいるほどです。 ところが、そんな話題の新テクノロジーに背を向けて、既存技術であるリレーショナルデータベースを核にしつつクラウドを構築し、絶大なスケーラビリティと信頼性を実現している企業があります。セールスフォース・ドットコムです。 彼らはMapReduceもキーバリュー型データベースも使わずに、どうやってスケーラビリティや信頼性を備えたクラウドを実現しているのでしょうか? 同社が公開している情報はそれほど多くないのですが、それらをつなぎ合わせて見えてきたいくつかの技術的な仕組みを、何回かに分けて紹介したいと思います。 Salesforceはどれほどスケーラブルか 同社のクラウドが
SaaSシステムを開発しているみなさま、お元気でしょうか。 SaaSシステムというといわゆるWebサービスよりももう少しBtoBの雰囲気が漂ってまいります。 SaaSシステムでは契約者(ここではテナントと呼ぶ)が複数いて、テナント毎に複数のログインユーザーやロールが存在するのが一般的です。そして当然ながらテナント毎のデータは漏洩・混濁が許されない高いセキュリティが求められます。 SaaSシステムの構築はスケーラビリティにおいても100テナント程度から始まりゆくゆくは数千、数万テナントまで少なくとも線形にスケールするアーキテクチャを開発当初から求められ、さらに突発的な大規模テナントも問題なく吸収したいという要求があります。 その要求を満たす設計・開発・保守・運用をやっていくのは当然ながら簡単ではありません。 というわけで今日はマルチテナントアーキテクチャのお話です。 世に出る情報がとっても少
はじめに 本記事では、Kubernetesで実現するマルチテナントについて、2020年9月時点での現状と、将来的に利用できるであろう機能の紹介をいたします。各機能についての詳細は、参考ドキュメント等を参照していただければと思います。 本記事の要点 マルチテナントは単一のクラスター上に複数のテナントを共存させることを指す。 Kubernetesにはマルチテナントを実現するための機能が備わっている。 アクセスコントロール:RBAC セキュリティ:Namespace / Network Policy / Pod Security Policy リソースの隔離:ResourceQuota / LimitRange / Affinity / Taintなど Kubernetesのマルチテナント機能は、SIGを中心として機能開発が進められている。 Benchmarks Tenant Controlle
セールスフォースが採用しているマルチテナントアーキテクチャでは、すべてのユーザーが同一データベース、同一スキーマを共有しています。 では、個別に入力項目を増やすようなスキーマの変更を伴うアプリケーションのカスタマイズや、新たなテーブルを作成してそこに独自データを保存するようなアプリケーションの新規作成はできないのか? といえば、そんなことはなく、セールスフォースが提供するプラットフォームの上で、自由に項目の追加や新しいテーブルの作成が可能です。 全ユーザーでスキーマを共有しながら、しかし個別のカスタマイズを許容する。この一見矛盾する要件を、セールスフォースはどのように実現しているのでしょうか? (本エントリは「知られざる『マルチテナントアーキテクチャ』(2)~スケーラビリティのカギは組織ID」からの続きです。) 公開されているスキーマを見てみる ユーザーがスキーマを変更したり、新規テーブル
2021年に7つの中核事業会社および機能会社を組織統合したリクルートでは、各社のデータエンジニアによって組閣された「データ推進室」が領域横断的に各事業領域のデータ戦略・立案を支援しています。前回記事では、そのデータ推進室が持つアジリティの高いボトムアップ文化をご紹介しました。 今回はその文化が実際にどのような形で活かされているか、「横断プロダクト(複数事業領域での利用を想定して開発されるリクルートの社内プロダクト)」の導入事例をもとに見ていきます。 さて、社内開発されたプロダクトを各事業部に“領域展開”するのは、案外難しいものです。すでに使用されているツールとの兼ね合い、慣習や制度の問題、リソースの問題、そして技術的な問題。さまざまな障壁が立ちはだかり、調整に苦労した経験のある方も少なくないはず。 組織間の連携を強化し、社内システムプロダクトの横展開を促進・効率化させる上では、どのよう
VMwareは、同社が「クラウドネイティブなアプリケーションのためのプラットフォーム」の一部として開発していたコンテナ専用の管理ツール「VMware Photon Controller」をオープンソースで公開しました。 「VMware Photon Controller」は、Dockerをはじめとするコンテナ型仮想化を利用した大規模分散システムを管理するために、vSphere製品群とは別のソフトウェアとして新たに開発されました。 単一障害点がなく高い可用性を実現するように作られており、Docker SwarmやKubernetes、Mesos、Cloud Foundryといったコンテナ用のオーケストレーションツールと密接に動作します。 同社はこのPhoton Controllerと、コンテナ専用に開発された軽量OSの「Photon OS」などを組み合わせたコンテナ専用プラットフォーム「VM
こんにちは。EC基盤グループの宮口(@smiyaguchi)と池田(@progrhyme)です。 モノタロウではKubernetesのマネージドサービスであるGoogle Kubernetes Engine(以下、GKE)を利用しています。 このKubernetesですがとても便利な反面、管理が大変で開発者がアプリケーションの開発とKubernetesの運用を同時に行うのは負荷が高くなりあまり好ましくありません。 そこでモノタロウでは開発と運用を分離できるように、社内でGKE共通環境と呼んでいるマルチテナント方式のクラスタによるアプリケーションの実行基盤を構築しました。 今回はその紹介をします。 マルチテナント・シングルテナントとは? なぜマルチテナントのGKE環境を作ることにしたのか 全体概要 前提・環境情報 GKE共通環境の特徴 Namespace・ノードプールの分離 RBACによる権
文脈、背景や問題点の説明 マルチテナントを実装するうえで企業情報(以下company)単位で最小限の情報を扱うようにしたいがcompany単位にTableを作ったりDatabaseを作るのはALTERなどの運用が大変。 そこでRLSを採用するために実際の技術検証をした上での注意点と実際の運用について必要な情報をまとめる。 PostgreSQL 14を前提としている 公式ドキュメント CREATE POLICY 必ず一読はすること。 困ったとき、わからないときはまずは公式ドキュメントを都度見ること。 このドキュメントのゴール RLSの概要をつかめる RLSの最低限の注意点を理解し、実装時に罠を踏まない 自分たちでRLSのポリシー自体をメンテナンスすることができ、デバッグできる テーブル構成 create table if not exists company ( id uuid defaul
米国の計算機学会として知られるACMが主催したクラウドコンピューティングのシンポジウム「ACM Symposium on Cloud Computing 2010」(ACM SOCC 2010)が6月10日、11日にインディアナ州インディアナポリスで開催されました。 基調講演では、セールスフォースのアーキテクチャの解説が行われました。複数の利用者のデータを1つのデータベースに格納しているセールスフォースのクラウドでは、どのようなデータベース構造で、また検索のオプティマイズなどはどうしているのしょうか? (この記事は「セールスフォースのアーキテクチャ(物理アーキテクチャ編)~ Podによるスケールアウト」の続きです) マルチテナントとしてのデータベース構造と最適化 セールスフォースの内部でOracle RACを使っていることは説明したが、すべてのユーザーが共有するデータベースで、どのような構
セールスフォースが採用しているマルチテナントアーキテクチャでは、すべてのユーザーが同一データベース、同一スキーマを共有しています。これによってインフラの共有が容易になり、非常に効率的な運用と低コストを実現しています。 (本エントリは「知られざる『マルチテナントアーキテクチャ』(1)~SaaSはみんな同じではない?」からの続きです。) しかし、それだけではスケーラビリティやアベイラビリティを実現することはできません。それらの実現には別の技術が併用されています。それはOracleのパーティショニング機能とパラレル機能による分散処理です。 パーティショニング機能の話をする前に、セールスフォースが採用しているデータベースの特徴を見てみましょう。 すべてのデータに振られる組織ID セールスフォースはすべてのユーザーが1つのデータベースを共有するマルチテナントアーキテクチャを採用しています。ということ
RLSを用いたマルチテナント実装 for Django by Takayuki Shimizukawa 複数のテナント(チーム・組織)向けにサービスを提供するシステムで、テナント相互の情報を分離して扱う、複数のマルチテナントアーキテクチャが考案されています。「各プログラマが努力して実装する」戦略でも実現はできますが、プログラミングミスや設定間違いによるデータ混濁が高確率で発生します。このトークでは、マルチテナントアーキテクチャにおけるデータ分割アプローチのひとつ「共有アプローチ」をDjangoとPostgresのRow Level Security (RLS) の組合せで安全に実現する方法を紹介します。またこの方法のメリット、デメリットを紹介します。 https://djangocongress.jp/Read less
マンガメディア開発チームの id:mizdra です。普段はWebアプリケーションエンジニアとして、マンガビューワ「GigaViewer」の開発に携わっています。GigaViewerの提供は2017年に始まり、執筆時点で12の出版社、14のサイトに導入いただいています。 GigaViewerでは、多数のマンガサイトを素早く構築するため、マルチテナントアーキテクチャを採用しています。データベースを始めとしてコードベースに至るまで、多くの部分をサイト間で共通化しています。 マルチテナントアーキテクチャは、プロダクトを多数のプラットフォームに効率よく展開できるメリットがある一方で、アーキテクチャ特有のさまざまな困難もあります。この記事では、マルチテナント環境でSentryを利用したときに発生するグルーピングの問題を解説し、その問題にGigaViewerがどのように対処したのかを紹介します。 なお
SDNのオープンソースプロジェクト「OpenDaylight」が、最初の正式バージョンとなる「Hydrogen」を公開。SDNコントローラ、ネットワーク仮想化、マルチテナントなどを実現 Software-Defined Networkを実現するためのソフトウェアをオープンソースで開発することを目的にシスコ、マイクロソフト、IBM、VMware、Brocade、Juniperほか、IT業界の主要なプレイヤーが集まり、The Linux Foundationがホスト役となった「OpenDaylight」プロジェクトが、最初のバージョンとなる「Hydrogen」(コード名)を公開しました。誰でも無料でダウンロードし、利用できます。 OpenDaylightプロジェクトが対象とするソフトウェアは、ネットワーク全体を制御するためのSDNコントローラと、そのSDNコントローラを活用するネットワークアプ
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring) Webアプリケーションにおいて、マルチテナント型、つまり複数のユーザー組織がアプリケーションとデータベースを共有する構成にすることがあります。この構成の持つリスクとして、万が一バグにより他テナントの情報が見えてしまうとそれは情報漏洩となり、重大なインシデントとなってしまうことがあります。この重要性を考えると、「気を付けて実装する」だけではなく、仕組みで漏洩を防ぐような対策には価値があります。 そこで、今回はPostgresSQLの行レベルセキュリティと、SpringAOPによる処理を組み合わせて、ログインしているテナントのデータにしかアクセスできなくする仕組みを実現しました。 導入にあたり考慮した複数の選択肢、乗り越えたいくつかの壁
Amazon Web Services ブログ AWS サーバーレスサービスによるマルチテナント SaaS ソリューションの構築 この記事は、Building a Multi-Tenant SaaS Solution Using AWS Serverless Services を翻訳したものです。 本投稿は、AWS SaaS Factory の Sr. Partner Solutions Architect である Anubhav Sharma と AWS SaaS Factory の Partner Solutions Architect である Ujwal Bukka により寄稿されました。 SaaS (Software-as-a-Service) 提供モデルへの移行に際しては、コストと運用効率を最大限に高めたいという要望が伴います。 これは、利用傾向を予測することが困難なマルチテナン
こんにちは!技術部の小池です。 この記事は Tech Kayac Advent Calendar 15日目の記事です。気付いたらもう12月も半分じゃないですか…もう今年の営業は終わりにしてお酒飲んで年越しを迎えたい気分ですね〜。 今回はマルチテナントなサービスにおける認証と権限管理についてのお話です。 要件 今回お話するサービスはカヤックグループ全体に提供する予定のマルチテナントのサービスです。カヤックの文化を支える 360度フィードバック、スマイル給 などの複数のサービスが協調して動作するというサービス指向的なアーキテクチャで、既存のカヤック社内サービス群のリニューアルプロジェクトでもあります。 カヤックグループ向けに提供するサービスなので、認証をしないことには利用することはできません。また、カヤックの社員が他のグループ会社の情報を見れてしまうというのも困ったことになってしまうので、組織
これは Mercari Bold Challenge Month の3番目の記事です。 Mercari ではモノリスなサービスからマイクロサービスのアーキテクチャへと移行を行っている間、長期的な観点からみて、サービスメッシュの導入とその重要性を理解することが必要だと感じていました。ほとんどのインシデントレポートに対する現実的な対策としてあがるのが、レートリミットの導入、適切なカナリアリリースのフローの導入、適切なネットワークポリシーの導入などでした。そしてこれらこそがサービスメッシュによってもたらされる機能です。 前四半期では、私達はついに Istio の導入に挑戦することに決め、調査を開始しました。結果として、100 以上のマイクロサービスをホストするマルチテナント環境のシングル Kubernetes クラスタを深刻な障害を発生させずに本番運用を行うことができています。この記事では Me
Windows Azureエンタープライズアプリケーション開発技法 マルチテナント・アーキテクチャ ―― 第3章 クラウドとオンプレミスの考え方の違い 3.6 ―― 日本マイクロソフト株式会社コンサルティングサービス統括本部 赤間 信幸 2012/01/10 本コーナーは、日経BP社発行の書籍『Windows Azureエンタープライズアプリケーション開発技法』の中から、特にInsider.NET読者に有用だと考えられる章や個所をInsider.NET編集部が選び、同社の許可を得て転載したものです。基本的に元の文章をそのまま転載していますが、レイアウト上の理由などで文章の記述を変更している部分(例:「上の図」など)や、図の位置などを本サイトのデザインに合わせている部分が若干ありますので、ご了承ください。『Windows Azureエンタープライズアプリケーション開発技法』の詳細は「目次情報
Amazon Web Services ブログ PostgreSQL の行レベルのセキュリティを備えたマルチテナントデータの分離 Software as a Service (SaaS) プロバイダーには、基本的にテナントデータの分離を適用する責任があります。テナントの 1 つが別のテナントのデータにアクセスした場合、信頼はなくなり、ビジネスのブランドに永久的な損害を与える可能性があるだけでなく、さらにひどい場合には、ビジネスを失う可能性があります。 リスクが非常に大きいため、効果的なデータの分離を計画することが重要です。マルチテナントアーキテクチャは、各テナントのリソースをレプリケートするのではなく、すべてのテナントのデータストレージリソースを共有することで、俊敏性と運用コストを節約します。しかし、共有モデルで分離を適用することは難しいため、マルチテナントデータモデルで妥協して、テナント
Amazon Web Services ブログ AWS 上のマルチテナント SaaS 環境におけるセキュリティプラクティス この記事は Security practices in AWS multi-tenant SaaS environments を訳したものです。 SaaS (Software-as-a-service) アプリケーションのセキュリティ保護は、すべてのアプリケーションアーキテクトと開発者にとって最優先事項です。複数のテナントによって共有される環境のセキュリティ保護は、特に困難な場合があります。アイデンティティフレームワークとその概念を理解するには時間がかかることがあり、これらの環境でテナント分離を形成するには、さまざまなツールやサービスを深く理解する必要があります。セキュリティはあらゆるソフトウェアアプリケーションの基本要素ですが、SaaS アプリケーションには Saa
こんにちは。計測プラットフォーム本部バックエンド部SREチームの市橋です。 私たちのチームではZOZOSUIT、ZOZOMAT、ZOZOGLASSといった計測技術に関わるシステムの開発、運用を担当しています。現在のZOZOMATとZOZOGLASSは、どちらも独立したEKSクラスタ上で動いていますが、ZOZOGLASSの環境を構築する際に将来のマルチテナント化を踏まえ大きく設計を見直しました。今回は、この設計見直し時に考慮した点を紹介します。 ZOZOGLASSとは ZOZOGLASSは顔の情報を計測し、イエローベースとブルーベースの2タイプ、及び春夏秋冬の4タイプの組み合わせからなるパーソナルカラーを診断するサービスです。計測した顔の情報から肌の色に近いファンデーションを推薦します。2021年7月時点で、ZOZOGLASSが推薦するコスメアイテムはファンデーションのみですが、今後はファン
初めまして、 @takano-hi です。 2023年2月に AlphaDrive にジョインして、主にフロントエンド領域を中心に設計・実装などの業務を担当しています。 最近、Next.js のプロジェクトを新たに立ち上げる機会があり、せっかくなので App Router を採用しました。 そのプロジェクトの認証機能の実装に当たり、今まで他プロジェクトでも利用していた Keycloak と @auth0/nextjs-auth0 の組み合わせを試したところいくつかの困難に遭遇したので、その解決方法についてまとめようと思います。 環境 next v13.4.9 @auth0/nextjs-auth0 v3.1.0 keycloak v20.0.1 ライブラリの選定背景 私が所属しているチームでは、認証基盤(IDプロバイダー)に Keycloak を利用しています。 Keycloak は Op
LINE株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。 LINEヤフー Tech Blog 2021年11月10日・11日の2日間にわたり、LINEのオンライン技術カンファレンス「LINE DEVELOPER DAY 2021」が開催されました。特別連載企画「DEVDAY21 +Interview」では、登壇者たちに発表内容をさらに深堀り、発表では触れられなかった関連の内容や裏話などについてインタビューします。今回の対象セッションは「マルチテナントなk8sクラスタで構築する信頼性の高いログ収集基盤」です。 LINEはプライベートクラウドのVerda上で、さまざまなマネージドサービスを提供しています。Verdaはマイクロサービスアーキテクチャになっており、各サービスのコンポーネントはマルチテナントなKubernetes
ペパボ研究所主席研究員の松本です。Twitter上ではまつもとりー(@matsumotory)と呼ばれています。2017年の5月25日から2日間にわたり開催された、第37回インターネットと運用技術研究会で、高集積マルチテナントWebサーバの大規模証明書管理について研究発表してきました。論文(研究会予稿)とスライドを以下に公開します(論文画像をクリックするとPDFで読むことが出来ます)。 論文(研究会予稿) スライド 研究の概要は以下の通りです。 インターネットの利用に際して,ユーザーや企業においてセキュリティ意識が高まっている.また,HTTPのパフォーマンス上の問題を解消するために,HTTP/2がRFCとして採択された.それらを背景に,常時HTTPS化が進む中で,高集積マルチテナント方式のWebサーバで管理している大量のホストもHTTPS化を進めていく必要がある.同方式は単一のサーバプロセ
[翻訳] coTURN:マルチテナント型のオープンソースのSTUN/TURNサーバ 岩瀬 義昌(HTML5 Experts.jp編集部) 本記事は、webrtcHacksにて英語で掲載されている記事を、webrtcHacks様の許可を得た上で、翻訳&掲載している記事となります。修正・更新・コメント等がございましたら、webrtchacks/coturn/ までお願いいたします。 This article originally appeared in English at webrtcHacks and has been translated with webrtcHack’s permission for posting to html5experts.jp in Japanese. Please visit http://webrtchacks.com/coturn for edits,
AWS Summit Online 2020 (https://aws.amazon.com/jp/summits/2020/) の発表資料です マネーフォワードは創業当初からオンプレミス環境で運用を行ってきましたが、 組織や事業の急拡大に伴いインフラチームがボトルネックとなることが増えてきました。この現状を打破すべくクラウド移行を進めています。 本セッションでは、オンプレミス環境からクラウドへの移行を通じて組織と事業の急拡大にどのように立ち向かおうとしているかについて、 マルチテナントな Amazon EKS クラスタと TransitGateway や DirectConnect を利用したマルチアカウントを用いたアーキテクチャを中心に紹介します。
Amazon Web Services ブログ マルチテナントソリューションでAmazon SQSを使う AWS SaaS Factoryチームのシニアパートナーソリューションアーキテクト Raju Patel によって書かれた記事です。 モダンアプリケーションは、サービス統合、バッチ処理、またはワークフローオーケストレーションの一部として、キューイングに依存することがよくあります。キューは、システムの環境に拡張性と耐障害性を追加するうえ重要です。 これは、キューイング戦略をマルチテナントソリューションのワークロードにどのように適用するかを考える必要がある、Software-as-a-Service(SaaS)環境では特に当てはまります。SaaS アプリケーションのキューイングモデルを設計する際には、データの分離、パフォーマンス、および運用を考慮する必要があります。 多くの組織がアマゾンウ
みなさん、こんにちは。まつもとりーのインフラ入門第六回です。 本連載では、主にインターネット基盤技術、または、インターネットのインフラ技術と呼ばれる領域に関して、Webホスティングサービスの歴史やWebサーバの設計と実装を中心に執筆していくと第一回で述べました。 第六回では、高集積マルチテナント環境において非常に重要で、かつ、とてもおもしろいセキュリティの研究動向についての研究動向を紹介します。 まつもとりーのインフラ入門-第五回「高集積マルチテナントアーキテクチャのリソース分離(2)」 まつもとりーのインフラ入門-第四回「高集積マルチテナントアーキテクチャのリソース分離(1)」 まつもとりーのインフラ入門-第三回 「WebサーバとWebホスティングシステム(2)」 まつもとりーのインフラ入門-第二回 「WebサーバとWebホスティングシステム」 まつもとりーのインフラ入門-序章「インフラ
SaaSサービスをRailsで開発するにあたり、マルチテナントに関する情報収集をしたため本ページにまとめとして記録いたします。 DBのマルチテナント DBのマルチテナントにあたっては、セキュリティーの確保と保守性が方式の選定ポイントとなります。 ただし、SaaSサービスとして成功するほど保守のコストが増大するためプール型に移行していくようです。 ブリッジ型でマルチテナントを実現可能なGem「apartment」 データーベースのインスタンスは全テナントで共有するものの、テナントごとにスキーマ(テーブル、インデックス、ビュー、ストアドプロシージャ)を分ける方式です。 この実装にはGem「apartment」の使用が有名です。 SmartHR社も創業当初はセキュリティーを高めるためにapartmentを利用していたようです。 ただし、後述するように、サービスの特性上カラム数が多く契約社数の伸び
Microsoft Learn. Spark possibility. Build skills that open doors. See all you can do with documentation, hands-on training, and certifications to help you get the most from Microsoft products. Learn by doing Gain the skills you can apply to everyday situations through hands-on training personalized to your needs, at your own pace or with our global network of learning partners. Take training Find
先週10月13日にクラウド利用促進機構(CUPA)というNPOが主体となって「オープンクラウドキャンパス」というイベントが開催されました。テーマはPaaSです。 僕はそのイベントの冒頭で「PaaSの動向」についてプレゼンテーションをしてもらえないか、と依頼をいただきまして、お話をしてきました。 この記事は、そのプレゼンテーションの内容を紹介したものです。本番では時間があまりなくて省略した部分もあったので、記事化にあたってはそうした点の補足もしました。 本記事は「PaaSの動向(前編):初期のPaaSは完成度が高いがロックインされやすい」の続きです。 ベニオフ氏対エリソン氏、対決の中身を知る 最近のPaaSの動向で欠かせないトピックが、マーク・ベニオフ氏とラリー・エリソン氏の師弟対決です。 ベニオフ氏は「クラウドだと言って箱を売ってる会社がある。偽のクラウドに気をつけろ!」と数年前から言って
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く