AWSは、最大のシェアを誇るクラウドサービス事業者です。AWSではサービス製品をカテゴリー分けし、コンピューティング・ストレージ・データベース・分析・ネットワーキング・モバイル・デベロッパー用ツール・管理ツール・IoT・セキュリティ・エンタープライズアプリケーションなどの製品をサービスとして利用することが可能です。
その提供サービスは豊富で、業務に必要なコンピュータ資源を必要な分だけ利用しサービス提供を受けることが可能です。 参考:AWS クラウド製品
サーバーレスとは決してサーバーがない環境ではありません。サーバーの存在を意識せずに必要なサービスを利用するコンピューティング環境を指します。
従来型ではシステムの設計をするにあたり規模を見積もり、可用性やデータ保全を考慮した設計が必要でした。サーバーレス設計では自動的なスケールや可用性を高めるリトライ処理が標準提供されますので、設計難易度が低減されます。何といってもサーバーの初期準備やOS保守が不要になる点が1番の特徴となります。
代表的なサーバーレスの導入メリットとして、以下の4点が挙げられます。
1. サーバー管理が不要 クラウドサービスでサーバーを利用する場合は、サーバーやストレージの選定および初期セットアップが必要です。サーバーレスでは、必要なコードを準備するだけでイベントに応じてサーバーが割り当てられます。
2. 処理に応じた柔軟なスケーリング クラウドサービスでは、事前にサイジングを行い必要なインスタンスを確保します。サーバーレスでは、自動的に処理に応じたコンピュータ資源およびメモリー量が確保されます。
3. 高可用性への対応 クラウドサービスでは、エラー処理等をアプリケーションやシステム間で検討する必要があります。サーバーレスでは、リトライ処理やイベントに応じた処理を設定することでマニュアル作業を削減することが可能です。
4. コンピュータ資源未使用時のリソース確保が不要 クラウドサービスでは、サービス利用契約に基づきコンピュータ資源を確保する必要があります。サーバーレスでは、イベントに応じてコンピュータ資源が割り当てられますので、繁閑の差や特定時間に処理が集中する場合にコスト最適化が期待できます。
以上の点をまとめると、サーバーレスでは従来必要であった作業量が削減できること・導入時間が短縮できること・費用適正化が図られることがメリットといえるでしょう。
AWSではサーバーレスサービスとして、AWS Lambda並びにAWS Fargateを提供しています。また、サーバーレスサービスと連携するためのアプリケーション統合サービスとして、以下のサービスが提供されています。 ・Amazon EventBridge ・AWS Step Functions ・Amazon SQS ・Amazon SNS ・Amazon API Gateway ・AWS AppSync
同様にデータストアとして、以下のサービスがサーバーレスサービスと連携します。 ・Amazon S3 ・Amazon DynamoDB ・Amazon RDSプロキシ ・Amazon Aurora Serverless 参考:AWS でのサーバーレス
以降で、AWS LambdaおよびAWS Fargateの概要と料金体系について説明していきます。
AWS Lambdaは、AWS製品サービスのカテゴリーでサーバーレスカテゴリーに属するサービスです。つまり、サーバーのプロビジョニングや管理等を行わずに必要なコード(処理)を実行できます。実行は、イベントを定義することでコンピュータ資源を用いで自動的に実行してくれるのが特徴です。
AWS Lambdaは、使用に応じた料金が発生する従量課金制をとっています。使用状況は、関数に対するリクエスト数とコードの実行時間に基づいて集計されます。リクエスト数はイベントの発生等による実行コードを呼び出した回数です。実行時間は、コード実行開始から終了(もしくは中止)までの時間を1ミリ秒単位で集計されます。
AWS Lambdaでは無料利用枠が設定されており、1か月ごとに 100万件の無料リクエスト、および40万GB-秒のコンピューティング時間が無料枠に含まれています。その他EC2の割引として、Compute Savings Plansが設定されています。
AWS Fargateはコンテナ向けサーバーレスサービスのコンピューティングエンジンとなります。AWS Fargateは AWS Lambdarと同様にインスタンスの選択やクラスター容量のスケーリング設定することなく、適切なコンピューティング容量が割り当てられます。AWS Fargateの動作環境は、Amazon Elastic Container Service(ECS) と Amazon Elastic Kubernetes Service(EKS)の2種類に対応しています。
AWS Fargateの料金体系はAWS Lambda同様に使用に応じた料金が発生する従量課金制をとっています。具体的にはコンテナ化されたアプリケーションで消費されるvCPU およびメモリリソースの量に対する料金が発生します。
Savings Plansを利用して、1年間または3年間、特定量のコンピューティング使用量 契約により、AWS Fargateの使用料金を最大50%節約することも可能です。
AWSはサービス拡大に積極的で、サーバーレスも2014年にAWS Lambdaを発表して以降継続的に投資しています。実際サーバーレスの活用により利用者にどのような恩恵があるのでしょうか。ここでは、AWS Lambdaの具体的な特徴について触れていきます。
一般的なクラウドサービスは、コンピュータ資源としてサーバー・ストレージ・ネットワークを割り当てます。そのため、必要なキャパシティ(メモリーサイズやストレージサイズ等)や性能(CPU数やノード数等)をあらかじめ設定する必要があります。その作業では事前にサイジングやチューニング等のアセスメントを行い、サービス提供を受けます。同様に、システム開発を行いアプリケーションをデプロイ(配布)する利用のための作業が必要となります。
AWS Lambdaでは利用するための一連の管理作業が不要となり、生産性が向上することが特徴です。
AWS Lambdaのメリットは、サーバー管理から開放されることです。AWS Lambdaではコード(処理)を記述し、ZIPファイルもしくはコンテナイメージとしてアップロードするだけで自動実行してくれるため、面倒なコンピュータ資源の初期設定や管理が不要となります。
また、実行するワークロードに合わせてクラウドサービスの利用状況を自動調整も可能です。実行コードはイベントにより起動されますので、起動数や処理に必要なメモリー量等を自動的に調整されます。
さらに、AWS Lambdaのメリットはコスト削減にもつながります。料金体系は消費したコンピューティング時間に対して請求されますので、事前に資源を確保する場合に比べて大幅な料金節約・適正化が図られます。
AWS Lambdaはサーバーレスで色々な処理が自動実行できるメリットがあります。しかし、イベント発生時に自動処理する部分はプログラミングする必要があるので、プログラム開発の投資はこれまで通り必要です。また、ひっきりなしにイベントが発生したり、1度の実行時間が長い処理は従量制課金の集計が増えますので、固定的にAmazon EC2(コンピュートサービス)を利用する方がコストが抑えられる場合もあります。
AWS Lambdaはイベント回数が少ないか特定時間帯のみの場合や、1度の処理時間が短いワークロードには効果が高いです。そのためワークロードは事前にしっかりと分析することをおすすめします。また、AWS Lambdaだけでは自動実行できないためAmazon S3(ストレージサービス)等の利用が別途必要になります。
サーバーレスでは従来必要であった作業量が削減できる、導入時間が短縮できる、費用適正化が図られることがメリットとして挙げられます。AWSサーバーレスサービスの利用によりその恩恵が受けられますので、現状のサービス利用を見直しAWSサーバーレスサービス活用により生産性向上とコスト最適化を果たしましょう。
アンドエンジニアへの取材依頼、情報提供などはこちらから
アンドエンジニアへの取材依頼、情報提供などはこちらから