Meguro.dev AWS re:Invent & LT 2018/12/14

2018.12.14

Meguro.dev AWS re:Invent & LT 2018/12/14

AWS re:Invent

  • AWS世界最大カンファレンス
  • 50,000人以上の参加者
  • 2,100以上のセッション

開発者が知っておくべきアップデート&新サービス 20選 by Nishitaniさん

20 API Gateway for WebSocket

API GatewayでWebSocketを使えるようになった。バックエンドはLambdaを始め他のAWSサービスに対応している。 より汎用的なAPIをフルマネージドで提供できる。

19. SQSのFIFOキューが東京リージョンに来た

キューイング処理

18. Well-Architected Tool

AWSのベストプラクティスに則っているかを確認するためのフレームワーク。ソリューションアーキテクトが個別に実施してきたチェックがツールとして自動でできるようになった。

これは使いたい!!!

17. LambdaでPython 3.7が使えるようになった

全リージョンで利用可能。

16. Amazon Textract

いわゆるOCR。画像ないから文字認識。文章だけでなく見出しやフォーム、テーブルを識別できる。機械学習のテクノロジーを使っている。 現時点では英語のみ対応している。Preview版のみ。

15. Amazon Timestream

データベースサービス。RDB・DynamoDB以外の新しいデータベースが今回のre:Inventで発表された。 時系列データを格納することに向いているデータベース。まだプレビュー版。

14. Amazon Personalize

レコメンデーションのナレッジをすぐに利用可能になる。学習データを投入すれば、推測リクエストを投げるだけでパーソナライズ処理の結果を受け取ることができる。まだプレビュー版。

13. Amazon Forecast

機械学習系サービス。Amazonが培った時系列予測のナレッジを活用した予測結果を利用可能。売上予測やトラフィック量の予測、原材料や消費財の必要量予測。オレゴンでプレビュー中。

12. AWS Cloud Map

マイクロサービス間の依存関係の把握を簡単にする。サービスディスカバリ。

11. App Mesh

マイクロサービスを監視・制御する仕組み。サービス間の通信方式を標準化して連携状況の可視化と可用性の確保。App Mesh自体は無料。パブリックプレビュー。サービスメッシュ。

10. AWS Toolkits for PyCharm, IntelliJ and VS Code

各IDEでサーバーレスアプリケーションの開発、デバッグ、デプロイを可能になった。 Apache License, Version 2.0でのオープンソース。

SAM CLIに依存している。

9. AWS Step Functions API Connectors

Step Functionsのステートマシンから他のAWSサービス群に対して直接操作できるようになり、Lambdaを介在させる必要がなくなった。

  • DynamoDB:既存のテーブルからitemの取り出し、新規itemの追加
  • AWS Batch: バッチジョブの開始と完了待機
  • Amazon ECS/Fargate タスク実行

8. Amazon Quantum Ledger Database

アプリケーションデータの変更履歴を記録することで変更のトラッキングやベリファイを可能にするためのデータベースサービス。SQLライクなクエリをサポート。一般的なブロックチェーンフレームワークと比べて高速に動作。

7. AWS Lambda Layers

様々なLambdaファンクションで共通利用するコンポーネントを個別に持つのではなく、Lambda Layerとして定義して参照できるようなった。 色々なファンクションで使うユーティリティを共通利用できるようになった。

複数Layerを適用する(最大5つ)ことでコールドスタートに影響する場合あり。

/optの下にレイヤーで指定した順に展開されるようになっている。 同じパスを上書きしてしまうので注意が必要。

6. Amplify Console

SPAのデプロイ作業を簡単にCI/CDできるようにするツール。

5. Amazon Corretto

無料で利用できるOpen JDK。LTS。

4. DynamoDB Transactions

複数テーブルに対するトランザクション処理が可能になった。

TransactionWriteItems PutItem/UpdateItem/DeleteItemなど書き込み系。 RDBとのTransactionとの違い:Transaction中のアイテムをTransaction外からアクセスできてしまう

3. AWS Transfer for SFTP

S3 APIを利用することなくSFTPでS3バケットにアクセスできるようになった。ユーザー権限はIAMロールで制御する。

フルマネージドで自動的にスケールする。冗長性も確保されている。

2. AWS LambdaのRubyサポート

Ruby 2.5.3、最新のStableバージョンとなっている。既に東京リージョンでも利用可能。

依存関係はbundlerを利用して解決する。$ bundle installのときに--path= vendor/bundleの指定をすると良い。 クラスを定義してメソッドを記述すルコとも可能。

1. CloudWatch Logs Insights

AWSが生成するログの解析や可視化を実現するフルマネージドサービス。CloudWatch Logsで収集したログに対して、クエリ言語を利用してソースや時間でのフィルタリング・ビジュアライズを実行できる。

ElasticSearchとかを使わなくて良くなり、CloudWatch Logsだけで完結できるようになる。

クエリ結果をDashboardに追加することもできる。

クエリによりスキャンされたログデータ量に応じた課金がある。

LT1. ServiceWorkerを使ってWeb Pushを実装してみるをAmplify Consoleでサクッと開発してみる

SPAを爆速で開発してデプロイするならこれがいいかも。

LT2. Lambdaのソース管理

SAM CloudFormation拡張 S3へのパッケージング(デプロイ)

APEX terraform integrated easy deploy easy invoke layer未対応

LT3. AWS tool kitとCloud Watch Insightを試してみたよ

LT4. AppSync 設計の Tips 5選

AppSyncのアップデート、データソースとしてAuroraを使えるようになった。 「AppSync Mob401」で検索!

  • バージョンレス
  • nullability
  • ページネーション
  • Authorization Cognito
  • CI/CD Amplify ConsoleのMulti-environmentを利用する

LT. 5 SAMでLambda LayerをDeployする方法を調べる

感想