どうも、イソップです。
1/20(土)、地元開催のJAWS-UGの勉強会に参加してきました。
しかも、サーバーレス。
開発中のアプリがFirebaseで良いのか不安だっただけに、個人的にはタイムリーじゃないかこれ。
結論としては、AWSやサーバーレスに関してはっきり言ってよくわからないぼくにとって、
とても参考になる内容でした。
目次
サーバーレスってなに?(植木さん)
サーバーレスとは?
- 管理不要
- スケーラビリティ
- 使った分だけ課金
→ LambdaはAWSのスケールできるサービス
- EC2 -> VM(マシン)が拡張される
- ECS -> プロセスが拡張される
- Lambda -> function単位で拡張される、同時実行1000
LambdaはAWSの他のサービスと連携できる
- Lambda -> API Gateway (例: レスポンスを返すなど)
- storage -> DtnamoDB, S3
- Step Functions (ワークフロー作成)
- Xray
- Kinesis -> Lambda
- SQS -> queue
- SNS -> message manage
- Code Build -> コードのコンパイルなんかをまとめて管理・ビルドしてくれる etc..
- Code Pipeline -> パイプラインの管理?
- cognito -> authentication 認証周りを請け負う
- cron ->
Lambdaでの処理は cloudWatch logs にログが残る
サーバーレスの周辺知識
Docker
コンテナ -> わかりやすく言うと、OSのchange root
1コンテナ、1プロセス(mysql用のコンテナ、 nginx用のコンテナなどを用意するのがお作法)
Dockerで本番環境は作らないほうが良い。
Framework
- デプロイ
- 環境(environments)の切り替え
- ロールバック
- 権限管理したい
- 呼び出し元も管理したい
serverless framework
- serverless framework
- AWS SAM
- lamprey
- chalice
Kubernetes
コンテナ管理の仕組み、監視なども。
GKE(Google Kubernetes Engine)使うのが良い。
SPA(シングルページアプリケーション)
S3 + Lambda + API Gateway + SPAで、従来のWAFが不要に。
SPAについてはこちらもあわせて読まれたし。
【イベントレポート】第1回上越TechMeetupを開催しました!
試してみる
- ブラウザからLambdaを動かしてみる
- デプロイ + お気に入りのエディタ
- AWSのサービスと連携する
- 導入事例を見てみる
Lambda+Serverless実演(植木さん)
過去の自分のはてブのデータを取得する工程を、
Lambda + Serverlessでpythonを動かして実演して頂きました。
手軽に短時間で動かせるのはすごい。
サーバーレスフレームワーク Zappaを使用した話(中澤さん)
pythonistaはNode製sls(serverless framework)じゃなくて、Zappaを使いたいよね、というお話。
→ WSGIアプリにいい
Web Server Gateway Interface (WSGI; ウィズギー) は、プログラミング言語Pythonにおいて、WebサーバとWebアプリケーション(もしくはWebアプリケーションフレームワーク)を接続するための、標準化されたインタフェース定義である。
Web Server Gateway Interface – Wikipedia
いわゆる従来のサーバーからHTML返すようなアプリのこと。
WAFがルーティングを設計する設計。
利点: slsよりも手順が少なくなる。
ミソは、AWS Gatewayの設定はスルーさせる。
API作る用にはちと辛い?
個人的な疑問
Amazon API Gatewayはどう使うのが良いの?
↑API作るときに使えばいいってこと?
AWS IoTで証明書を自動登録してデータをアップするまでのお話(知野さん)
AWS IoTを使って証明書を登録するフロー解説。
1台ずつ証明書登録するのめんどいよね。
AWS IoT + Lambdaを使えば、1台1台設定しなくても自動化できるよ。
ということで、設定方法の解説。
Lambdaの他にもDynamoDB、S3(Storage)にも接続可能。
IoTめっちゃおもろそうやんけ。
まとめ
フロントエンドばっかりのぼくにとって、とても参考になる話ばかりでとても楽しかったです。
でもサーバーのコード書きたくないんだよな。
ということで、もう少しFirebaseを触る期間がありそうです。。
Firebaseの次のステップとしてLambdaを選択しても良さそうだと思いました。