フルマネージド?サーバレス??その違いは一体…

こんにちは、ひるたんぬです。
10月も中頃を過ぎ、(個人的には)過ごしやすい季節となってきました。もう秋…ですかね?
ところで、、なぜ「〇〇の秋」という言葉だけ数多く存在するのでしょうか?
「〇〇の春」「〇〇の夏」「〇〇の冬」…なくはないですが、圧倒的に秋に関する用語が多いように感じます。
これについて明確な文献は見つけられなかったのですが、例えば「スポーツの秋」は1964年の東京五輪、「読書の秋」は中国の漢詩に由来するもの、「食欲の秋」は食べ物の旬の多くが秋にあるという説があるそうです。

さて、今回は技術的なお話とは少し逸れますが、私がある時からずーーっと気になっていた用語についてまとめようと思います。

今回の記事を執筆するにあたり、多くの記事や周りの方への聞き取りを実施いたしました。
聞き取りに対して、多くの方から回答やご意見をいただきました。この場を借りて御礼申し上げます。
本記事は、それらの結果を自分なりに解釈しまとめたものですので、正確性に欠ける箇所がある場合があります。

きっかけは…

弊社では先月より新人が各部署に配属され、部署ごとの研修が始まりました。
私はAWS研修のサポーターとして、新人のサポートや質問対応をしていました。
新人ならではの新鮮な視点からの質問に対して、(ときにネットを駆使しながら)なんとか対応していた私ですが、ある新人さんから次のような質問を受けました。

すみません、「フルマネージド」と「サーバレス」って何が違うんですか??
…確かに。
今まで各サービスの特徴や説明を見る中で、これらの表現は何度も見てきましたが、この2つの用語の使い方に対して何ら疑問を抱く機会はありませんでした。また、後日調べてみてもなかなか腑に落ちることができなかったので、この機会にまとめようと思い記事にしました。

それぞれの違いについて

まずはじめに、個人的に至った結論を以下にまとめます。
「フルマネージド」と「サーバレス」はベン図にまとめると下図の関係になります。

前提として「フルマネージド」だけど「サーバレス」でないサービスは存在しますが、「サーバレス」だけど「フルマネージド」でないサービスは存在しません。
つまり、「フルマネージド」を極めた先が「サーバレス」という形式になるのかなと思います。

言葉だけだと分かりづらい点も多いと思いますので、実際のケースを一つ挙げてみたいと思います。

AWSにおけるデータベース利用

AWSでは「データベースを扱いたい!」と思った際には用途や予算、目的に応じて適切なサービスを選定できるよう多くのサービスが提供されています。今回はこのユースケースを元にまとめてみようと思います。

【参考】Amazon EC2

公式サイトには、EC2について以下のような説明がされています。

事実上すべてのワークロードに対応する安全でサイズ変更が可能なコンピューティングキャパシティ
引用:AWS「Amazon EC2

つまり、どんなことにも使える汎用的なサービスだよ!ということですね。

EC2はいわゆるIaaSのサービスです。サーバ筐体そのものなどのハードウェア管理はAWS側が担っているものの、OSやアプリケーションといったソフトウェアのレイヤーは利用者が責任を持って管理をする必要性があります。また、どれくらいの性能のインスタンスを採用するか(インスタンスタイプを選択するか)も利用者側の判断に委ねられています。
EC2上に任意のデータベースエンジンを導入することでデータベースのサーバとして運用することは可能です。コスト面においてはサーバ利用料金のみのため安価で済む傾向がありますが、パッチ適用や暗号化、スケーリング、モニタリングなどを自身で設定する必要があるため、運用上のコストは大きくなってしまいます。

フルマネージドサービス:Amazon RDS

フルマネージドサービスのデータベースサービスの一つとして、Amazon RDSが挙げられます。

Amazon Relational Database Service (Amazon RDS) は、クラウド内でデータベースを簡単に設定、運用、スケールできるようにするマネージドサービスを集めたものです。(後略)
引用:AWS「Amazon RDS」 – 機能の説明

