何となくわかった気になる週刊AWS – 2021/7/26週

## はじめに

お久しぶりです、なじむです。
先週に引き続き、AWS Japan さんがまとめている[週刊AWS](https://aws.amazon.com/jp/blogs/news/tag/%E9%80%B1%E5%88%8Aaws/)で確認した内容を自分のメモ用に残していこうと思います。三週間坊主にならないように…そして今回のアップデート内容、全然理解できず自分の知識の無さに絶望しています。。
今回は[7/26週](https://aws.amazon.com/jp/blogs/news/aws-weekly-20210726/)のアップデートです。

## 7/26(月)

### [Amazon S3 Access Points のエイリアスは、S3 バケット名を必要とするあらゆるアプリケーションでアクセスポイントを使いやすくするためのものです](https://aws.amazon.com/jp/about-aws/whats-new/2021/07/amazon-s3-access-points-aliases-allow-application-requires-s3-bucket-name-easily-use-access-point/)

S3 Access Points でエイリアスが作成されるようになりました。これにより、今までアクセスポイントに対応していなかったアプリケーションでも、通常のS3のように使用できるようになりました。

S3 Access Points をざっくり言うと、複数ユーザがアクセスする場合にS3 バケットポリシーを大量に設定すると訳が分からなくなるので、ユーザ毎にアクセスポイントという形で小分けに設定しようという機能です。

実際の画面は以下です。右端にエイリアスの欄ができていることが確認できます。末尾の英数字がランダムに発行されます。

![20210809_161651.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/396510/fbf8f3f3-0065-9c56-e033-5dfdb9748685.jpeg)

詳細な解説や具体例は[S3 アクセスポイントのバケットスタイルエイリアスが超絶便利](https://qiita.com/hayao_k/items/5e38b728ef02f8c33773)に非常にキレイにまとまっていましたので、こちらを参照するのが良いかと思います。

- 日本リージョン対応状況
  - 東京：対応
  - 大阪：対応


### [AWS App2Container が Windows の複合多層アプリケーションのコンテナ化をサポート](https://aws.amazon.com/jp/about-aws/whats-new/2021/07/aws-app2container-now-supports-containerization-of-complex-multi-tier-windows-applications/?nc1=h_ls)

※これよく分かりませんでした。。。

.NET、Java アプリケーションをコンテナ化されたアプリケーションに変換するためのコマンドラインツールである App2Container で、以下のような Windows の多層アプリケーションのコンテナ化とデプロイをサポートするようになりました。

1. Windows の多層アプリケーション
  個別にコンテナ化された多層アーキテクチャで動作する IIS アプリケーションや Windows サービスであり、ECS または EKS クラスターにデプロイされ、デプロイされたアプリケーション間の通信用のネットワークリソースを作成するもの
1. 同一ホスト上の協調アプリケーション
  同一ホスト上で動作する複数のアプリケーションを単一のコンテナに入れてコンテナ化したもの

アップデートの内容から抜粋してみましたが、なるほど分からん状態です。有識者がいたら解説してほしいアプデです。

対応状況も記載がなかったので確証はないのですが、App2Container は CLI のツールなので、リージョンとかではなく CLI が使えれば特に問題ないのだろうと思います。

- 日本リージョン対応状況
  - 東京：対応
  - 大阪：対応

### [AWS Lambda は現在、中東 (バーレーン)、アジアパシフィック (大阪)、およびアジアパシフィック (香港) リージョンで最大 10 GB のメモリと 6 つの vCPU コアをサポートするように](https://aws.amazon.com/jp/about-aws/whats-new/2021/07/aws-lambda-supports-10-gb-memory-6-vcpu-cores-bahrain-osaka-hong-kong-regions/)

大阪リージョンで、サーバレスでプログラムを実行できる Lambda のメモリを 10GB まで拡張できるようになりました（これまでは約 3GB）
Lambda 設定したメモリ容量により vCPU 数（と単位時間あたりの料金）も変わりますが、10GB に設定した場合は 6 Core になります。何 GB で何 vCPU かの対比表は見つかりませんでしたが、[公式ドキュメント](https://docs.aws.amazon.com/lambda/latest/dg/configuration-function-common.html)では、1,769MB で 1vCPU と書いてあるので、10,240GB で 6vCPU ならその通りなのかなと思いました。

実際の画面では確かに 10,240MB 設定できるようになっています。

![20210807_164919.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/396510/f180114d-fd69-5826-bc14-333025ec3225.jpeg)

東京リージョンも当然対応しています。

- 日本リージョン対応状況
  - 東京：対応
  - 大阪：対応

## 7/27(火)

### [AWS CloudTrail が Amazon EBS direct API のデータイベントのログ記録のサポートを開始](https://aws.amazon.com/jp/about-aws/whats-new/2021/07/aws-cloudtrail-supports-logging-data-events-amazon-ebs-direct-apis/)

スナップショットへのデータの直接書き込み、スナップショットのデータの読み取り、2 つのスナップショット間の違いや変更の特定等の操作を行うことができる EBS direct API のログが CloudTrail に記録されるようになりました。

| API | 操作 | 備考 |
| --- | --- | --- |
| [StartSnapshot](https://docs.aws.amazon.com/ebs/latest/APIReference/API_StartSnapshot.html) | スナップショットの開始処理 |  |
| [CompleteSnapshot](https://docs.aws.amazon.com/ebs/latest/APIReference/API_CompleteSnapshot.html) | スナップショットの完了処理 |  |
| [PutSnapshotBlock](https://docs.aws.amazon.com/ebs/latest/APIReference/API_PutSnapshotBlock.html) | スナップショットへのデータの直接書き込み | 今回のアプデで追加 |
| [ListSnapshotBlocks](https://docs.aws.amazon.com/ebs/latest/APIReference/API_ListSnapshotBlocks.html) | スナップショットの情報を表示 | 今回のアプデで追加 |
| [ListChangedBlocks](https://docs.aws.amazon.com/ebs/latest/APIReference/API_ListChangedBlocks.html) | 2 つのスナップショット間の違いや変更の特定 | 今回のアプデで追加 |
| [GetSnapshotBlock](https://docs.aws.amazon.com/ebs/latest/APIReference/API_GetSnapshotBlock.html) | スナップショットのデータの読み取り | 今回のアプデで追加 |

実際の設定画面は以下です。EBS direct API を CloudTrail に記録するためには、CloudTrail の設定画面にある、イベントセレクターで "高度なイベントセレクター" から有効にする必要があります。

![20210808_020105.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/396510/7239dd5d-1cfc-77fb-f850-07c82f19a5b1.jpeg)

設定後、確かに実行した EBS direct API が有効になっていることが確認できました。
証跡を設定しなくても参照できるイベント履歴では確認できず、証跡を設定した後の CloudwatchLogs からであれば確認できました（一部抜粋）

![20210808_020925.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/396510/d52b0c92-8077-b383-333e-9ed5343914a2.jpeg)

EBS direct API の実行例は毎度のことながらクラスメソッド社のブログを参照ください。
(参考) [[re:Invent 2019] EBS direct APIs でEBSスナップショットのデータの中身を比較してみた](https://dev.classmethod.jp/articles/reinvent-2019-ebs-direct-apis-try/)

- 日本リージョン対応状況
  - 東京：対応
  - 大阪：対応

### [Amazon Route 53 が Route 53 Application Recovery Controller を発表](https://aws.amazon.com/jp/about-aws/whats-new/2021/07/amazon-route-53-announces-route-53-application-recovery-controller/)

DNS の権威サービスである Route 53 に Amazon Route 53 Application Recovery Controller という新機能が GA となりました。

冗長構成を組む場合、単一のリージョンの複数 AZ にアプリケーションを配置し、ELB で冗長化するのが一般的かと思います。しかし、システムによってはこれよりも高い可用性や RTO が求められる場合があり、複数 AZ 以外にも、複数のリージョンやオンプレへも冗長化を行う構成になっていることがあります。Amazon Route 53 Application Recovery Controller を使用することで、より高い可用性、より小さい RTO が必要なアプリケーションの構成を行うことができます。
実際の環境を構築していないので字面でしか理解していないのですが、[Amazon Route 53 アプリケーション復旧コントローラーの紹介](https://aws.amazon.com/jp/blogs/news/amazon-route-53-application-recovery-controller/)に詳細な解説と紙芝居形式のデモがありましたので、是非ご覧ください。

Route 53 自体はグローバルサービスなので、どちらのリージョンも対応しています。

- 日本リージョン対応状況
  - 東京：対応
  - 大阪：対応

## 7/28(水)

### [AWS DataSync が、AWS アジアパシフィック (大阪) リージョンで利用可能に](https://aws.amazon.com/jp/about-aws/whats-new/2021/07/aws-datasync-now-available-aws-osaka-region/)

オンプレミスストレージシステムと AWS ストレージサービス（S3、EFS、FSx 等）間、および AWS ストレージサービス間で簡単にデータ転送するためのサービスである AWS DataSync が大阪リージョンで使用できるようになりました。

実際の画面は以下です。オンプレ <-> AWS 間を選択した場合に同期できる製品は以下のようです。

![20210807_172736.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/396510/502b3547-1405-4d14-e7bd-8f81c6286b7c.jpeg)

- 日本リージョン対応状況
  - 東京：対応
  - 大阪：対応

### [Amazon DynamoDB グローバルテーブルが、アジアパシフィック (大阪) リージョンで利用可能に](https://aws.amazon.com/jp/about-aws/whats-new/2021/07/amazon-dynamodb-global-tables-are-now-available-in-the-asia-paci/)

NoSQL のマネージドサービスである DynanoDB のグローバルテーブルが大阪リージョンで使用できるようになりました。DynamoDB グローバルテーブルは複数リージョンの DynamoDB で、低レイテンシー（10 ミリ秒未満）で自動的にデータのレプリケーションを行える特徴を持っており、低レイテンシーのアプリケーション構築、DR サイトの構築に有効です。
レプリケーションの動作に関しては毎度お世話になっているクラスメソッドさんのブログが非常に参考になりました。
(参考) [DynamoDBグローバルテーブルを作成して異なるリージョン間での同期を確認してみた](https://dev.classmethod.jp/articles/dynamodb-global-table-creating/)

実際の画面は以下です。今回は追加のリージョンは指定していませんが、ここまでできれば追加はできるかと思います。

![20210807_173615.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/396510/b901370b-8791-e6bc-c504-863c83bdc657.jpeg)

- 日本リージョン対応状況
  - 東京：対応
  - 大阪：対応

### [AWS Amplify が Apple でのサインインのサポートを開始](https://aws.amazon.com/jp/about-aws/whats-new/2021/07/aws-amplify-now-supports-sign-in-with-apple/)

認証基盤やストレージ等、バックエンドを手軽に構築でき、Web アプリやモバイルアプリの開発に注力できる Amplify というサービスがあります。re:Invent 2020 で AWSアカウントを作成せずにアプリの管理が行える Admin UI がリリースされました。今回のアップデートでは Admin UI から認証方法（Authentication）の API に Sign in with Apple が設定できるようになり、フロントエンドのアプリの認証方法に Sign in with Apple を使用することができるようになっています（多分。ここちょっと自信ないですが多分そう）

実際の設定画面は以下です。Amplify の Admin UI で Sign in with Apple が設定できるようになっています。

![20210807_181112.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/396510/9b1ab750-5cd8-2a26-64ce-183a4e20e888.jpeg)

入力に必要な Service ID 等は Apple Developer で設定が必要らしいです。当方は Apple Developer Program に登録していない（年間約12,000円程かかるらしい）ので諸々設定ができませんでしたが、必要な項目の設定方法は AWS のブログが参考になるかと思います。
(参考) [Enable Sign in with Apple on your app with AWS Amplify](https://aws.amazon.com/jp/blogs/mobile/enable-sign-in-with-apple-on-your-app-with-aws-amplify/)

大阪リージョンは Amplify 自体が未対応でした。

- 日本リージョン対応状況
  - 東京：対応
  - 大阪：未対応 ※Amplify 自体が未対応

## 7/29(木)

### [Amazon Neptune ML is now generally available with support for edge predictions, automation, and more](https://aws.amazon.com/jp/about-aws/whats-new/2021/07/amazon-neptune-ml-generally-available-support-edge-predictions-automation-and-more/)

グラフ専用の機械学習手法であるグラフニューラルネットワーク（GNN）を用いた Amazon Neptune ML が GA となりました。Neptune ML とは何ぞや？についてはクラスメソッドさんの[ついにグラフ構造を機械学習できるAmazon Neptune MLがリリースされました](https://dev.classmethod.jp/articles/reinvent2020-amazon-neptune-ml/)が参考になるかと思います。

今回は実際に [Neptune ML quick-start CloudFormation stack](https://docs.aws.amazon.com/ja_jp/neptune/latest/userguide/machine-learning.html#machine-learning-quick-start) から CloudFormation をデプロイし、簡単に Neptune ML を構築してみました。
が、どうやって触れば良いのか分からず、触ってみた系のブログ記事も少ないので、どうやって情報収集したものか…というのが現状です。ここは理解できたら今後ブログに起こしたいと思います…

大阪リージョンは Neptune 自体が未対応のため、Neptune ML も未対応です。

- 日本リージョン対応状況
  - 東京：対応
  - 大阪：未対応

### [Amazon Neptune now supports the openCypher query language](https://aws.amazon.com/jp/about-aws/whats-new/2021/07/amazon-neptune-supports-opencypher/)

グラフ型データベースのマネージドサービスである Amazon Neptune で、新たに openCypher を用いてクエリできるようになりました（これまで Gremlin、SPARQL に対応）

大阪リージョンは Neptune 自体が未対応のため、本機能も未対応です。

- 日本リージョン対応状況
  - 東京：対応
  - 大阪：未対応

## 7/30(金)

### [AWS AppSync が GraphQL API の AWS Lambda によるカスタム認証のサポートを開始](https://aws.amazon.com/jp/about-aws/whats-new/2021/07/aws-appsync-supports-custom-authorization-with-aws-lambda-graphsql-apis/)

GraphQL API を簡単に作成できるマネージドサービスである AppSync の認証モードに Lambda カスタムオーソライザが使用可能になりました。これまで、AppSync の認証モードには以下 4 つがありましたが、それでは対応できない要件の場合に対応するため Lambda カスタムオーソライザが追加となっています。

- API キー
- Cognito ユーザプール
- OpenID Connect
- IAM

GraphQL って何ぞや？というところは [RESTの課題とGraphQL 〜GraphQLを簡単に使ってみる〜](https://qiita.com/NagaokaKenichi/items/a4991eee26e2f988c6ec)が非常に参考になりますので、是非ご覧ください。

実際の画面は以下です。認証モードに Lambda が追加されています。

![20210809_145536.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/396510/5b416c90-4fdb-119f-e2bb-56826b70233e.jpeg)

AppSync は先日大阪リージョンに対応したので、こちらの機能も使用できるようになっています。

- 日本リージョン対応状況
  - 東京：対応
  - 大阪：対応

### [Introducing new Amazon EC2 G4ad instance sizes](https://aws.amazon.com/jp/about-aws/whats-new/2021/07/introducing-new-amazon-ec2-g4ad-instance-sizes/)

2020年12月に発表された AMD Radeon Pro V520 GPU を搭載した G4ad インスタンスで、以下の小さいインスタンスサイズが使用できるようになりました。G4ad.xlarge、G4ad.2xlarge は、視覚効果とアニメーションの作成、および設計とエンジニアリングアプリケーションの実行に使用されるゲームストリーミングと仮想ワークステーションに最適なようです。

- G4ad.xlarge
- G4ad.2xlarge

既存のインスタンスサイズとの比較だと以下のようになります。 
これまで、GPU 1枚だと g4ad.4xlarge が最小サイズでしたが、その半分以下の価格で使用できるようになっています（ただし、メモリや CPU、ストレージは 1/4）
(参考) [Amazon EC2 G4 インスタンス](https://aws.amazon.com/jp/ec2/instance-types/g4/)

| インスタンス | オンデマンド単価(*1) | GPU | vCPU | メモリ | ストレージ | ネットワークパフォーマンス|
| --- | --- | --- | --- | --- | --- | ---|
| g4ad.xlarge | 0.51082 USD | 1 | 4 | 16 GiB | 150 GB NVMe SSD | 最大 10 ギガビット|
| g4ad.2xlarge | 0.7303 USD | 1 | 8 | 32 GiB | 300 GB NVMe SSD | 最大 10 ギガビット|
| g4ad.4xlarge | 1.17 USD | 1 | 16 | 64 GiB | 600 GB NVMe SSD | 最大 10 ギガビット|
| g4ad.8xlarge | 2.34 USD | 4 | 32 | 128 GiB | 1200 GB NVMe SSD | 15 ギガビット|
| g4ad.16xlarge | 4.68 USD | 8 | 64 | 256 GiB | 2400 GB NVMe SSD | 25 ギガビット|

*1 東京リージョンの Linux での価格

大阪リージョンは未対応でした。G4ad 以外にも、大阪リージョンだと未対応のインスタンスタイプは多かったです。
東京リージョンの場合でも、G 系のインスタンスはデフォルトだと起動可能な vCPU 数が 0 になっているので制限解除を行う必要があります。

- 日本リージョン対応状況
  - 東京：対応
  - 大阪：未対応

### [Amazon WorkSpaces Adds Support for USB YubiKey Universal 2nd Factor (U2F) Authentication on PCoIP Windows WorkSpaces](https://aws.amazon.com/jp/about-aws/whats-new/2021/07/amazon-workspaces-support-usb-yubikey-universal-second-factor-u2f-authentication-pcoip-windows-workspaces/)

VDI（仮想デスクトップ）のマネージドサービスである WorkSpaces への接続に使用する WorkSpaces アプリ（Windows 版）で、Ver.4.0.1 から YubiKey デバイスをサポートするようになりました。

YubiKey は Yubico 社が提供するデバイスで、ワンタイムパスワードの生成や U2F 認証等を行うことができます。今回のアップデートにより、例えば WorkSpaces からでも Google アカウントへのログインに YubiKey を使用することができるようになりました。

YubiKey デバイスを持っていないので紹介だけです。
大阪リージョンは WorkSpaces が未対応のため、本機能も未対応としています。

- 日本リージョン対応状況
  - 東京：対応
  - 大阪：未対応

### [Amazon Elastic Block Store がべき等ボリューム作成のサポートを開始](https://aws.amazon.com/jp/about-aws/whats-new/2021/07/amazon-elastic-block-store-now-supports-indempotent-volume-creation/)

AWSCLI による EBS ボリュームの作成時、トークンを指定することで（--client-token オプションを指定することで）、冪等性のあるボリュームを作成することができるようになりました。

毎度おなじみクラスメソッドさんのブログ [EBSボリューム作成時のべき等性を担保できるようになりました](https://dev.classmethod.jp/articles/ensuring-idempotency-for-ebs/) が実動作も検証されていて非常に参考になりますので、こちらを参照するのがお勧めです。

バッチ処理とかでトークンを付けると安心なんでしょうか。実際の利用シーンは思いついていませんが、良い機能のようです。

- 日本リージョン対応状況
  - 東京：対応
  - 大阪：対応

## 感想

先週有効にした Network Firewallを無効にし忘れていて、$200以上かかっていることに気がつき絶望しました。検証用の環境だし、リソースは都度削除しているしとか思って Budgets の設定をサボると痛い目を見ますね…速攻で設定しました。
そして8/7(土)には公開しようと思っていたのですが、アップデートの内容がよく分からず非常に時間がかかってしまいました（知識の無さに絶望…）ただ、やらないより分からないことが分かることの方が意義があると思うので来週も頑張ります。