【サーバレスアプリケーションとは】
ユーザ自身でサーバを立てて運用するのではなく、
AWS に代表されるクラウドサービスを組み合わせて、
必要なときにだけクラウドサービスを呼び出し、
サービスを提供するアプリケーションのことです。
以下のような様々なメリットがあります。
・常時可動させなければならないサーバに比べて費用がかからない
・サーバがダウンすることがないので可用性について気にする必要がない
・現状のPythonアプリケーションをそのまま利用できる
【本書の概要】
本書は、Pythonによるサーバレスアプリケーションの作成を通じて、
サーバレスアプリケーション開発に必要な知識を解説した書籍です。
サーバレスアプリケーション開発の基本から様々な日次処理まで
丁寧に解説しています。
【対象読者】
・Webアプリケーション開発者
・クラウド系エンジニア
【本書で利用するフレームワーク・クラウドサービス】
・Flask
・Amazon Web Services(AWS)
【著者プロフィール】
本田崇智(ほんだ・たかとも)
1983年北海道旭川市生まれ。北海道大学大学院情報科学研究科卒業。
NTTデータへ新卒で入社しR&D部門にて自ら設計から実装まで行いつつ、
グローバルでPMを担当。
freeeではフルスタックエンジニアとして様々な新規事業案件を開発しリリース。
その後自ら起業した会社のCTOやValuence Technologies取締役CTO等、
スタートアップから上場企業まで複数の会社でCTOを務める。
【サーバレスアプリケーションとは】
ユーザ自身でサーバを立てて運用するのではなく、AWSに代表されるクラウドサービスを組み合わせて、必要なときにだけクラウドサービスを呼び出し、サービスを提供するアプリケーションのことです。以下のような様々なメリットがあります。
【本書の概要】
本書は、Pythonによるサーバレスアプリケーションの作成を通じて、サーバレスアプリケーション開発に必要な知識を解説した書籍です。サーバレスアプリケーション開発の基本から様々な日次処理まで丁寧に解説しています。
シンプルなサーバレスブログアプリケーションを一から作成します。
クラウドサーバとしてAWSを利用。AWSにデプロイする方法や、zappaの導入方法を解説します。
Googleスプレッドシートを利用したサーバレスKPI収集Botや、Slackを利用したサーバレス Slack Botの開発方法を解説します。
Prologue
Chapter 1 サーバレスアプリケーションの完成イメージ
01 サーバレスブログアプリケーション
02 サーバレスKPI収集Bot
03 サーバレスSlack Bot
04 まとめ
Chapter 2 サーバレスアプリケーションとは
01 サーバレスアプリケーションのメリット
02 サーバレスアプリケーションを実現するAWSサービス
03 まとめ
Chapter 3 アプリケーションの環境構築を行う
01 アプリケーションの全体構成
02 Pythonをインストールする
03 pipをインストールする
04 Pipenvを導入する
05 Flaskを導入する
06 まとめ
Chapter 4 アプリケーションを作成する準備
01 1ファイルでアプリケーションを作成する
02 起動ファイルを作成する
03 configファイルを作成する
04 まとめ
Chapter 5 ビューを作成する
01 ビューとは
02 ビューファイルを作成する
03 最終的に必要なビューを追加する
04 まとめ
Chapter 6 テンプレートを作成する
01 テンプレートファイルを作成する
02 ビューとテンプレートファイルを紐づける
03 staticファイルを作成する
04 投稿一覧画面を作成する
05 レイアウトファイルを作成する
06 新規投稿画面を作成する
07 投稿編集画面を作成する
08 まとめ
Chapter 7 モデルを作成する
01 PynamoDBを導入する
02 PynamoDBモデルを作成する
03 ビューでモデルを操作する
04 DynamoDBローカルを導入する
05 スクリプトを作成する
06 ローカルでのアプリケーションの動作を確認する
07 まとめ
Chapter 8 ログイン機能を導入する
01 ログインライブラリを導入する
02 ログインビューを作成する
03 ログイン認証後だけ既存のビューにアクセスできるようにする
04 ログインフォームのテンプレートファイルを作成する
05 ユーザモデルを作成する
06 ユーザローダを実装する
07 configファイルを設定する
08 アプリケーションファイルにログイン処理を追加する
09 flashを導入する
10 アプリケーションの動作を確認する
11 まとめ
Chapter 9 アプリケーションをサーバレス環境にデプロイする
01 セッションをデータベースに保存する
02 AWS IAMを作成する
03 環境変数とConfigを利用して開発環境と本番環境を切り替える
04 サーバレスライブラリzappaを導入する
05 本番用テーブルを作成する
06 サーバレスアプリケーションをデプロイする
07 まとめ
Chapter 10 Googleスプレッドシートに日次でユーザ数を記録するサーバレスBotを作る
01 Google APIサービスアカウントキーを発行する
02 Google Sheets APIを有効化する
03 Googleスプレッドシートを作成する
04 Googleスプレッドシートの共有設定を行う
05 GoogleスプレッドシートBotプログラムを作成する
06 Botプログラムのテストを行う
07 スケジューリング機能を設定する
08 サーバレスで動作確認をする
09 まとめ
Chapter 11 KPI情報を毎日自動で投稿するサーバレスSlack Botを作る
01 SlackにBotsアプリを追加する
02 ローカル環境変数をアップデートする
03 Python Slackライブラリをインストールする
04 Botプログラムをアップデートする
05 zappa configをアップデートする
06 Botプログラムをテストする
07 サーバレス環境にデプロイする
08 まとめ
Chapter 12 zappaの様々な機能
01 デプロイしたアプリケーションのステータスを確認する
02 デプロイしたアプリケーションをアップデートする
03 スケジューリングをアップデートする
04 デプロイした特定のプログラムを実行する
05 デプロイ済のアプリケーションを削除する
06 ログを確認する
07 アプリケーションのロールバックを行う
08 SSL証明書を導入する