第13章. サーバーレス技術
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
サーバーレス(Serverless)という言葉は、最近のIT業界で大きな話題を呼んでいる。この種の用語ではよくあることだが、実際の意味については人によって意見が分かれる。額面通り、サーバーレスは、もうサーバーの管理を心配する必要のない世界を意味する。ある程度はその通りだが、それはサーバーレス技術が提供する機能を利用する開発者だけの話だ。この章では、サーバレスという魔法のような世界が実現するためには、舞台裏で多くの作業が必要であることを示している。
多くの人は、サーバーレスという言葉をFunction as a Service(FaaS)と同一視している。これは部分的には真実であり、そのほとんどはAWSが2015年にLambdaサービスを開始したときに生まれた。AWSのLambdaは、関数をホストする従来のサーバをデプロイすることなく、クラウド上で実行できる関数だ。これがサーバーレスという言葉の由来だ。
しかし、サーバーレスと呼ばれるサービスはFaaSだけではない。最近では、パブリッククラウドプロバイダのビッグ3(Amazon、Microsoft、Google)はすべて、コンテナ・アズ・ア・サービス(CaaS)を提供しており、コンテナをホストするサーバをプロビジョニングすることなく、本格的なDockerコンテナを自社のクラウドにデプロイすることができる。これらのサービスはサーバーレスとも呼びうる。このようなサービスのインスタンスには、AWS Fargate、Microsoft Azure Container Instances、Google Cloud Runがある。
サーバーレス・テクノロジーのユースケースにはどのようなものがあるか?AWS LambdaのようなFaaS技術では、特にLambda関数が他のクラウドサービスからトリガーされるイベント駆動型のため、次のようなユースケースがある:
-
ETL(Extract-Transform-Load)データ処理。例として、ファイルがS3にアップロードされ、それをトリガーにLambda関数が実行され、データに対してETL処理が行われ、キューやバックエンドデータベースに送られる。
-
他のサービスからCloudWatchに送信されたログのETL処理
-
Lambda関数をトリガーするCloudWatchイベントに基づいて、cronのような方法でタスクをスケジューリングする
-
Lambda関数をトリガーするAmazon SNSに基づくリアルタイム通知
-
LambdaとAmazon SESを使ったメール処理
-
Javascript、CSS、HTMLなどの静的WebリソースはS3に保存され、CloudFront CDNサービスによってフロント処理される。REST APIはAPIゲートウェイによって処理され、APIリクエストをLambda関数にルーティングし、Lambda関数はAmazon RDSやAmazon DynamoDBなどのバックエンドと通信する。
多くのサーバーレスのユースケースは、各クラウドサービスプロバイダのオンラインドキュメントに記載されている。例えば、Google Cloudのサーバーレス・エコシステムでは、ウェブアプリケーションはGoogle AppEngineで、関数はGoogle Functionsで、Dockerコンテナでプロセスを実行するにはCloudRunが最適だ。具体的な例として、TensorFlowフレームワークでオブジェクト検出などのマシン学習タスクを実行する必要があるサービスを考えてみよう。FaaSのコンピューティング、メモリ、ディスクリソースの制限と、FaaSセットアップでのライブラリの利用可能性の制限から、Google ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access