マイクロサービスをサーバレスで構築するのが適しているケースとは?:コンテナで構築するのと何が違うのか
マイクロサービスをコンテナとサーバレスのどちらで運用するかはどのように決めればよいのか。その決定を大きく左右するのは、そのマイクロサービスで何を実行するかだ。
マイクロサービスアプリケーションの設計や構築に当たっては、コンテナを使ってマイクロサービスをデプロイするのが自然な流れだ。コンテナは、そのスケーラビリティと、まとまりのある1つのアプリケーションアーキテクチャの一部として独立したサービスをホストできる能力から、マイクロサービスを構築する際のデファクトソリューションになっている。
だが、マイクロサービスの少なくとも一部をサーバレスとして運用する方が理にかなっている場合もある。
サーバレスとコンテナの違い
サーバレスとは、開発者がソフトウェアの実行をオンデマンドでトリガーできるデプロイメントモデルを指す。Amazon Web Services(AWS)の「AWS Lambda」やMicrosoftの「Azure Functions」などのサーバレスプラットフォームを利用すれば、サーバをプロビジョニングする必要なく、実行予定のコードをアップロードできる。Kubernetesクラスタ内でサーバレスを運用可能にする「Knative」などのフレームワークを使っても、同じことが可能になる。
事前に構成した条件を満たすたびに、サーバレスプラットフォームによってコードが自動的に実行される。コードはいったん呼び出されると完了するまで実行される。その後停止され、サーバレスプラットフォームから再び呼び出されるまで待機する。ほとんどの場合、サーバレスサービスはコードの実行時間に基づいて課金される。つまり、実行に費やした時間にしか料金が掛からない。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 「マイクロサービスアーキテクチャ」と「ヘッドレスアーキテクチャ」の共通点と違いは? どちらを選べばよいのか
アプリケーション開発や運用に柔軟性を与えるマイクロサービスアーキテクチャやヘッドレスアーキテクチャはどこが違うのか? アプリケーションを構築する際、どちらを採用すべきなのか。 - 3層アーキテクチャとマイクロサービスアーキテクチャ、どちらを選ぶべきか
3層アーキテクチャとマイクロサービスアーキテクチャを細かく比較し、どちらをいつ使用するかを考える。 - 「Amazon Prime Video」が監視ツールをマイクロサービスからモノリスに移行 “やむにやまれぬ”理由とは?
Amazon.comは、同社が提供する「Amazon Prime Video」の監視ツールをマイクロサービスアーキテクチャからモノリシックなアーキテクチャに移行したと明らかにした。