CLF / ドメイン3 クラウドテクノロジーとサービス
重要な内容
AWS Lambda
は、サーバーを用意せずにコードを実行できるのコンピューティングサービスです。 コードを「関数」という単位で登録しておくと、イベントの発生に応じて自動的に実行されます。
CLFでは、サーバーレスの意味、の仕組み、料金の考え方、他のコンピューティングサービスとの使い分けを判断できることが重要です。
Point
- Lambda(ラムダ) はギリシャ文字のλに由来し、プログラミングでは「小さな関数」を表す言葉として使われます。
- Serverless(サーバーレス) は「サーバーが存在しない」のではなく、「利用者がサーバーを管理しなくてよい」という意味です。
- 試験で「サーバーを管理せずにコードを実行」と出たら、まずLambdaを考えます。
- 和訳
- Serverless: サーバーレスの、サーバー不要の
- Weblio英和辞書「serverless」
概要
を使うと、の構築やの管理をせずに、書いたコードをそのままAWS上で実行できます。 サーバーの調達、OSのパッチ適用、需要に応じたスケーリングはAWSが担当するため、利用者はコードの作成に集中できます。
Lambdaで実行するコードは関数という単位で管理します。 代表的な使い道は、にアップロードされた画像の自動変換、と組み合わせたWeb の処理、スケジュールに合わせた定期処理などです。
CLFでは、細かい実装方法よりも「サーバー管理なしでコードを実行したいならLambda」「イベントに反応して短時間の処理を動かすならLambda」と判断できることが重要です。
主要技術
①サーバーレスの概念と責任共有モデル
では、利用者がサーバーの台数や性能を意識する必要がありません。 では、インフラの管理、キャパシティの確保、スケーリング、実行環境のパッチ適用をAWSが行います。 利用者が管理するのは、コードそのもの、関数の設定、データ、によるアクセス権限です。
| 担当 | 主な責任 | 具体例 |
|---|---|---|
| AWS | クラウド自体のセキュリティと基盤運用 | 物理インフラ、実行環境の、ランタイムのパッチ適用、スケーリングを担当します。 |
| 利用者 | クラウド内のセキュリティ | 関数のコード、扱うデータ、IAMの権限設定を管理します。 |
ではゲストOSのパッチ適用が利用者の責任でしたが、LambdaではOSやランタイムの管理までAWSが担当します。 抽象度の高いサービスほど、利用者の管理範囲が狭くなるという関係を押さえます。
⚠️ 頻出: LambdaではOSのパッチ適用はAWSの責任、コードとIAM権限の管理は利用者の責任です。「利用者がOSを管理するか」がEC2との大きな違いです。
②イベント駆動とトリガー
関数は、常に起動して待ち続けるのではなく、イベントの発生をきっかけに実行されます。 この仕組みをと呼び、実行のきっかけになる設定をトリガーと呼びます。
| トリガーの例 | 起きるイベント | 用途の例 |
|---|---|---|
| オブジェクトのアップロード | 画像のサムネイル作成、ファイルの自動処理です。 | |
| リクエストの受信 | なWeb のバックエンド処理です。 | |
| スケジュールやAWS上のイベント | 定期実行、サービス間のイベント連携です。 | |
| キューへのメッセージ到着 | メッセージの非同期処理です。 |
Point
- Event-driven(イベント駆動) は、「何かが起きたときに処理を動かす」方式です。
- Trigger(トリガー) は「引き金」という意味で、関数を実行するきっかけを指します。
- 和訳
- Trigger: 引き金、きっかけ
- Weblio英和辞書「trigger」
⚠️ 頻出: 「S3にファイルが置かれたら自動で処理したい」「イベントに応じてコードを実行したい」は、Lambdaのイベント駆動の典型例です。
③料金の考え方
はのサービスで、料金は主にリクエスト数(関数が実行された回数)と実行時間で決まります。 実行時間の料金は、関数に割り当てたメモリ量にも比例します。
| 料金に影響する要素 | 内容 |
|---|---|
| リクエスト数 | 関数が呼び出された回数です。 |
| 実行時間 | コードが実際に動いていた時間です。 |
| メモリ割り当て | 割り当てるメモリが大きいほど、実行時間あたりの料金が上がります。 |
重要なのは、コードが実行されていない間は料金が発生しないことです。 ではインスタンスが起動している限り、処理がなくても料金が発生しますが、Lambdaにはアイドル時のコストがありません。 そのため、たまにしか動かない処理や、リクエスト量の変動が大きい処理でコスト効率を高めやすくなります。
⚠️ 頻出: 「使った分だけ支払いたい」「アイドル時のコストをなくしたい」「サーバーの稼働時間ではなく実行した分だけ課金」という問題文は、Lambdaを選ぶ強いヒントです。
④実行時間の上限と向いている処理
関数の1回の実行時間には上限があり、最大15分までです。 このため、Lambdaはイベントに応じた短時間の処理に向いており、長時間動き続ける処理には向きません。
| 処理の特徴 | Lambdaとの相性 | 判断ポイント |
|---|---|---|
| イベントに応じた短時間の処理 | 向いています | 画像変換、通知、データの加工などです。 |
| リクエスト量が大きく変動する処理 | 向いています | 自動スケーリングとアイドルコストなしが活きます。 |
| 15分を超える長時間の処理 | 向いていません | やサービスの利用を検討します。 |
| 常時稼働するアプリケーション | 向いていません | 常に動くサーバーが必要ならEC2などを選びます。 |
⚠️ 頻出: 「数時間かかるバッチ処理」「常時稼働」という条件が出たら、Lambdaではなく他のコンピューティングサービスを考えます。
⑤他のコンピューティングサービスとの選択基準
コンピューティングサービスは、利用者がどこまで管理したいか、どんな単位で実行したいかで選びます。 は最も管理範囲が狭く、コードだけを持ち込む選択肢です。
| サービス | 実行単位 | 利用者が管理する範囲 | 判断ポイント |
|---|---|---|---|
| AWS Lambda | 関数(コード) | コードと設定のみ | サーバー管理なしで、イベントに応じた短時間の処理を実行したい場合です。 |
| 、ミドルウェア、アプリケーション | OSへのアクセスや柔軟なサーバー構成が必要な場合です。 | ||
| と | コンテナイメージとタスク設定 | コンテナ化したアプリケーションを実行したい場合です。Fargateを使うとサーバー管理が不要になります。 | |
| アプリケーション | アプリケーションのコード | Webアプリケーションのデプロイと環境構築をまとめて任せたい場合です。裏側ではEC2などが起動します。 |
Point
- Fargate(ファーゲート) は、コンテナ用のサーバーレス実行基盤です。「コンテナ版のサーバーレス」と覚えます。
- Elastic Beanstalk(エラスティック ビーンストーク) のBeanstalkは「豆の木」という意味で、コードを渡すと環境が自動で育つイメージで覚えます。
- Lambdaはコード(関数)、Fargateはコンテナ、Elastic BeanstalkはWebアプリケーション一式を持ち込む、と単位の違いで整理します。
同じでも、実行したいものがコードならLambda、コンテナならFargateです。 また、Elastic Beanstalkはデプロイを簡単にするサービスであり、裏側のEC2インスタンスは存在するため、Lambdaのようなアイドルコストなしにはなりません。
試験対策
CLFの問題では、まず「サーバーを管理したいか、したくないか」を確認します。 サーバー管理なしでコードを実行したいならが有力です。 次に、処理時間、実行のきっかけ、コストの要件を確認します。
| 問題文のキーワード | 優先して考えるサービス・機能 | 理由 |
|---|---|---|
| サーバーを管理せずにコードを実行 | AWS Lambda | のコンピューティングサービスです。 |
| へのアップロードをきっかけに処理 | Lambda + S3トリガー | で自動実行できます。 |
| 使った分だけ支払う、アイドルコストなし | AWS Lambda | リクエスト数と実行時間によるです。 |
| 決まった時間にコードを定期実行 | Lambda + | スケジュールをトリガーにできます。 |
| サーバーレスなWeb のバックエンド | Lambda + | リクエストに応じて関数を実行できます。 |
| に直接アクセスして細かく設定 | Lambdaでは利用者がOSを管理できません。 | |
| サーバー管理なしでを実行 | コンテナ向けのサーバーレス実行基盤です。 | |
| 数時間かかる処理、常時稼働 | EC2やコンテナサービス | Lambdaの実行時間には上限があります。 |
よくある混同は、Lambda、EC2、Fargateの使い分けです。 「コードを実行」ならLambda、「」ならEC2、「コンテナ」ならやFargateという実行単位の違いで判断します。
また、「サーバーレス = Lambdaだけ」と考えるのも誤りです。 Fargateやなど、サーバー管理が不要なサービスは他にもあります。 問題文が「コードの実行」を求めているときにLambdaを選びます。