Amazon Web Services ブログ

Tag: AWS SAM

AWS-SaaS-Factory-1

マルチテナントソリューションでAmazon SQSを使う

AWS SaaS Factoryチームのシニアパートナーソリューションアーキテクト Raju Patel によって書かれた記事です。 モダンアプリケーションは、サービス統合、バッチ処理、またはワークフローオーケストレーションの一部として、キューイングに依存することがよくあります。キューは、システムの環境に拡張性と耐障害性を追加するうえ重要です。 これは、キューイング戦略をマルチテナントソリューションのワークロードにどのように適用するかを考える必要がある、Software-as-a-Service(SaaS)環境では特に当てはまります。SaaS アプリケーションのキューイングモデルを設計する際には、データの分離、パフォーマンス、および運用を考慮する必要があります。 多くの組織がアマゾンウェブサービス (AWS) 上で SaaS ソリューションを構築および運用する過程において、筆者は AWS SaaS Factory のパートナーソリューションアーキテクトとして彼らと連携をしてきました。特に、テナントの分離とスケーラビリティを考慮しつつ、俊敏性を高めるマルチテナントソリューションの構築において組織を支援することにフォーカスしています。 この記事では、Amazon Simple Queue Service (SQS) を利用して SaaS ソリューションを構築する際の一般的なシナリオをいくつか紹介します。ここでは、データ分離、スケーラビリティ、コンプライアンス要件が、キューイングモデルの選択にどのように関係するかを説明します。 本投稿には、マルチテナントソリューションでの SQS の利用について示すサンプルコードが含まれています。 SaaS におけるキューイングの課題 SaaS 環境におけるキューの役割について理解を深めるために、サンプルユースケースを見てみましょう。図 1 に示す概念図は、キューを使用する注文管理システムの一例です。 図 1 – キューを用いた注文管理と在庫更新のフロー 最初のフローは、注文、作成、確定、出荷の各サービスの統合を示しています。注文キューと出荷キューは、複数のテナントからメッセージを受信します。注文確定や注文出荷などのサービスは、Amazon Elastic Kubernetes Service (Amazon EKS) のコンテナで実行することも、AWS Lambda でサーバーレスで実行することもできます。 図 1 の 2 番目のフローは在庫の更新についてです。このフローでは、テナントがファイルをアップロードし、メッセージがキューに配置されて処理されます。バッチによる在庫更新プロセスでメッセージが取得され、ファイルから在庫テーブルにデータがロードされます。 キューの構成は比較的単純ですが、マルチテナンシーでは追加の考慮事項がいくつかあり、それらはキュー設計に影響を与える可能性があります。 たとえば、あるテナントが […]

Read More
Lambda

コンテナイメージ内でLambda レイヤーと拡張機能を動作させる

この記事では、コンテナーイメージとしてパッケージ化され、デプロイされた Lambda 関数で AWS Lambda レイヤーと拡張機能を使用する方法について説明します。 以前はLambda 関数は.zip アーカイブとしてのみパッケージされていました。これにはAWS マネジメントコンソールで作成された関数が含まれます。今はLambda 関数をコンテナイメージとしてパッケージ化およびデプロイすることもできるようになりました。 Docker CLI などの使い慣れたコンテナーツールを Dockerfile を使用してイメージをローカルで構築、テスト、タグ付けすることができます。コンテナイメージを使用したLambda 関数は 10 GBのサイズまで構築することが可能です。構築したイメージはAmazon Elastic Container Registry(ECR)リポジトリにプッシュします。このリポジトリは、AWSのフルマネージドなコンテナイメージレジストリサービスです。レジストリからECRイメージ URL をソースコードとして指定し、Lambda 関数を作成します。

Read More