目次

はじめに

表記関係について
底本について

第1章 AWS SAMとTypeScriptで作るアプリケーション開発(森岡 周平)

1.1 はじめに
1.2 AWS SAMとは
1.3 SAM CLIとは
1.4 TypeScriptとSAM Localを使用したアプリケーション開発

第2章 Elasticsearchを利用したECサイトの構築(太田 佳敬)

2.1 全体構成
2.2 データ設計
2.3 API設計
2.4 トップページを作る
2.5 商品を登録する
2.6 商品詳細を取得する
2.7 Elasticserachを使う
2.8 Elasticsearchのインデックスを作る
2.9 Elasticsearchにデータを登録する
2.10 Elasticsearchからデータを検索する
2.11 AWSにデプロイする
2.12 ウェブページからアクセスする
2.13 まとめ

第3章 AWS IoT(佐々木 美穂)

3.1 AWS IoTとは?
3.2 AWS IoT Component
3.3 基本構成
3.4 手順
3.5 ポリシーの設定とは?
3.6 MQTTトピック・トピックフィルター
3.7 AWS IoT メッセージブローカー
3.8 sdkを利用した実行方法
3.9 まとめ

第4章 AWS Media Servicesで構築するサーバーレスな動画サイト(矢田 裕基)

4.1 AWS Media Servicesの登場
4.2 さっそく使ってみる
4.3 終わりに

第5章 AWS Media Servicesによるサーバーレスアーキテクチャーの歩き方(矢田 裕基)

5.1 AWSでサーバーレスアプリを作るにあたって
5.2 基本的なサービス
5.3 ユースケースから考える

著者紹介

はじめに

 本書は、「Amazon Web Service(以降、AWS)でサーバーレスな構成がしたいけど、実際にどのように設計したほうがいいかわからない」という人のために向けられた、実例を紹介しながらサーバーレスの設計がわかっていくガイドブックです。

 本書は技術書展3で頒布された「雰囲気でわかるAWS SAM (Local)」の次のステップになるものを目指し、企画されました。同書ではAWS LambdaやAmazon API Gateway、DynamoDBなどの基本的なサービスを紹介しましたが、実際にサーバーレスでの開発をしようとすると、そのときどきの要件に合わせてAWSの用意する様々なサービスを組み合わせる必要が出てきます。そこで本書ではまず要件を定義し、そこからサーバーレスで使えるAWSの様々なサービスの使い方を解説しつつ、AWSにおけるサーバーレス構成の使い方や考え方を学習していく本となっています。各章で使うサービスや構成が異なっているので、どの章も設計を考える上で参考になるでしょう。

 今後もっと様々な構成を紹介できるようにしようと考えていますので、AWSを使う上で何かの参考になれば幸いです。

表記関係について

 本書に記載されている会社名、製品名などは、一般に各社の登録商標または商標、商品名です。会社名、製品名については、本文中では©、®、™マークなどは表示していません。

底本について

 本書籍は、技術系同人誌即売会「技術書典4」で頒布されたものを底本としています



第1章 AWS SAMとTypeScriptで作るアプリケーション開発(森岡 周平)

1.1 はじめに

 本章ではAWS SAMと、その開発を補助するツールであるAWS SAMについて、その概要と簡単な実行方法について説明します。そして、SAMを使ってTypeScriptを使った簡単なアプリケーションの開発方法についても紹介します。

1.2 AWS SAMとは

 AWS SAMの“SAM”とは、“Serverless Application Model”の略称で、サーバーレスなアプリケーションを構築するためにAWSが公式で提供しているフレームワークです。

 AWS SAMはAWS CloudFormationの拡張であり、必要なリソースは基本的にCloudFormationで記述します。利用する際は、次のようにTransformセクションを指定する必要があります。

リスト1.1: template.yml

AWSTemplateFormatVersion: '2010-09-09'
Transform: 'AWS::Serverless-2016-10-31' # CloudFormationでSAMを利用するための宣言
Resources:
  MyFunction:
    Type: 'AWS::Serverless::Function'
    Properties:
      Handler: index.handler
      Runtime: nodejs8.10
      CodeUri: 's3://my-bucket/function.zip'

 AWS SAMで拡張されたCloudFormationの機能は、次の2点です。

 ・Lambda、API Gateway、DynamoDBのリソースに関する機能追加

 ・Lambda関数のpackage、デプロイ機能の追加

 もちろん従来のCloudFormationの機能はそのまま使えるため、AWS SAMで拡張されていないリソースをそのまま定義することも可能となっています。

 AWS SAMはAmazon自身が公式に提供しているとあって、数多くの機能がサポートされています。たとえば2017年のre:Inventにおいて、AWS SAMにDeploymentPreferenceというプロパティーが追加されました。これはサーバーレスなアプリケーションにおいて、Canary Releaseを実現する機能となっており、数行の設定で実現できます。またAWS X-Rayを用いて、パフォーマンスなどの監視を容易に実現することもできます。Serverless Application Repositoryのおかげで、他の人が作った機能をパラメータだけ埋めて、気軽に再利用も可能です。

 このようにAWS SAMは、AWS上でサーバーレスなアプリケーションを構築する上で選ばれうるフレームワークの中で、最も有力なもののひとつとなっています。

試し読みはここまでです。
この続きは、製品版でお楽しみください。