この記事の目次
AWSサーバレスってどんなサービス?

サーバレスとは?
サーバレスについて、従来のアプリケーション運用と、サーバレスでの運用との違いから説明していきます。 まず、従来のアプリケーション運用では、プログラムを実行するために、実行環境のサーバ構築やメンテナンスを行う必要がありました。そしてサーバには、リクエストが集中してもクラッシュしないために、必要なCPUやメモリ、ストレージをそろえておき、リクエスト数に応じてメンテナンスを行う必要があります。 一方、サーバレスでは、これらのサーバのプロビジョニングやメンテナンスが不要となります。AWSのサーバレスを提供するAWS Lambdaでは、プログラムの実行をAWSがすべて管理してくれます。そのため、開発者はコードをアップするだけで、あとはAWSが適切な実行環境を用意し、プログラムを実行します。 次の章では、AWS Lambdaとは具体的にどのようなサービスなのか、紹介していきましょう。AWS Lambdaとは

AWS Lambdaのメリット3つ

サーバのメンテナンスが不要となる
AWS Lambdaでは、サーバのメンテナンスが不要となります。しかし、サーバレスといっても、サーバがなくなったわけではありません。AWS Lambdaでは、プログラムが実行されるために必要なサーバをインスタンスという形で提供します。そのインスタンスは、必要な時に、必要な数、必要なスペックで作成されます。 例えば、リクエストの数が増えた場合を考えてみましょう。 従来のサーバ構築環境であったEC2では、リクエスト数の増加に伴い、メモリの増築などのメンテナンスが必要でした。一方、AWS Lambdaではリクエスト毎にインスタンスが生成され、自動的にスケーリングされます。そのためメモリの増築などの作業は必要ありません。稼働コストを最適化することができる
AWS Lambdaでは、稼働コストを最適化し、コストを最小限に抑えることができます。それは、AWS Lambdaのコストは、コードが実行された時間に応じて発生するためです。 このことは、従来のサーバ構築環境であったEC2と比較することで顕著となります。 EC2を利用していた場合では、EC2を稼働させていた時間に応じてコストが発生していました。それ対し、AWS Lambdaでは、サービスにアクセスがきた分だけがコストとして計算されます。そのためAWS Labdaでは、コードが実行されていない時間はコストが発生せず、無駄な稼働コストを削減することができます。他のAWSサービスと連携することが可能
AWS Lambdaは、他のAWSサービスと連携することで、最小限のプログラミングでシステム構築することができます。 例えば、Amazon API GatewayへのAPIリクエストをトリガーにLambda関数を実行できたり、Amazon S3バケットへのファイルアップロードをトリガーにLambda関数を実行できたりします。 このように、AWS Lambdaでは他のサービスを組み合わせて開発を行っていきます。AWS Lambdaのデメリット3つ

Lambda関数の実行時間が限られている
Lambda関数の実行時間には上限15分までという制限があります。もし、上限時間以上に処理に時間がかかった場合、その処理は強制終了されます。 そのため、AWS Lamdbaで開発を行う際には、1つのLambda関数で、処理が15分以上かからないようにする必要があります。 この特性上、AWS Lamdbaは1回の処理が長時間となるワークロードには向いていません。 もし長時間となるワークロードを、AWS Lamdbaで実装する場合には、処理を細かく分割し個別でLambda関数を作成するなどの工夫が必要となります。Lambda関数の同時実行数には上限がある
Lambda関数の同時実行なインスタンスの数には上限があります。もしこの上限を超えたリクエスト数が同時に集中した場合には、プログラム実行エラーとなります。 この同時実行数はリージョンによって異なりますが、アジアパシフィック(東京)では、1000インスタンスまで保証されています。 もし、1000インスタンス以上の実行が必要となった場合は、必要なリクエスト数に達するまで、毎分500インスタンスずつ追加されます。ここで、リクエストに入ってくる数が、インスタンスのスケールスピードを追い越した場合に、プログラムエラーとなります。 この同時実行数の初期値は、サポートセンターコンソールへリクエストを送ることで、制限を上げてもらうことができます。他のAWSサービスについての勉強コストがかかる
AWS Lambdaでは、AWS Lambda以外のAWSサービスについても勉強が必要となります。それは、AWS Lambdaは、他のAWSサービスと連携して、アプリケーションを作り上げるためです。 例えば、Amazon API Gateway、Amazon S3、Amazon DynamoDBなどのサービスについても勉強する必要があります。 次の章では、具体的にどのようなAWSサービスと連携を行うことで、どのようなサーバレスアーキテクチャを構築するのかについて、紹介していきます。サーバレスアーキテクチャ構築

動的Web/モバイルバックエンドのためのサーバレスアーキテクチャ構築
動的Web/モバイルバックエンドとしてサーバレスアーキテクチャを構築するためには、AWS Lambda、Amazon API Gateway、Amazon DynamoDBを使用します。 この構成では、APIアクセスをAmazon API Gatewayで受け取り、それをトリガーにAWS Lambdaの処理を実行します。そして、AWS Lambdaの処理内でAmazon DynamoDBにアクセスすることでデータを参照します。 このように構成することで、従来ではEC2にサーバをたてていたものを、サーバレスに置き換えることができます。まとめ

この記事の監修者・著者

-
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞
最新の投稿
- 2023年11月21日キャリア・転職ITエンジニアへのキャリアチェンジに多い理由は?
- 2023年11月20日キャリア・転職フリーターからの就職でおすすめの職業は?
- 2023年11月20日キャリア・転職経理へのキャリアチェンジ転職・志望動機は?
- 2023年11月20日キャリア・転職法務からのキャリアチェンジおすすめの業界は?