サーバーレスコンピューティングにより、アプリケーションとサービスを構築して実行する際に、サーバーについて検討する必要がなくなります。サーバーレスコンピューティングを使用すると、サーバーでアプリケーションを実行しながらも、サーバーの管理はすべて AWS によって行われます。サーバーレスコンピューティングの中核となるのは AWS Lambda です。これにより、コードを実行する際のサーバーのプロビジョニングや管理は必要なくなります。Lambda を使用すると、実質的にどのようなタイプのアプリケーションやバックエンドサービスに対してもコードを実行できます。高可用性を実現しながら、コードを実行およびスケールするために必要なことはすべて Lambda によって処理されます。
AWS Lambda では、毎回のトリガーに対応してコードを実行することにより、自動的にアプリケーションをスケールします。コードは並行して実行され、トリガーごとに個別に処理され、ワークロードのサイズに合わせて正確にスケールされます。
AWS Lambda では、コードが実行される 100 ms ごと、およびコードがトリガーされた回数に対して課金されます。コードが実行されていないときは、料金がまったく発生しません。
サーバーレスコンピューティングによってスケーラブルでコスト効率の優れたアプリケーションを構築でき、そのスケールアップやスケールダウンは自動的に行われ、サーバーのプロビジョニングやスケーリング、管理は必要ありません。AWS Lambda を使用してアプリケーションのコードを実行すると、Lambda によって、Amazon S3 バケットや Amazon DynamoDB テーブル内のデータへの HTTP リクエストや変更などのイベント発生時に、コードがトリガーされます。コード実行の時間、およびコードがトリガーされた回数に対して課金されます。Lambda はお客様のワークロードのサイズに合わせて正確にスケールされるため、無駄なコンピューティングの料金が発生しません。
また、AWS では、さまざまな完全マネージド型サービスを使用でき、Lambda と連携してサーバーレスアプリケーションを構築できます。これらのサービスによって、データベース層とストレージ層をアプリケーションに追加したり、モバイルデバイスや IoT デバイスからの接続とメッセージの管理ができます。これらのサービスを Lambda と併用して、サーバーのプロビジョニングおよび維持やデータベースの管理を必要としないアプリケーションを構築できます。アプリケーションの耐障害性や可用性を心配する必要はもうありません。それどころか、AWS のこのような機能すべてを使用すると、お客様は製品のイノベーションと、より速い市場投入に集中できるようになります。
規模に応じたサーバーレスアプリケーションを供給するには、さまざまな機能を持ったプラットフォームが必要です。ここでは、サーバーレスコンピューティングを使用してエンタープライズクラスのアプリケーション構築を AWS がどのようにサポートするかを示します。
AWS Lambda は、相互に関連するインスフラストラクチャリソースとウェブ API すべてに対するコントロールプレーンおよびロジックレイヤーとして機能するため、お客様のビジネスロジックを強化できます。
オープンソースの AWS サーバーレスアプリケーションモデルを使用して、サーバーレスアプリケーションおよびサービスをモデル化し、デプロイします。AWS CodePipelineやAWS CodeBuildのようなアプリケーションライフサイクル管理ツールを使用して、サーバーレスアプリケーションを継続的に供給します。
Slack、Algorithmia、Twilio、Loggly、Splunk、Sumo Logic などの一般的なサードパーティサービスとの統合使用を簡単にする、再利用可能なテンプレートや設計図を使って、すぐに始めることができます。
コンプライアンスを遵守し、ロギング、変更の追跡、アクセスコントロール、暗号化によって、お客様の IT 環境全体を保護します。AWS Identity and Access Management (IAM) によって、AWS リソースへのアクセスを安全に制御します。Amazon Virtual Private Cloud (VPC) を用いて、お客様のみがアクセスできるプライベート仮想ネットワークを構築します。
AWS の世界展開を活用して、お客様のアプリケーションとサービスを短時間で世界に展開できます。AWS Lambda は、複数の AWS リージョン および Lambda@Edge 経由のすべての AWS エッジロケーションで使用できます。また、AWS Greengrass にローカルで接続されたデバイスで Lambda 関数を実行できます。
AWS では、拡張性の高いサーバーレスアプリケーションおよびサービスの構築に使用できる、さまざまな完全マネージド型サービスを利用できます。サーバーレスコンピューティングを使用して、モバイルバックエンドからストリーミングデータプロセッサに至るまで、すべてのものを構築できます。
AWS Lambda を使用することで、サーバーのプロビジョニングや管理をすることなく、コードを実行できます。課金は実際に使用したコンピューティング時間に対してのみ発生し、コードが実行されていないときは料金が発生しません。コードをアップロードするのみで、高可用性を実現しながらコードを実行およびスケールするために必要なことはすべて Lambda によって処理されます。
Amazon Simple Storage Service (Amazon S3) では、安全で耐久性があり拡張性の高いオブジェクトストレージを、開発者や IT チームに提供しています。Amazon S3 は、シンプルなウェブサービスインターフェイスにより、ウェブのどこからでもお好みの量のデータを簡単に保存および取得できます。
Amazon DynamoDB は、1 桁台のミリ秒単位のレイテンシーを必要とするすべての規模のアプリケーションに対応した高速かつフレキシブルな NoSQL データベースサービスです。完全マネージド型のクラウドデータベースで、ドキュメントとキー値のストアモデルの両方をサポートしています。
Amazon API Gateway は完全マネージド型サービスであり、開発者があらゆる規模で API の作成、配布、保守、モニタリング、保護を簡単に行うために役立ちます。Amazon API Gateway を使用すると、数十万の同時の API コールを処理し、トラフィック管理、認証とアクセス管理、モニタリング、API バージョン管理を実行できます。
Amazon Kinesis は、AWS のデータをストリーミングするプラットフォームです。また、ストリーミングデータのロードと分析を簡易化する強力なサービスや、特定のニーズに対応させたカスタムのストリーミングデータアプリケーションを作成する機能を提供します。
Amazon SNS は、高速で、柔軟性に優れた、完全マネージド型の pub-sub メッセージングサービスです。Amazon SNS は、通知、メール、SMS メッセージをプッシュするクラウドベースのモバイルアプリケーション通知サービスとして、またはエンタープライズメッセージングインフラストラクチャとして使用できます。Amazon SQS は、高速で、信頼性が高く、スケーラビリティに優れた、完全マネージド型のメッセージキューサービスです。SQS を利用すると、簡単かつコスト効率良く、クラウドアプリケーションのコンポーネントを切り離すことができます。
AWS Step Functions により、視覚的なワークフローを使用して分散アプリケーションとマイクロサービスのコンポーネントを簡単に調整できます。それぞれ別個の機能を実行する個々のコンポーネントからアプリケーションを構築することで、簡単にアプリケーションをスケールおよび変更できるようになります。Step Functions を使えば、安心してコンポーネントを調整し、アプリケーションの機能を配置できます。
サーバーレスアーキテクチャを使用すると、実質的にどのようなタイプのアプリケーションやバックエンドサービスでも構築することができます。
以下にいくつかのユースケースをご紹介します。
AWS Lambda、Amazon API Gateway、Amazon S3、Amazon DynamoDB を使用して、サーバーレスのウェブアプリケーションやバックエンドを構築して、ウェブ、モバイル、IoT、チャットボットのリクエストを処理できます。
Bustle では、AWS Lambda と Amazon API Gateway を使用して、Bustle iOS アプリケーションとウェブサイトのサーバーレスバックエンドを実行します。サーバーレスアーキテクチャでは、Bustle でインフラストラクチャを管理する必要はまったくないため、すべてのエンジニアは新しい機能の構築や新規開発に集中できます。導入事例を読む »
AWS Lambda、Amazon Kinesis、Amazon S3、Amazon DynamoDB を使用して、さまざまなリアルタイムデータ処理システムを構築できます。
The Seattle Times は AWS Lambda を使用して画像をリサイズし、デスクトップコンピュータ、タブレット、スマートフォンなどの異なるデバイスでの閲覧に対応しています。導入事例を読む »
Benchling では、サーバーレスアーキテクチャを使用して、規模に応じたゲノムデータの解析を処理しています。処理時間は 90% 削減されました。処理時間の削減により、科学者は自身のプラットフォームを使用して、より多くの時間を研究に集中して使えます。導入事例を読む »