当ブログにはPRを含みます。
本記事では、AWSサーバレス開発に関する基本的な知識とおすすめの参考書や動画教材もご紹介します。AWSサーバレスに興味を持っている方々にとって有益な情報となれば幸いです。
なお、当ホームページもAWSのサーバレスサービスを用いて配信しています。月々のランニングコストは100円以内(ドメインは費用除く)に抑えられている上にPageSpeed Insightsでも高パフォーマンスを実現できています。
↓AWSサーバレスで作成した当サイトのパフォーマンススコア
サーバレス開発とは何か?
サーバレス開発は、従来のサーバーに依存するアプリケーション開発の常識を打ち破った開発手法です。従来のシステム開発では、アプリケーションの実行には物理的なサーバーが必要であり、その管理やスケーリングが開発者の大きな負担となっていました。
しかし、サーバレス開発では、開発者がサーバーの管理やインフラストラクチャの設定にあまり関与せずにアプリケーションを開発・デプロイできます。
サーバレス開発では、クラウドプロバイダーが提供するサーバーレスプラットフォームを利用してアプリケーションを実行します。これにより、開発者はアプリケーションのコードの開発に集中することができ、インフラストラクチャの管理やスケーリングなどの面倒な作業から解放されます。
また、サーバレスアーキテクチャは、リクエストごとに必要なリソースを自動的に割り当てるため、効率的なコストで運用が可能となります。
サーバレス開発は、特にクラウドネイティブなアプリケーションの開発やマイクロサービスアーキテクチャの実装に適しています。AWSや他のクラウドプロバイダーが提供する多様なサービスを活用することで、スケーラビリティや信頼性の高いアプリケーションを容易に構築することができます。
AWSサーバレスの概要
AWSでサーバレス開発を行う場合、API Gateway, Lambda, DynamoDB, CloudFront, S3 等を組み合わせることが基本となります。
以下に各要素の解説を記載します。
- AWS Lambda: リクエストに応じて処理を行うコンピュータと理解してください。イベント駆動型のコード実行サービスであり、開発者はコードをアップロードしてLambdaにトリガーを設定することで、リクエストに応じてコードが実行されます。リクエストに応じてスケーリングされます。トリガーには様々なAWSサービスを利用できます。サーバレス開発ではAPI Gatewayを使用することが多いです。
- Amazon API Gateway: URIによって各Lambda関数を呼び出す受け付けと理解してください。APIの作成、公開、管理を行うフルマネージドサービスであり、サーバーレスアプリケーションのエンドポイントを作成し、外部からアクセスできるようにします。API GatewyのエンドポイントにアクセスしたことをきっかけにLambdaの関数を実行して応答を返却します。
- AWS DynamoDB: データベースと理解してください。フルマネージドでスケーラブルなNoSQLデータベースサービスであり、サーバーレスアプリケーションのデータストレージに使用されます。
- Amazon S3(Simple Storage Service): ストレージとWEBサーバの役割があると理解してください。静的なウェブサイトやアプリケーションのホスティング、大容量のファイルのストレージ、データのバックアップなど、オブジェクトストレージを提供するサービスです。ファイルの置き場所やフロントエンドを配布するWEBサーバとして利用されます。
- Amazon CloudFront: キャッシュサーバと理解してください。コンテンツデリバリネットワーク(CDN)サービスであり、高速でセキュアなコンテンツの配信を可能にします。主に静的なコンテンツのキャッシュを行います。ユーザに近いキャッシュを利用できるので高速になります。また、キャッシュヒットした場合、バックエンドの負荷を軽減することもできます。
これらのサービスを組み合わせることで、開発者はスケーラビリティ、可用性、セキュリティを考慮したアプリケーションを構築し、運用することができます。AWSサーバレスは従来のインフラストラクチャ管理の負担を軽減し、アプリケーションの迅速な開発と展開を可能にします。
AWSサーバレスのメリットとデメリット
AWSサーバレスの採用には、多くのメリットがありますが、同時に考慮すべきデメリットも存在します。
メリット
- スケーラビリティと柔軟性: AWSサーバレスは、トラフィックやリクエストの増減に応じて自動的にスケーリングされるため、アプリケーションのスケーラビリティが向上します。また、異なるサービスを組み合わせることで、柔軟なアーキテクチャを構築することができます。
- コスト効率: 従量課金制のため、リソースの使用量に応じて支払いが発生します。サーバーレスアーキテクチャでは、リクエスト数や実行時間に応じて料金が発生するため、リソースの無駄遣いを最小限に抑えることができます。
- 運用の簡略化: サーバーレスアーキテクチャでは、インフラの管理や保守がAWSによって実施されるため、開発者はアプリケーションの開発と改善に専念することができます。
- 高可用性と耐障害性: AWSのサーバーレスサービスは、マルチAZ展開や自動フェイルオーバーなどの機能を提供し、高可用性と耐障害性を確保しています。
デメリット
-
コールドスタートの発生: AWS Lambdaなどのサーバーレスサービスは、最初のリクエストに対する応答時間が通常の実行よりも長くなることがあります。これは、リソースの起動に時間がかかるためです。
リクエストの間隔が一定以上あく場合もコールドスタートが発生します。これの対策として実行数の予約ができますが、別途料金がかかります。 - 言語の制限: AWS Lambdaでは用意されている言語以外での開発ができません。Java、Nodejs、Python、Rubyなどの主要言語はサポートされていますが、事前に言語は確認しておきましょう。
-
制限事項: サーバーレスアーキテクチャには、リソースの制限や制約が存在します。たとえば、AWS Lambdaの場合、実行時間の上限やメモリの制限などがあります。
サーバレスでは受付から応答まで30秒以上かかるAPIは実装できません。
おすすめの参考書・動画教材の紹介
これからAWSサーバレス開発に関する知識を深めたい方におすすめの参考書や動画教材を紹介します。
以下の教材はネットで調べた断片的な知識とは異なり、体系的に学習できます。
教材 | 特徴 | 価格 | 評価 | 詳細 |
---|---|---|---|---|
書籍 Lambda実践ガイド |
サーバレス開発に欠かせないLambdaに加えてS3やSNS、SESなどの周辺サービスも解説 読み物としてもハンズオンとしても使える Cloud9、SAMを使った実践的な開発、デプロイ手法を学べる 書籍ゆえに情報が古い箇所がある |
3,960円 |
|
詳細はこちら |
動画教材 AWS Lambda Serverless Framework 速習ハンズオン |
書籍に比べ、情報のアップデートが速い サーバレス開発で人気のServerless Frameworkを学べる 各サービスの解説に加えてハンズオンを実施できる ハンズオンを通して簡単なシステム開発(TODO管理システム)ができる ハンズオンで環境が異なる場合、トラブルシュートが必要(講師に質問可能です。) |
3,000円 セール時↓ 2,000円 |
|
詳細はこちら |
動画教材 REST API・サーバーレス アーキテクチャ入門 |
書籍に比べ、情報のアップデートが速い サーバレスのREST APIについて基本から学べる 各サービスの解説に加えてハンズオンを実施できる ハンズオンを通して簡単なシステム開発(ユーザ情報操作システム)ができる ハンズオン中のAWSコンソールが古い場合がある。(不明点がある場合、講師に質問できます。) |
6,200円 ↓セール時 4,000円 |
|
詳細はこちら |
【書籍】AWS Lambda実践ガイド
書籍で学びたい方向けにおすすめの教材です。初めから丁寧に解説してくれるので初心者~中級者まで幅広い方におすすめです。
本書ではCI/CDツールであるSAM(サーバーレスアプリケーションモデル)を使った実践的な学習が可能となっています。
SAMとはアプリケーションをデプロイする仕組みととらえてください。
従来のサーバーに依存するアプリケーション開発と比較した場合のサーバレス開発の勘どころについても分かりやすく解説してくれます。
書籍ゆえにWEB教材と比較して情報の鮮度が古めである点は注意してください。
↓出版社より
- サーバレス開発に欠かせないLambdaに加えてS3やSNS、SESなどの周辺サービスも解説してくれる
- 読み物としてもハンズオンとしても使える
- Cloud9、SAMを使った実践的な開発、デプロイ手法を学べる
- 書籍ゆえに情報が古い箇所がある
【動画教材】AWS Lambda / Serverless Framework 速習ハンズオン
AWSなどのクラウドの学習にはUdemyがおすすめです。
Udemy動画教材の使い方について、画面を交えて詳しく説明しています。ぜひ以下の記事をご覧ください。
記事の内容:
- Udemy動画教材の便利な機能紹介: 再生速度調整、トランスクリプト表示、字幕対応などの機能
- スマホ機能の紹介: コースのダウンロード機能やバックグラウンド再生
- QA方法紹介: 講師への質問方法
- 30日以内であれば返金可能(気軽に始められる)
- 教材購入後もコンテンツがアップデートされる(頻繁にアップデートされるクラウド学習に最適)
- 不明点を講師に質問可能
- スマホでも視聴可能(隙間時間の活用)
- 月に数回(2~3回)実施するセールでは数万円のコースも2,000円程度に割引される(安価!)
紹介する教材は開発の現場でたびたび利用されるServerless Frameworkを使ったサーバレス開発を学べます。
Serverless Frameworkは、クラウド上でアプリケーションを構築するためのツールです。
AWS、Azure、GCPなどの多数のクラウドサービスで使用することができます。複数のクラウドで利用できるため、人気のツールです。
開発現場ではSAMとServerless Frameworkがよく利用されています。
以下のようなサーバレスシステムを作成するハンズオンも付属しており、実践的な学習が可能です。作成したシステムは自分でカスタマイズも可能なのでいろいろ試してみると楽しいです。
- 書籍に比べ、情報のアップデートが速い
- サーバレス開発で人気のServerless Frameworkを学べる
- 各サービスの解説に加えてハンズオンを実施できる
- ハンズオンを通して簡単なシステム開発(TODO管理システム)ができる
- ハンズオンで環境が異なる場合、トラブルシュートが必要(講師に質問可能です。)
↓講座のリンクです。リンク先で10分程度の無料プレビューが視聴可能です。
AWS Lambda / Serverless Framework 速習ハンズオン【動画教材】AWSで学ぶ!REST API・サーバーレスアーキテクチャ入門
こちらの講座もUdemyの動画教材です。
こちらの講座はREST APIに軸足を置いた講座です。REST APIとはどういうものかを作りながら学べる講座です。かなり丁寧に説明してくれるので初心者の方にもおすすめの講座です。
サーバレスで開発する場合はほぼREST API一択となります。
REST API(Representational State Transfer API)は以下のRESTの4原則に則って作成されたAPIのことです。状態を保持しないサーバレスにマッチしたAPIです。
- 統一インターフェース
- アドレス可能性
- 接続性
- ステートレス性
ハンズオンでは以下のシステム構成でユーザ情報操作システムのREST APIを作成します。
- 書籍に比べ、情報のアップデートが速い
- サーバレスのREST APIについて基本から学べる
- 各サービスの解説に加えてハンズオンを実施できる
- ハンズオンを通して簡単なシステム開発(ユーザ情報操作システム)ができる
- ハンズオン中のAWSコンソールが古い場合がある。(不明点がある場合、講師に質問できます。)
↓講座のリンクです。リンク先で20分程度の無料プレビューが視聴可能です。
AWSで学ぶ!REST API・サーバーレスアーキテクチャ入門まとめ
- サーバレス開発とは、従来のサーバーに依存するアプリケーション開発の常識を打ち破った開発手法であり、クラウドプロバイダーが提供するサーバーレスプラットフォームを利用してアプリケーションを実行する開発方法である。
- AWSサーバレス関連サービスの例:
- AWS Lambda: リクエストに応じて処理を行うコンピュータであり、開発者はコードをアップロードしてLambdaにトリガーを設定し、リクエストに応じてコードが実行される。
- Amazon API Gateway: URIによって各Lambda関数を呼び出す受け付けであり、APIの作成、公開、管理を行うフルマネージドサービスである。
- AWS DynamoDB: フルマネージドでスケーラブルなNoSQLデータベースサービスであり、サーバーレスアプリケーションのデータストレージに使用される。
- Amazon S3(Simple Storage Service): 静的なウェブサイトやアプリケーションのホスティング、大容量のファイルのストレージなどを提供するオブジェクトストレージサービスである。
- Amazon CloudFront: 高速でセキュアなコンテンツの配信を可能にするコンテンツデリバリネットワーク(CDN)サービスであり、静的なコンテンツのキャッシュを行う。
- AWSサーバレスのメリット:
- スケーラビリティと柔軟性が向上し、コスト効率が高まる。
- 運用の簡略化や高可用性と耐障害性が確保される。
- AWSサーバレスのデメリット:
- コールドスタートの発生や言語の制限、制限事項が存在する。
教材 | 特徴 | 価格 | 評価 | 教材リンク |
---|---|---|---|---|
書籍 Lambda実践ガイド |
サーバレス開発に欠かせないLambdaに加えてS3やSNS、SESなどの周辺サービスも解説 読み物としてもハンズオンとしても使える Cloud9、SAMを使った実践的な開発、デプロイ手法を学べる 書籍ゆえに情報が古い箇所がある |
3,960円 |
|
Amazonで確認 |
動画教材 AWS Lambda Serverless Framework 速習ハンズオン |
書籍に比べ、情報のアップデートが速い サーバレス開発で人気のServerless Frameworkを学べる 各サービスの解説に加えてハンズオンを実施できる ハンズオンを通して簡単なシステム開発(TODO管理システム)ができる ハンズオンで環境が異なる場合、トラブルシュートが必要(講師に質問可能です。) |
3,000円 セール時↓ 2,000円 |
|
AWS Lambda / Serverless Framework 速習ハンズオン |
動画教材 REST API・サーバーレス アーキテクチャ入門 |
書籍に比べ、情報のアップデートが速い サーバレスのREST APIについて基本から学べる 各サービスの解説に加えてハンズオンを実施できる ハンズオンを通して簡単なシステム開発(ユーザ情報操作システム)ができる ハンズオン中のAWSコンソールが古い場合がある。(不明点がある場合、講師に質問できます。) |
6,200円 ↓セール時 4,000円 |
|
AWSで学ぶ!REST API・サーバーレスアーキテクチャ入門 |
- おすすめの参考書・動画教材:
- 【書籍】AWS Lambda実践ガイド: Lambdaや周辺サービスの解説とハンズオンが可能であり、サーバレス開発の学習に適している。
Amazonで確認 - 【動画教材】AWS Lambda / Serverless Framework 速習ハンズオン: Serverless Frameworkを使ったサーバレス開発の実践的な学習ができる。
AWS Lambda / Serverless Framework 速習ハンズオン - 【動画教材】AWSで学ぶ!REST API・サーバーレスアーキテクチャ入門: REST APIの作成からハンズオンまで学べる講座であり、初心者にもおすすめである。
AWSで学ぶ!REST API・サーバーレスアーキテクチャ入門
- 【書籍】AWS Lambda実践ガイド: Lambdaや周辺サービスの解説とハンズオンが可能であり、サーバレス開発の学習に適している。
以上です。
システムエンジニア
AWSを中心としたクラウド案件に携わっています。
IoTシステムのバックエンド開発、Datadogを用いた監視開発など経験があります。
IT資格マニアでいろいろ取得しています。
AWS認定:SAP, DOP, SAA, DVA, SOA, CLF
Azure認定:AZ-104, AZ-300
ITIL Foundation
Oracle Master Bronze (DBA)
Oracle Master Silver (SQL)
Oracle Java Silver SE
■略歴
理系の大学院を卒業
IT企業に就職
AWSのシステム導入のプロジェクトを担当