DAY3 + DAY4 に引き続き、Developers.IO CONNECT 2020 眺めてます。
DAY4 は、「機械学習の現在地と、サーバーレス、IaC、ほか」という内容で、好きなのが多く時間がかかりました。
RDS Proxyは世界を変えるか?
先日 GA された RDS Proxy の話です。
セミナーのタイミングでは、GA 前なのでやってみた系ではなく使い所の話。
Lambda + RDS のアンチパターンの改善策。
Lambda 独自の問題としてあった、コールドスタートや IP アドレス枯渇については、
アップデートで解決済み。
RDS は垂直スケールなので、Lambda の水平スケールアップについていけない問題がある。
Lambda ではコネクションプーリングが実現できない。
コネクションプーリングを実現するのが RDS Proxy 。
現状の制限の元、ある程度工夫して対応することも可能だった。
Lambda のグローバル変数でコネクションすることで、接続しっぱなしにはできる。
切断タイミングがないので、DB側から切断するとかが必要。
EC2などのミドルウェアで解決もできるが、それだとサーバーレスにならない。
RDS Proxy を利用するにしても、以下のワークロードでは不向き。
RDS Proxy はあくまで緩和するだけなので、Lambda なら DynamoDB が基本。 本当に必要なのか見極めましょう。
Lambda が出てすぐ、「とりあえず使ってみたい」で、RDS と接続するアンチパターンで苦しんだのですが、過去の負債の解決がある程度できそうです。
コネクションプーリングの理解になりました。
GA と同時にやってみた記事も投稿されてます。
Cognito Identity Pools + Auth0を連携させてWebアプリケーションからAWSを操作する画面を作った話
SPAパターン:S3 + API Gateway
APIG を認証して、ユーザーごとに表示を変えたりするケースが多い。
Auth0 は、IDaaS で最近人気。
テナントは、認証基盤の単位。開発ステージ本番などテナントを切り替えて対応ができる。
管理画面のWebアプリケーション実装例。
- APIG + Lambda
- DynamoDB
- フロントエンドはモダンFW利用、S3 + CloudFront 配信
あーまさに最近作ったのと同じ。
AWS マネジメントコンソールを作るのと同じ。
Cognito の IdP に Auth0 を使う。
Auth0 から token を取得して Cognito に渡して AWS の Credentials を取得して、AWS リソース類にアクセスする。
Cognito を挟むメリットって、AWS リソースに効率よく直接アクセスしたいからかな。
わざわざ Auth0 を使うのは、認証周りを楽にするためか?
Cognito オンリーでも Auth0 のみでもできそうだけど、いいとこ取りするとこうなるのかもと思ってたらちゃんとメリット・デメリットも説明があった。
Auth0 で、API 作ってクライアントの audience に設定するのはわかるんだけど、Auth0 側で Application と API の接続設定がいると思ってた。 設定無くても動くんだ。 最後の方の Angular セットアップしていくデモあたりでついていけなくなってしまった。
「動いてるからヨシ!」よりも実験してみませんか?カオスエンジニアリングのススメ #devio2020
Netflix が始めたやつですね。 障害注入は目的ではなく手段。 安定性と回復力は重要。 AWSのベストプラクティスの「故障のための設計」を加速させる。
みんな重視するポイントが違う。 銀の弾丸はない。 企画書で意識あわせ。 検証とデータで語る。
組織もシステムなので重要人物の行動を止めてカオスエンジニアリングを試す。
めっちゃチャレンジングできる環境じゃないと、カオスエンジニアリングを実際に行うことができる気がしない。
マイクロサービスにおけるログ管理とコスト #devio2020
分散したコンポーネントから大量にログが出力される。 そのため、集約して管理する必要がある。 集約すれば、クエリで検索や分析、アクセスの傾向から異常値の検出などできる。
ツールとしては、色々ある
- CloudWatch Logs
- Elasticsearch
- Datadog
- New Relic Logs
- Sumo Logic
一意なリクエストID、トレースID。
Forwareder、Fluentdとかをサイドカーで使ったり。スケール考える。コストも考える。
ログは掛け捨ての保険のようなもの。
本番でコストが爆発するので注意する。
ログは適切に。メモレベルなど意味のないものは出さない。
「スタート」「終了」や「エラー」のみで中身がないなど。
ログレベルは適切に。デバッグログは本番では出力されない。
保存期間も考える。
お金をかけてまで保存するログか見極める!
社員情報の可視化サービスを内製開発した話 #devio2020
同僚の強みや個性を可視化した社内ツール。 開発手法から、アーキテクチャまでとても濃い内容で参考なりました。
もともとは Wiki に入社時自ら書いていた。 内製ツールでは、AWS 認定資格表示の機能あり(クラメソらしい)。
まず、リーンキャンバスで、課題とターゲット解決策を模索。
次にインセプションデッキ作成し、ユーザーストーリーマッピングも作成。
共通語彙を作成し常にアップデート。
健康状態を図るために KPI/KGI を定める。
暗黙ルールを減らす Working Agreement
タスク完了の定義。
GitHub へ情報集約。
技術スタックが参考になる。
- Lang: TypeScript, JavaScript(Auth0 Rules)
- Frontend: Vue.js(Nuxt.js), Vuetify, Atomic Design, Figma
- Backend: APIG, Lambda, DynamoDB, CF, S3, SQS, SES, Amplify, CloudWathch, CDK
- Other: GitHub, Slack, VSCode, Auth0
今日から使えるIPv6 ~遊んでみよう編~
雰囲気でしかしらなかった IPv6 のお話。
自分が知ってることとしては...
IPv6 では基本的に下位 64bit はインタフェース ID として利用することが想定されているため、プロバイダからは /48~/64 のブロックが個別に払い出される。
そのため、IPv6 での IP 制限をする場合は上位 64bit だけとかでいい。
ぐらいです。
基本アドレスの付け方が違うだけ。
速度が早いわけではなく、使う人が少ないから早いだけ。
というお話をとてもノリがいい感じで進めてくれる録画ならではのセッションでした。
所感
やっと、折り返し地点です。
この先も気になるセッション目白押し。
結局 DAY4 はビデオセッション全部見てしまった。
これを書いた後に気がついたのですが、ライブセッションアーカイブされてて、そっちをまだ見てないという...
ゆっくり見よう。