オンラインで開催された今回のAWS Summitでは多くのセッションが公開され、私はサーバレスサービス関連のセッションを視聴しました。 本コラムでは、AWSのサーバレスサービスを導入するためには、何が大切でどのような観点で検討すべきなのか、またサーバレスサービスはビジネスにどのようなメリットがあるのか、そのポイントについて解説します。
AWSのサーバレスサービスとは
AWSが提供するサーバレスサービスは、以下のようにさまざまな種類があります。
アプリケーション統合サービス
・AWS Step Functions:分散アプリケーションの調整
・Amazon Simple Queue Service(SQS):サーバレスアプリのためのメッセージキューイングサービス
・Amazon Simple Notification Service (Amazon SNS):発行者から受信者へのメッセージ配信を提供するマネージド型サービス
・Amazon API Gateway:規模に応じた API の作成、維持、保護が行えるフルマネージドなサービス
・AWS AppSync:GraphQL API の開発を容易にする、完全マネージド型サービス
データストアサービス
・Amazon Simple Storage Service(Amazon S3):オンラインストレージのWebサービス
・Amazon DynamoDB:完全マネージド型データベース
サーバレスサービスを導入するには
企業でAWSを導入される場合は、まずはオンプレ環境で運用していた基盤をクラウドにリフトされるケースが多いのではないでしょうか。AWSで物理的な既存サーバを仮想サーバへ置き換えることは簡単かもしれません。単純にAWSにシフトした後に、サーバレスに適した手法を検討、導入することで、運用作業も費用も削減できる場合があります。
さらに、新サービスの展開やソフトウェア更新などの保守作業でも、スピーディで可用性の高い展開が見込めるようになります。最新の環境を自動的に素早く展開できるので、システムの安定性も確保でき、新たなビジネスへ取り組む裾野を広げていくこともできます。
では、サーバレスサービスを導入するには、どのようなことを検討するべきなのでしょうか。まずは何を目指すのか導入の目的が大切です。その目的の実現のために、以下のようなさまざまな検討が必要になります。
まずは、以下を検討します。
・データの置き場所
・データ連携の方法
・デプロイ方式
次にサービスを選定しますが、その際に重要な選定ポイントがあります。
・サービスが処理毎に分解可能か?
・フローは適切なデータ連携方式が選定できるか?
・開発段階から継続的なテスト、デプロイを自動化できる仕組みになっているか?
AWSのサーバレスサービスには、サービス単体では実現できないものでも複数のサービスを組み合わせることで対応できるものや、既存で利用しているOSSを継続して連携できるもの等、さまざまなパターンがあります。その点がAWSの強みであり、難しい部分でもありますが、それぞれの環境に最適なサーバレスサービスを導入できる可能性が拡がります。
AWS Fargate/AWS Lambda
AWSにシフトした後にサーバレスサービスを導入しやすいコンピュートサービスは、AWS Fargate/AWS Lambdaなどがあります。この2つのサービスについて紹介します。
AWS Fargate(コンテナ向けサーバレスコンピューティング)
開発フロー改善を目指す場合にお勧めのサービスです。実行に必要なリソースのみ従量課金されるコンテナ向けサーバレスコンピューティングサービスです。データプレーンのECS(Amazon Elastic Container Service)およびEKS(Amazon Elastic Kubernetes Service)上で動作します。 AWS Fargate実行時には、適切なコンピューティング容量が割り当てられ、開発者はコンテナアプリケーションを動作させることで、従来の開発環境と比べてスピーディにアプリケーション設計/開発を進めることができます。
AWS Lambda(イベント発生時にコードを実行)
通常はサーバなどからコードを実行させますが、AWS Lambdaはサーバが不要で、AWSサービス上でコードを実行することができます。
Node.js、Java、Python、C#、Go、RubyなどのコードをAWS Lambda上に持ち込むことも可能で、Eclipse、Visual Studioなどのサードパーティプラグインも用意されています。コード実行の結果はCloudwatch Logsなどに出力され、X-Rayでのトレースも可能です。 AWS Lambdaはデータストア/エンドポイント/レポジトリ/イベントなどさまざまな他のAWSサービスと連携し、コード実行の呼び出しトリガーとして使用できるため、多くのAWSサービスを連結しているシステムに対し、中間のサーバレス実行基盤として柔軟性を持たせることができます。
サーバレスサービスの最適な導入や運用を検討するために
AWS Summitのセッションを視聴し、進化の激しい世の中においてスピーディにビジネスを展開していくには、サーバレスのアーキテクチャをシステムに組み込んでいくことが不可欠であると認識しました。 オンプレ環境で運用していた基盤をクラウドにリフトしたものの、まだクラウド導入に満足されていない企業の皆さまは、AWSのサーバレスサービスの導入を検討されてはいかがでしょうか。サーバレスを試してみたいけど何から始めればいいかわからない、サーバレスの利用を始めてみたがうまくいかない、サーバレスのアーキテクチャを理解し有効活用していきたいなど、ぜひ、AWSのサーバレスサービスを熟知した富士ソフトにお声がけください。
富士ソフト アマゾン ウェブ サービス (AWS)のご紹介