[AWS] re:Invent2019 の自分まとめ

# 概要

- re:Invent2019で発表された全てではありません
- 自社サービスで活用可能性がありそうなものを独自で抽出しています
- 全てを知る場合は `Whats' New` の確認をおすすめします

# 新サービスにあるBeta/Previewについて

- [re:Invent 前に理解しておくべきベータ/プレビューサービスの扱いについて](https://dev.classmethod.jp/cloud/aws/understanding-aws-beta-services/)

# Amazon S3アクセスポイント

- [What's New](https://aws.amazon.com/about-aws/whats-new/2019/12/amazon-s3-access-points-manage-data-access-at-scale-shared-data-sets/)
- [FAQ](https://aws.amazon.com/s3/faqs/#S3-Access-Points)

## 概要

- S3への新しいアクセス方法
- バケットポリシーの管理がアクセスポイント単位で可能になる

## ユースケース

- [S3アクセスポイントのうれしい点を自分なりの理解で解説してみる](https://dev.classmethod.jp/cloud/aws/explain-the-good-point-of-s3-access-points/)
- 複数のアクセス設定をバケットポリシー1つで管理していたものをポリシー別にアクセスポイントを作成して煩雑さを取り除く
- バケットポリシーの設定ミスの影響を最小限に留めることができる
- VPC内アクセスに限定するアクセスポイントを発行できセキュリティ向上

## コスト

- なし

# AWS Compute Optimizer

- [What's New](https://aws.amazon.com/about-aws/whats-new/2019/12/introducing-aws-compute-optimizer/)
- [Blog](https://aws.amazon.com/blogs/aws/aws-compute-optimizer-your-customized-resource-optimization-service/)

## 概要

- 機械学習ベースの最適なEC2インスタンスをオススメしてくれるサービス
- M、C、R、T、Xインスタンスに対して有効

## ユースケース

- EC2インスタンスの最適化を行いたいときの判断材料として利用する

## コスト

- Computeリソース（おそらくEC2？？）
- CloudWatchのモニタリング料金

> どれぐらいのコストがかかるか未知数（そんなかかんない？）

# API Gateway HTTP API (Beta)

- [What's New](https://aws.amazon.com/about-aws/whats-new/2019/12/amazon-api-gateway-offers-faster-cheaper-simpler-apis-using-http-apis-preview/)
- [Blog](https://aws.amazon.com/blogs/compute/announcing-http-apis-for-amazon-api-gateway/)

## 概要

- REST APIよりも安く利用可能です（最大71％OFF）
- APIプロキシ機能のみ提供します
- LambdaやHTTPバックエンドにプロキシするAPIを構築するために最適化されサーバレスに最適
- OIDC、OAuth2をサポート
- CORSもOK

## ユースケース

- Lambdaのみで構築するシンプルなAPI
- HTTPのプロキシAPI

## コスト

- REST APIと比較して最大71%OFF

# Amazon CodeGuru（Preview）

- [What's New](https://aws.amazon.com/about-aws/whats-new/2019/12/aws-announces-amazon-codeguru-for-automated-code-reviews-and-application-performance-recommendations/)
- [Product Page](https://bookshelf.vitalsource.com/)

## 概要

- 自動化コードレビュー
- 負荷の高い、コストのかかるコードを見つけ修正・改善の提案を行ってくれる
    - アプリケーションパフォーマンス向上に役立つ
- CodeCommitにリポジトリがり関連付けることで使用可能
- 東京リージョンはまだ（2019年12月5日現在）

## ユースケース

- コード改善に利用する

## コスト

- 1か月にスキャンされる `コード100行あたり0.75ドル`
- 200行のコードを１００プルリクエストした場合
    - 200/100 * 0.75 * 100 = $150
- 結構高い！

# Fargate Spot

- [What's New](https://aws.amazon.com/about-aws/whats-new/2019/12/aws-launches-fargate-spot-save-up-to-70-for-fault-tolerant-applications/)
- [Price](https://aws.amazon.com/fargate/pricing/)
- [Fargateをスポットで7割引で使うFargate Spotとは？](https://dev.classmethod.jp/cloud/aws/fargate-spot-detail/)
- [Fargate Spotにおける各Provider毎のタスク数起動推移を検証してみた](https://dev.classmethod.jp/cloud/aws/fargate-spot-task-count/)

## 概要

- EC2スポットインスタンスのFargate版
- 最大で70%オフ

## ユースケース

- フォールトトレラントな箇所
    - 一部が落ちても問題なく可動するシステム

## コスト

- 1時間あたりのvCPU単位
    - $0.015168（通常：$0.05056）
- 1時間あたりのGB単位
    - $0.001659（通常：$0.00553）

# Amazon Elasticsearch Service UltraWarm（Preview）

- [What's New](https://aws.amazon.com/jp/about-aws/whats-new/2019/12/aws-announces-ultrawarm-preview-for-amazon-elasticsearch-service/)
- [UltraWarm新登場！Elasticsearch Serviceのコストを90%削減！？](https://dev.classmethod.jp/cloud/aws/reinvent2019-ultra-warm/)
- [Doc](https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/ultrawarm.html)

## 概要

- ESの最大懸念点であるコスト改善
- 格納データを高頻度、低頻度に分けることでコスト削減される
    - 高頻度：EBS
    - 低頻度：S3
- 最大900TBものHot-Warm層を設けることで90%ものコスト削減を実現する
- バージョン６．８から利用可能
    - 新規ドメインに適用可能
- 東京リージョンはまだ（２０１９年１２月５日現在）

## ユースケース

- アクセス頻度に偏りがあるES
- UltraWarmからのデータ取得性能が許容可能
- コストに悩んでいる

## コスト

- GBあたりのコストを最大90％削減する

# AWS Step Functions Expressワークフロー

- [What's New](https://aws.amazon.com/jp/about-aws/whats-new/2019/12/introducing-aws-step-functions-express-workflows/)
- [Blog](https://aws.amazon.com/jp/blogs/aws/new-aws-step-functions-express-workflows-high-performance-low-cost/)
- [Step Functionsに高パフォーマンス低コストのExpressワークフローが追加されました！](https://dev.classmethod.jp/cloud/aws/step-functions-update-express-workflows/)
- [Standard VS Express](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-standard-vs-express.html)
- [Price](https://aws.amazon.com/jp/step-functions/pricing/)

## 概要

- StepFunctionsの新しいワークフロー
- 従来のワークフローよりも高スループットと低コストを実現する
- 100,000/秒を超える呼び出しをサポート
    - 従来：2,000/秒
- 従来のワークフローとかなり仕様が異なる

## ユースケース

- IoTなどの高スループットが必要な時
- 従来ワークフローの性能が不要でコスト削減したい時
    - 実行時間制限が5分なので超短期間処理に使用する

## コスト

- 実行回数、実行時間、メモリ消費量に基づく料金が設定されている
    - 従来は状態遷移毎に対して設定

# AWS Identity and Access Management（IAM）Access Analyzer

- [What's New](https://aws.amazon.com/jp/about-aws/whats-new/2019/12/introducing-aws-identity-and-access-management-access-analyzer/)
- [IAM Access Analyzer を一発で有効にしてみた](https://dev.classmethod.jp/cloud/aws/create-analyzer-all-region/)

## 概要

- IAM管理サービス
    - IAMからワンクリックぽちっ！で使える
- ポリシーが意図したサービスへのアクセスのみ提供することを監視
- ポリシーの追加、更新を検知できる
- AWS Security Hubはこのサービスと統合される

## ユースケース

- セキュリティ向上

## コスト

- なし

# Access Analyzer for Amazon S3

- [What's New](https://aws.amazon.com/about-aws/whats-new/2019/12/introducing-access-analyzer-for-amazon-s3-to-review-access-policies/)

## 概要

- S3のアクセスポリシー監視サービス
- 不要な公開バケットを生み出さないようにする

## ユースケース

- セキュリティ向上

## コスト

- なし

# Amazon CloudWatch Contributor Insights（Preview）

- [What's New](https://aws.amazon.com/jp/about-aws/whats-new/2019/11/new-amazon-cloudwatch-contributor-insights-for-amazon-dynamodb-preview-helps-you-identify-frequently-accessed-keys-and-database-traffic-trends/)

## 概要

- DynamoDBテーブルのキーとトラフィックの傾向をひと目で確認できる診断サービス
- 頻繁にアクセスされるキーの特定に役立つ

## ユースケース

- DynamoDBの最適化

![スクリーンショット 2019-12-05 16.57.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/97615/060a7cec-69f2-838e-e11f-2a51651fcbca.png)


## コスト

- 1ルールあたり$0.50
- ルールに一致する100万イベントごとに$0.30

# AWSコンソールからリージョンにすばやくアクセス

- [What's New](https://aws.amazon.com/jp/about-aws/whats-new/2019/11/faster-access-to-regions-on-AWS-management-console/)

## 概要

- AWSコンソール右上のリージョン選択にリージョンコード（ap-northeast-1とか）が表示されるようになった

## ユースケース

- なし

## コスト

- なし

# Amazon Athena ユーザー定義関数（UDF）のサポート(Prevew)

- [What's New](https://aws.amazon.com/jp/about-aws/whats-new/2019/11/amazon-athena-adds-support-for-user-defined-functions-udf/)
- [Amazon Athenaのユーザー定義関数(UDF)のPreview版を試してみた](https://qiita.com/navitime_tech/items/8de8f40f22e824849325)

## 概要

- ユーザー定義関数が利用可能になった
- クエリを発行するとJavaで記述したLambdaが起動してレコードに対する処理を実行可能
    - データ圧縮、データ加工などなど
- 1クエリで取得できる複数レコードに対して1Lambdaが起動する
- 東京リージョンはまだ（2019年12月5日現在）
    - バージニア北部のみ

## ユースケース

- クエリ結果取得と同時に処理が必要な場合

## コスト

- Lambda起動分のコスト

# AWS for Fluent BitがAmazon Kinesis Data Streamsをサポート

- [What's New](https://aws.amazon.com/jp/about-aws/whats-new/2019/11/aws-for-fluent-bit-now-supports-amazon-kinesis-data-streams/)

## 概要

- FluentBitからKinesisDateStreamsへログ送信できるようになった
    - FluentBit：ログ転送ツール
        - ログをまとめて別の場所にポンッとできたり

## ユースケース

- Kinesisへログを投げてログ解析基盤を構築する
- CloudWatchLogsはコスト高いので別ログ基盤を構築する

## コスト

- なし

# AWS タグポリシー

- [What's New](https://aws.amazon.com/jp/about-aws/whats-new/2019/11/aws-launches-tag-policies/)
- [Blog](https://aws.amazon.com/jp/blogs/news/new-use-tag-policies-to-manage-tags-across-multiple-aws-accounts/)

## 概要

- タグ付け管理の支援を行う
- 指定できるタグを指定したりタグに指定できる値を制限したり出来る
- AWS Organizationで一元管理できる

## ユースケース

- コスト管理用タグのつけ間違えやつけ忘れを監視する

## コスト

- なし

# AWS Lambda非同期呼び出しの宛先をサポート

- [What's New](https://aws.amazon.com/jp/about-aws/whats-new/2019/11/aws-lambda-supports-destinations-for-asynchronous-invocations/)
- [Doc](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html)

## 概要

- Lambda非同期呼び出し時に結果を受け取る宛先を指定できるようになった
    - 別のLambda
    - SNS
    - SQS
    - EventBridge（CloudWatchEvents）

## ユースケース

- 非同期呼び出ししたLambdaの結果を別処理で利用したい場合

## コスト

- なし

# AWS Lambda Provisioned Concurrency

- [What's New](https://aws.amazon.com/jp/about-aws/whats-new/2019/12/aws-lambda-announces-provisioned-concurrency/)
- [Blog](https://aws.amazon.com/jp/blogs/news/new-provisioned-concurrency-for-lambda-functions/)
- [Provisioned Concurrencyで予約したLambda実行環境が初期されるまでの時間を計測してみた](https://dev.classmethod.jp/cloud/aws/calc-provisioned-concurrency-time/)

## 概要

- Lambdaでコールドスタート対策が公式にサポートされた
- AutoScalingを利用してProvisionedする値を動的変更することも可能

## ユースケース

- 初期起動時からシビアなレスポンスを必要とする処理

## コスト

- 追加コスト必要
    - https://aws.amazon.com/lambda/pricing/?nc1=h_ls

# AWS Lambda Supports Amazon SQS FIFO as Event Source

- [What's New](https://aws.amazon.com/jp/about-aws/whats-new/2019/11/aws-lambda-supports-amazon-sqs-fifo-event-source/)
- [Blog](https://aws.amazon.com/jp/blogs/compute/new-for-aws-lambda-sqs-fifo-as-an-event-source/)
- [Lambda イベントソースに FIFO キューが指定できるようになりました](https://dev.classmethod.jp/cloud/aws/lambda-event-source-fifo-support/)

## 概要

- LambdaのイベントトリガーにSQSのFIFOを指定することが出来るようになった
- 順序保証されたキューの取得が可能

## ユースケース

- メッセージ取得に順序保証が必要な処理

## コスト

- なし

# Amazon CloudWatch ServiceLens

- [What's New](Amazon CloudWatch ServiceLens)
- [Blog](https://aws.amazon.com/jp/blogs/news/visualize-and-monitor-highly-distributed-applications-with-amazon-cloudwatch-servicelens/)

## 概要

- アプリケーションの健全性、パフォーマンス、可用性を1か所で視覚化および分析できる新しい機能
- CloudWatchメトリクス、ログ、X-Rayからのトレースを結びつけてアプリケーションの依存関係をビューする
- AWS X-Rayを有効にすることで利用可能

## ユースケース

- よりワークロードに寄せたモニタリングの実施
- マイクロサービスなどの分散された処理の一元モニタリング

## コスト

- ServerLens自体はコストなし