「JAWS-UG Osaka 第22回勉強会 東西の中の人が語る!!! Microservices × Serverless On AWS」で運営と懇親会LTをしてきました
2018/01/22
「JAWS-UG Osaka 第22回勉強会 東西の中の人が語る!!! Microservices × Serverless On AWS」で運営と、懇親会でのLTをしてきました。
MOTEXさん、いつも素敵な会場をご提供いただきまして本当にありがとうございます!
当日の運営は、受付したり、会場案内したり、誘導したりします。
勉強会会場ではステッカーやバッジを配ってます。
運営をしてても本編が始まれば、参加者と一緒に勉強できます。
以下、本編は印象に残ったフレーズや機能、思ったことをメモしました。
目次
RESTful APIをChaliceで紐解く 〜Python Serverless Microframework for AWS
清水さん@AWS
- サーバーレスアーキテクチャなRESTful API
- リクエストがどういう処理をするか、そこだけに注力する
- API Gateway + Lambdaをデプロイしようとすると汎用性があるため、煩雑性がある(SAMを使って解決する場合もある)
- それを解決する手段としてChalice
「コードを書いてデプロイするとAPI GatewayとLambdaを自動的に作成、更新」Chalice便利ですね。知らなかった。 #jawsug
— やました (@yamamanx) 2018年1月20日
Chaliceとは
- ChaliceはPythonのフレームワーク
- RESRTful API記述用のフレームワーク
- コードを書いてデプロイするとAPI GatewayとLambdaを自動的に作成、更新
- IAMの権限など付随する設定回りも自動
- ローカルでの起動も可能
- pipでインストール出来る
- charice deployでデプロイを実行(早ければ5秒ぐらい)
- コードを分析して必要なポリシーを自動でIAMロールに設定する
- Domovoiのようなプラグインで拡張可能
必要な操作をコードから解析してIAMロールを作ってデプロイ?すごいなChalice #jawsug
— やました (@yamamanx) 2018年1月20日
最低権限の原則も守れそう #jawsug
— やました (@yamamanx) 2018年1月20日
紹介のあったしみさんのスライドたちはこちら https://t.co/jJR7G9o3PR #jawsug
— やました (@yamamanx) 2018年1月20日
Microservices On AWS
西谷さん@AWS
- システムだけでなく組織、運用、開発、管理も分散
- 各コンポーネントは独立して他のコンポーネントに影響を与えない
- 1つのことをうまくやる
- 多言語 OS , ツール、DBに対して異なるアプローチをとる
- 各サービスごとに最適な言語とDBを組み合わせている
- 各サービスが独立しているから、操作、データタイプに応じて、適したデータストア、ストレージを選択できる
- 個々のコンポーネントはブラックボックスとして設計する、明確に定義されているAPIを介することで中身を意識してもらう必要はない。
- APIをバックエンドとしたSPA
- CF S3の静的ページ
- ECS + ALBが多い
- FargateはECSコンテナを気にせずに実行できる
- API Gateway + Cognito User Poolと連携して簡単に認証を追加できる
- DNSベースのサービスディスカバリ
- ECSイベントストリームを使用したサービスディスカバリ
- 可用性のトレードオフのため結果整合性を採用
- 各サービスの状態の変化にあわせてイベントを発行
- Event Sourcing
- モニタリングはCloudWatchに集約
- ログファイルはS3かCloudWatch Logs
- ECSはawslogsでコンテナログの一元化が可能
- 分散トレースは X-Ray活用
Fargateは多分今一番やらなければならない気がしてる #jawsug
— やました (@yamamanx) 2018年1月20日
Serverless Reliability Engineering
照井さん@Serverworks
ServerlessでRASISを高められることはある
- RASISはReliability, Availability ,
- API Gateway(Lambda) Multi Regionで可用性を高める
- sls , SAMでデプロイすることは簡単
- Route 53のヘルスチェックでActiveとSecondary
- DynamoDB Global Tables未対応リージョンでは、DBのマスタはレイテンシ覚悟で 単一にする
- X-Rayだけでは足りない、Tokenでトレースする
- ACID
- 2回目以降の処理リクエストを処理しないことが冪等
- ACID
2回目以降の処理リクエストを処理しないことが冪等 #jawsug
— やました (@yamamanx) 2018年1月20日
DynamoDB Global Tables、追えてなかった。なるほど。 #jawsug
— やました (@yamamanx) 2018年1月20日
実践Microservice × Serverless
小西さん@MOTEX
なぜその選択なのかという説明が明示的でわかりやすいな~ #jawsug
— やました (@yamamanx) 2018年1月20日
- CloudWaatchを使ってトレースしている
- 疎結合にして無停止デプロイ
- そのための自動化(CI)
- kinesis(Data Stream) を間に挟んでいる
- SQSを挟んでいる人多い
- 非同期だけどなるべくリアルタイムを求められるのでkinesisを置いている
- SQSのほうがだいぶ安い
- Lambdaでタイムゾーンはどこと保証されないので環境変数などで明示的に固定する
- kinesisの順序保証が必要なケース
- DynamoDBバックアップどうする問題
オートスケール間に合わないときのエラーハンドリングとリトライは必須だと思う。その場合のDynamoDB前ではみなさんどうしてるんだろ。 #jawsug
— やました (@yamamanx) 2018年1月20日
懇親会
LTをさせていただきました。
ライブでもで5分間でAlexaスキルを作るってLTをしてみました。
AlexaスキルのHello World的にでも試してもらえれば幸いです。
1回目、MacBookのWiFiがUSB Type-Cと2.4GHz帯の干渉問題で接続断。
テザリング(2.4GHz帯)に頼らないように会場のWiFiをお借りしてやり直しました。
失敗を恐れていては何も前には進みません。
とはいえ、本番に近い環境で練習をしておくべきです。
- iPhoneテザリングを使う場合はUSB接続する。
- 可能な限り本番と同じ環境でリハーサルをしておく。
次回からはこの2点を改善したいと思います。
このごたごたで、けんさんのLTをちゃんと見れなかった。
なので後で見させていただく。
最後までお読みいただきましてありがとうございました!
「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。
「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。
「AWS認定資格試験テキスト AWS認定AIプラクティショナー」という本を書きました。
「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。
「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。
「AWSではじめるLinux入門ガイド」という本を書きました。
開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
関連記事
-
-
Developers Summit 2018 「将棋プログラムPonanzaにおける強化学習、ディープラーニングとその先」を聞きました
以下は、思ったことや気になったことをメモしていますので、必ずしも登壇者の発表内容 …
-
-
Aurora Serverless Data APIを有効にしてLambdaからクエリを実行
Aurora Serverless作成 MySQLを作成しました。 作成時にDa …
-
-
「AWS re:Invent報告会 by Yappli」で機械学習を始めてみようという気になった
YappliさんとSpeeeさん合同のre:Invent報告会におじゃましました …
-
-
「コミュニティリーダーズサミット in 高知 2021初鰹編」に参加しました
抗体検査陰性、マスク、手洗い、うがい、検温、出入り時の都度アルコール除菌、定期的 …
-
-
AWS CodeCommit 認証情報ヘルパーをmacOSに設定しました
AWS CLI 認証情報ヘルパーを使用して Linux, macOS, or U …
-
-
Amazon Location Service入門ワークショップ-マップの操作
関連記事 Amazon Location Service入門ワークショップの前提 …
-
-
ブラウザからJavaScript SDKを使ってAmazon S3 への写真のアップロードチュートリアルをやってみました
ブラウザから Amazon S3 への写真のアップロードをやってみました。 HT …
-
-
Rocket.ChatのOutGoingWebhookからのAPI GatewayからのDynamoDB
少し前に、Rocket.ChatからOut Going Webhookを設定して …
-
-
「Fin-JAWS 第13回 PCI DSS と AWS の混ぜご飯」リモート開催に参加しました
Youtube Liveでリモート開催の「Fin-JAWS 第13回 PCI D …
-
-
Cloud9でAWS CDK環境
最初ローカルに作ろうと思ったのですが、環境依存がというか、Macbookの環境で …







