DevOps
AWS クラウド
AWS の使用を開始する

サーバーレスコンピューティングにより、アプリケーションとサービスを構築して実行する際に、サーバーについて検討する必要がなくなります。サーバーレスコンピューティングを使用すると、サーバーでアプリケーションを実行しながらも、サーバーの管理はすべて AWS によって行われます。サーバーレスコンピューティングの中核となるのは AWS Lambda です。これにより、コードを実行する際のサーバーのプロビジョニングや管理は必要なくなります。Lambda を使用すると、実質的にどのようなタイプのアプリケーションやバックエンドサービスでもコードを実行できます。高可用性を実現しながら、コードを実行およびスケールするために必要なことはすべて Lambda によって処理されます。

詳細については、近日開催予定の Tech Talk にご参加ください。

100x100_benefit_code-quality

AWS Lambda ではコードを自動的に実行します。サーバーのプロビジョニングや管理は必要ありません。必要なのは、コードを書いて Lambda にアップロードすることのみです。

100x100_benefit_increase-upward1

AWS Lambda では、毎回のトリガーに対応してコードを実行することにより、自動的にアプリケーションをスケールします。コードは並行して実行され、トリガーごとに個別に処理され、ワークロードのサイズに合わせて正確にスケールされます。

100x100_benefit_performance

AWS Lambda では、コードが実行される 100 ms ごと、およびコードがトリガーされた回数に対して課金されます。コードが実行されていないときは、料金がまったく発生しません。

サーバーレスコンピューティングによってスケーラブルでコスト効率の優れたアプリケーションを構築でき、そのスケールアップやスケールダウンは自動的に行われ、サーバーのプロビジョニングやスケーリング、管理は必要ありません。AWS Lambda を使用してアプリケーションのコードを実行すると、Lambda によって、Amazon S3 バケットや Amazon DynamoDB テーブル内のデータへの HTTP リクエストや変更などのイベント発生時に、コードがトリガーされます。コード実行の時間、およびコードがトリガーされた回数に対して課金されます。Lambda はお客様のワークロードのサイズに合わせて正確にスケールされるため、無駄なコンピューティングの料金が発生しません。

また、AWS では、さまざまな完全マネージド型サービスを使用でき、Lambda と連携してサーバーレスアプリケーションを構築できます。これらのサービスによって、データベース層とストレージ層をアプリケーションに追加したり、モバイルデバイスや IoT デバイスからの接続とメッセージの管理ができます。これらのサービスを Lambda と併用して、サーバーのプロビジョニングおよび維持やデータベースの管理を必要としないアプリケーションを構築できます。アプリケーションの耐障害性や可用性を心配する必要はもうありません。それどころか、AWS のこのような機能すべてを使用すると、お客様は製品のイノベーションと、より速い市場投入に集中できるようになります。

規模に応じたサーバーレスアプリケーションを供給するには、さまざまな機能を持ったプラットフォームが必要です。ここでは、サーバーレスコンピューティングを使用してエンタープライズクラスのアプリケーション構築を AWS がどのようにサポートするかを示します。

クラウドロジックレイヤー

AWS Lambda は、相互に関連するインスフラストラクチャリソースとウェブ API すべてに対するコントロールプレーンおよびロジックレイヤーとして機能するため、お客様のビジネスロジックを強化できます。

オーケストレーションと状態管理

AWS Step Functions を使用して、サーバーレスアプリケーションを分散させたコンポーネントやマイクロサービスのそれぞれの状態を調整、管理します。

応答データソース

さまざまなデータソースとプロバイダから、リアルタイムでデータを処理してイベントをトリガーする組み合わせを選びます。応答データソースの一覧はドキュメントを参照してください。

アプリケーションのモデリングフレームワーク

オープンソースの AWS サーバーレスアプリケーションモデルを使用して、サーバーレスアプリケーションおよびサービスをモデル化し、デプロイします。AWS CodePipelineAWS 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 を使用してアプリケーションを運用する方法については、お客様事例を参照してください。

世界的な規模と展開

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 データベースサービスです。完全マネージド型のクラウドデータベースで、ドキュメントとキー値のストアモデルの両方をサポートしています。

API プロキシ

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 X-Ray を使用すると、開発者は、本番環境や分散アプリケーション (マイクロサービスアーキテクチャを使用して構築されたアプリケーションなど) の分析とデバッグができます。X-Ray により、アプリケーションや基盤となるサービスの動作を把握できます。それにより、パフォーマンスの問題やエラーの根本原因を確認し、トラブルシューティングすることができます。

サーバーレスアーキテクチャを使用すると、実質的にどのようなタイプのアプリケーションやバックエンドサービスでも構築することができます。
以下にいくつかのユースケースをご紹介します。
 

AWS Lambda、Amazon API Gateway、Amazon S3、Amazon DynamoDB を使用して、サーバーレスのウェブアプリケーションやバックエンドを構築して、ウェブ、モバイル、IoT、チャットボットのリクエストを処理できます。

例: ウェブアプリケーションのリファレンスアーキテクチャ: | サンプルコード

Lambda_WebApplications

例: モバイルバックエンドのリファレンスアーキテクチャ: | サンプルコード

Lambda_MobileBackends
Lambda_Bustle

Bustle では、AWS Lambda と Amazon API Gateway を使用して、Bustle iOS アプリケーションとウェブサイトのサーバーレスバックエンドを実行します。サーバーレスアーキテクチャでは、Bustle でインフラストラクチャを管理する必要はまったくないため、すべてのエンジニアは新しい機能の構築や新規開発に集中できます。導入事例を読む »

AWS Lambda、Amazon Kinesis、Amazon S3、Amazon DynamoDB を使用して、さまざまなリアルタイムデータ処理システムを構築できます。

例: データ処理のリファレンスアーキテクチャ: | サンプルコード

Lambda_FileProcessing
Lambda_SeattleTimes

The Seattle Times は AWS Lambda を使用して画像をリサイズし、デスクトップコンピュータ、タブレット、スマートフォンなどの異なるデバイスでの閲覧に対応しています。導入事例を読む »


例: リアルタイムストリーミングデータのリファレンスアーキテクチャ: | サンプルコード 

Lambda_StreamProcessing
serverless-benchling

Benchling では、サーバーレスアーキテクチャを使用して、規模に応じたゲノムデータの解析を処理しています。処理時間は 90% 削減されました。処理時間の削減により、科学者は自身のプラットフォームを使用して、より多くの時間を研究に集中して使えます。導入事例を読む »