ここでは「マネージドサービス」と記載があります。一方で、Amazon RDSの特徴ページの一項目には、次のような記載があります。

フルマネージドのクラウドデータベースサービスとして、データベースのニーズを簡単に管理
引用:AWS「Amazon RDS – 特徴」 – 「デプロイ環境の選択」

Easily manage your database needs as a fully managed cloud database service
引用:AWS「Amazon RDS – Features」 – 「Choice of deployment environments」

英語のページについても確認しましたが、同じように表記が混ざっていました。
以上のことから、本記事では「マネージドサービス」と「フルマネージドサービス」は実質的には同一の意味を指し示していることとします。
ここで、マネジメントコンソールからRDSのデータベースを作成してみましょう。
代表的な項目は「エンジンのタイプ」と「インスタンスサイズ」の選択です。
Amzon RDSではEC2と異なり、OSの選択がなくなっております。これはOSレイヤーについては利用者は意識することがなくなった(AWSに管理を委任する)ことを意味しています。また、データベースのエンジンについても選択することで初期セットアップが実施されるため、利用者による作業は不要になっています。
RDSの一部のパッチ適用(データベースエンジンのメジャーアップグレード)については、互換性が損なわれる可能性があるため、手動で対応する必要があります。
参考:AWS ドキュメント「DB インスタンスのエンジンバージョンのアップグレード」
一方で、インスタンスサイズの指定などはまだ残っており、その点についてはEC2と同様に「これくらいの規模のサーバで動いているんだなぁ。。」となんとなく分かるようにはなっています。

サーバレス:Aurora Serverless・DynamoDB

Aurora ServerlessはAmazon RDSのデータベースエンジンの一つであるAmazon Auroraにおけるオンデマンド自動スケーリング設定です。
また、DynamoDBについては以下のような説明がされています。

あらゆる規模で一桁ミリ秒のパフォーマンスを実現する、サーバーレス NoSQL フルマネージドデータベース
引用:AWS「Amazon DynamoDB

上記の説明より、DynamoDBは「サーバレス」であり、「フルマネージド」サービスであることが分かります。
これらのサーバレスサービスを設定する場合、インスタンスタイプはどのようになっているのでしょうか?
先程のAmazon RDSでAmazon Auoraを選択し、Serverlessオプションを選択してみましょう。

選択できる項目が一つに減りましたね。
これにより、サーバレスなサービスではOSレイヤーの管理に加え、キャパシティ管理もAWS側に委任することができます。

おわりに

今回は少々技術的な内容とは逸れてしまいましたが、個人的に気になっていた「フルマネージドサービス」と「サーバレス」の違いについて、理解を深めることができました。新人の方には、改めてこの場を借りて御礼申し上げます。

一方で、「マネージドサービス」と「フルマネージドサービス」については、本記事では同一のものとして取り扱いましたが、表記が異なるものが存在するのも事実です。これらに厳密には違いがあるよ、ということが分かる有識者の方がいらっしゃいましたら是非ご教示ください。。

参考サイト

今回の記事を執筆するにあたり、私が参考にしたサイトや有識者の皆様から教えていただきました記事を以下に列挙いたします。技術的な内容ではない(業界用語である)ため、参考サイトはAWSに限定しておりません。

著者について

2024 Japan AWS Jr. Champions
ANGEL Dojo 2024 | ベストアーキテクチャ賞 2位

ひとこと:
同期に「おじさん」とよく言われます。なぜなのでしょうか…

Yusuke HIRUTAをフォローする

クラウドに強いによるエンジニアブログです。

SCSKクラウドサービス(AWS)は、企業価値の向上につながるAWS 導入を全面支援するオールインワンサービスです。AWS最上位パートナーとして、多種多様な業界のシステム構築実績を持つSCSKが、お客様のDX推進を強力にサポートします。

AWSクラウド
シェアする
タイトルとURLをコピーしました