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

## はじめに

こんにちは、なじむです。
今週もやっていきましょう AWS Japan さんがまとめている[週刊AWS](https://aws.amazon.com/jp/blogs/news/tag/%E9%80%B1%E5%88%8Aaws/)で確認した内容の自分用メモ。勝負の3週間目です。これを乗り越えれば習慣化されると信じたい。
今回は[8/2週](https://aws.amazon.com/jp/blogs/news/aws-weekly-20210802/)のアップデートです。

## 8/2(月)

### [Amazon Redshift が認証プロファイルで JDBC/ODBC の使用を簡素化](https://aws.amazon.com/jp/about-aws/whats-new/2021/08/amazon-redshift-simplifies-use-jdbc-odbc-authentication-profile/)

DWH のマネージドサービスである Redshift に JDBC, ODBC, pythonドライバーで接続する際、認証情報をクライアント側のプロパティに一元的に歩zンする任s尿プロファイルをサポートするようになりました。

こんな感じで python のスクリプトを作成して実行します。そうすると、認証プロファイルが作成されます。パスワード情報はどこいった？という感じだったのですが、むしろパスワードをつけるとエラーになりました。

```python
import boto3
client = boto3.client('redshift')

# create_authentication_profile
client.create_authentication_profile(
    AuthenticationProfileName='nagym-test',
    AuthenticationProfileContent='{ \
        "host": "nagym-redshift-cluster.xxxxxxxxxx.ap-northeast-1.redshift.amazonaws.com:5439/dev", \
        "port": 5439, \
        "database": "dev", \
        "user": "awsuser" \
    }'
)
```

その後、以下のように認証情報プロファイルを確認してみると、確かに情報が表示されました。

```python
import boto3
client = boto3.client('redshift')

redshiftauth = client.describe_authentication_profiles(
    AuthenticationProfileName='nagym-test'
)

print (redshiftauth)
```

と、ここまでは確認できたのですが、ここから認証情報プロファイルを使用しての ODBC 接続のやり方が分からず止まりました。pyodbc をインストールして云々とやれば行けそうな気がしたのですが、時間切れでここまでです。

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

## 8/3(火)

### [Amplify Geo for AWS Amplify のデベロッパープレビュー発表](https://aws.amazon.com/jp/about-aws/whats-new/2021/08/announcing-amplify-geo-developer-preview-aws-amplify/)

Developer Preview なので省略します。
**Amplify add geo** とかを実行すると、いい感じに位置情報認識機能を追加してくれるんでしょうか（知らんけど）

- 日本リージョン対応状況 ※ディベロッパープレビューなので未対応にしました。
  - 東京：未対応
  - 大阪：未対応

### [Amazon Redshift が自動テーブル最適化を拡張し、列の圧縮エンコーディングをサポート](https://aws.amazon.com/jp/about-aws/whats-new/2021/08/amazon-redshift-automatic-table-optimization-column-compression-encoding/)

DWH のマネージドサービスである Redshift では、以下を目的として、自動テーブル最適化を行うことができます。

- 列にアクセスするクエリのパフォーマンスの向上
- 列のストレージ使用率の削減

今回のアップデートでは、これまでの自動テーブル最適化に加えて、列の圧縮エンコードにも対応するようになりました。これにより、更にテーブルが最適かされることになります。この機能は、今後作成する際はデフォルトで有効になっていますが、既存のテーブルを今回のアップデートに対応させるには、**ALTER TABLE xxxx** で変更を加えないといけないようです。

また、本機能は Amazon Redshift Advisor が利用可能なリージョンに限られており、大阪リージョンでは使用できませんでした。

- 日本リージョン対応状況
  - 東京：対応
  - 大阪：未対応 ※Amazon Redshift Advisor に未対応のため。

### [Amazon SageMaker が SageMaker ノートブックインスタンスの M5d、R5、P3dn、および G4dn インスタンスのサポートを開始](https://aws.amazon.com/jp/about-aws/whats-new/2021/08/amazon-sagemaker-supports-m5d-r5-p3dn-g4dn-instances-sagemaker-notebook-instances/)

Jupyter ノートブックアプリケーションを実行する機械学習 EC2 インスタンスである SageMaker ノートブックで、以下インスタンスタイプがサポートされるようになりました。

|インスタンスタイプ|概要|
| --- | --- |
| R5 | メモリ最適化インスタンス |
| M5d | ホストサーバーに物理的に接続された NVMe ベースの SSD ストレージを搭載した、汎用ワークロード向けインスタンス |
| P3dn | 分散型機械学習および HPC アプリケーション用に最適化されたインスタンス |
| G4dn | NVIDIA T4 GPU を搭載した、機械学習の推論と小規模トレーニングのための低コストの GPU インスタンス |

インスタンスタイプの命名規則は以下が参考になります。
(参考) [EC2 のインスタンスタイプの表記について](https://blog.serverworks.co.jp/ec2-instance-types)

実際の画面は以下です。
選択できるようになっています。

- R5
  ![20210815_165334.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/396510/eaa50716-30ef-337e-aa25-bb4a707413c6.jpeg)

- M5d
  ![20210815_165324.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/396510/64e5e065-d77a-7ab8-1ade-dfc5fcfe84cd.jpeg)

- P3dn
  ![20210815_165342.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/396510/a86d0179-f9fa-a98f-6530-ac4ded1f1544.jpeg)

- G4dn
  ![20210815_165350.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/396510/e119f3b6-8e9d-16c5-b328-6fed920d3637.jpeg)

SageMaker は正直よく分かっていないので、どこかでハンズオンを受けなければと思っているところです。

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

### [Amazon EKS が Multus のサポートを開始](https://aws.amazon.com/jp/about-aws/whats-new/2021/08/amazon-eks-now-supports-multus/)

Kubernets のコントロールプレーンのマネージドサービスである EKS で、Container Networking Interface (CNI) の一つである Multus がサポートされるようになりました。

Multus は Kubernetes の Pods に複数の NIC をアタッチするためのプラグインです。通常、Pod には一つの NIC しかアタッチできませんが、Multus を使用することにより、複数 NIC を使用できるようになります。
公式の github の図は以下ですが、net0, net1 を作るためのプラグインです。
![20210815_172423.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/396510/9c0b6aa0-71a5-54cb-be22-3ccf96ba6e8e.jpeg)
(出典) [https://github.com/k8snetworkplumbingwg/multus-cni](https://github.com/k8snetworkplumbingwg/multus-cni)

EKS は個人で検証するには中々の金額で試していないのですが、Kubernets への導入や Multus とは何か、については以下が参考になりました。
(参考) [Multusで遊ぶ](https://rheb.hatenablog.com/entry/multus_introduction)

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

## 8/4(水)

### [AWS Cloud9 が CloudWatch Logs および S3 を参照し、EC2 インスタンスプロファイルを使用するための新機能を導入](https://aws.amazon.com/jp/about-aws/whats-new/2021/08/aws-cloud9-introduces-features-browse-cloudwatch-logs-s3-ec2-instance-profiles/)

Web ベースの IDE である Cloud9 で以下の機能が使用できるようになりました。

1. IDE から CloudwatchLogs を参照できるようになりました
  ![20210815_153947.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/396510/d1a3c552-581c-a5f9-bfe8-533ad3ae369f.jpeg)
2. Cloud9 上で作成したファイルを S3 コマンド等を使用しなくても、GUI でアップロードできるようになりました
  ![20210815_154442.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/396510/a539b5a1-66bc-16b5-42bd-765040d83e4f.jpeg)
3. 多要素認証 (MFA) とプライベート VPC を使用する Cloud9 ユーザーは、EC2 インスタンスメタデータと環境変数の認証情報ソースを介して自動的に認証できます。→これよく分かりませんでした。

もっと少し詳しい操作方法はクラスメソッドさんの以下ブログが参考になりました。
(参考) [[アップデート] AWS Cloud9 がまた少し便利になりました (CloudWatch Logs、S3、インスタンスプロファイル)](https://dev.classmethod.jp/articles/aws-cloud9-introduces-features-browse-cloudwatch-logs-s3-ec2-instance-profiles/)

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

## 8/5(木)

### [Amazon Personalize で選択したビジネスメトリクスに合わせてパーソナライズされたレコメンデーションの最適化](https://aws.amazon.com/jp/about-aws/whats-new/2021/08/optimize-personalized-recommendations-business-metric-choice-amazon-personalize/)

個人の好みを機械学習し、おすすめの商品をレコメンドしてくれる Personalize で以下のメトリクスを使用してレコメンドを作成できるようになりました。

- 収益、利益率、ビデオ視聴時間などのビジネスメトリクス
- アイテムカタログの数値属性

そもそも Personalize が分からなかったので、少し古い資料ですが以下のハンズオンを実施してみました。
[Amazon Personalize ハンズオン](https://pages.awscloud.com/rs/112-TZM-766/images/201912-AmazonPersonalizeHandson.pdf)

詳細は省略しますが、上記ハンズオンを実施することで、なんとなく Personalize について分かったような気になりました。ただ、今回のアップデート内容がどこに関係してくるのかは分かりませんでした。
アップデートには以下のように記載がありましたが、ソリューションを作成する際にどれに何を指定すれば良いのか…
> 新しいソリューションを作成するとき、カタログの数値列を選択すると、準備が整います。

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

### [Athena can now write query results in Parquet, Avro, ORC and JSON formats](https://aws.amazon.com/jp/about-aws/whats-new/2021/08/athena-can-write-query-results-parquet-avro-orc-json-formats/)

S3のデータ等に対してクエリをかけて分析できるサービスである Athena で、UNLOAD コマンドを使用することにより出力結果の形式を Parquet, Avro, ORC, JSON が使用できるようになりました。

各形式は何ぞや？という点に関しては以下が参考になりました。
[カラムナフォーマットのきほん 〜データウェアハウスを支える技術〜](https://engineer.retty.me/entry/columnar-storage-format)

|形式|フォーマット|概要|
| --- | --- |--- |
|Parquet|列指向フォーマット|Hadoop エコシステムのプロジェクト向けに設計されたフォーマット|
|Avro|行指向フォーマット|Apache Hadoopと併用するために開発されたフォーマット|
|ORC|列指向フォーマット|Hive データの保存に使用されるフォーマット|
|JSON|テキスト|JavaScript プログラミング言語のサブセットに基づいた、軽量でプレーンテキスト|

実際の画面は以下です。
Athena で UNLOAD クエリを投げると、

![20210815_144936.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/396510/e4872848-951d-0df4-c080-7ccb82e6d7f7.jpeg)

S3 に指定した形式のファイルが出力されていることが確認できました。

![20210815_145008.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/396510/b79d95c6-a1e0-4ce7-fd4d-bd69736ca757.jpeg)

UNLOAD コマンドを実際に動かしているサンプルは以下が参考になるかと思います。
(参考) [[新機能] Amazon Athena UNLOADコマンドによるCSV、Parquet、Avro、ORC、JSON出力をサポートしました！](https://dev.classmethod.jp/articles/20210807-amazon-athena-unload/)

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

### [Amazon CloudWatch Synthetics supports visual monitoring](https://aws.amazon.com/jp/about-aws/whats-new/2021/08/amazon-cloudwatch-synthetics-supports-visual-monitoring/)

REST API、URL、ウェブサイトコンテンツを監視してくれる CloudWatch Synthetics で、画面のレイアウト崩れ等を検知できるビジュアルモニタリングをサポートするようになりました。

実際の画面は以下です。
Cloudwatch Synthetics で Visual Monitoring が設定できるようになっています。

![20210815_141916.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/396510/b08b9bf0-c241-d84a-2db7-216c767538c0.jpeg)

実際の動作に関しては以下が参考になるかと思います。Web 画面等を作成している人には嬉しい機能ですね。
(参考) [Amazon CloudWatch Syntheticsのビジュアルモニタリングで動的コンテンツも監視する](https://dev.classmethod.jp/articles/synthetics-canary-visual-monitoring-dynamic-page/)

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

### [Amazon FSx is now available in the AWS Asia Pacific (Osaka) Region](https://aws.amazon.com/jp/about-aws/whats-new/2021/08/amazon-fsx-is-now-available-in-the-aws-asia-pacific-osaka-region/)

ファイルサーバのマネージドサービスである FSx が大阪リージョンで使用できるようになりました。

実際の画面は以下です。
使えるようになっていました。

![20210813_200434.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/396510/7dc8d46e-bd54-51ed-de2e-2783e9648539.jpeg)

FSx の使い方は以下が参考になるかと思います。WorkSpaces からの利用であったり、AD 構築の手順がなかったりしますが、適宜読み替えていただければと思います。
(参考) [Amazon FSx for WindowsをWorkspacesで試してみた](https://dev.classmethod.jp/articles/fsx-workspaces/)

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

## 8/6(金)

### [Amazon Athena が AWS アジアパシフィック (大阪) リージョンで利用可能に](https://aws.amazon.com/jp/about-aws/whats-new/2021/08/amazon-athena-available-aws-asia-pacific-osaka-region/)

S3のデータ等に対してクエリをかけて分析できるサービスである Athena が大阪リージョンで使用できるようになりました。

実際の画面は以下です。使えるようになっています。

![20210815_135947.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/396510/6c0e0d23-17f9-2ad2-bc09-b2d251b53c52.jpeg)

Athena を簡単に使えるのは CloudTrail のログ分析かなと思います。UI は若干変わっていますが、以下が参考になるかともいますので実践してみていただければと思います。
(参考) [[AWS ]CloudTrailの証跡ログをAthenaを使ってサクッと解析する[このリソース誰が作ったの？]](https://dev.classmethod.jp/articles/cloudtrail-athena/)

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

### [Amazon RDS Proxy can now be created in a shared Virtual Private Cloud (VPC)](https://aws.amazon.com/jp/about-aws/whats-new/2021/08/amazon-rds-proxy-created-shared-virtual-private-cloud-vpc/)

RDBMS のマネージドサービスである RDS では、アプリケーションのスケーラビリティやデータベース障害に対するリカバリー、安全性の向上を提供するマネージド型データベースプロキシである RDS Proxy があります。RDS Proxy の詳しい解説は以下が参考になりました。
(参考) [[速報]RDS ProxyがGAされました！！](https://dev.classmethod.jp/articles/rds-proxy-ga/)

その RDS Proxy が、VPC を集中管理する際に使用される、共有 VPC でも利用可能になりました。共有 VPC は以下が参考になるかなと思います。
(参考) [[アップデート]VPCサブネットを複数のAWSアカウントで共有できるようになりました！！](https://dev.classmethod.jp/articles/reinvent-2018-ram-vpc-share/)

実際の画面は以下です。
VPC を共有された側のアカウントで RDS を構築し、それに対して RDS Proxy を構築することができました。

- VPC を共有した側のサブネット(RAM の画面)
  ![20210816_040201.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/396510/afe5d007-399a-8240-bee1-ced522955061.jpeg)

- VPC を共有された側の RDS Proxy
  ![20210816_040036.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/396510/f58b69f1-1b58-8a1e-d89c-c1e80cbe2ab5.jpeg)
  
RDS Proxy は対応しているバージョンに制限があるのでご注意ください。ここで小一時間悩みました…

![20210816_034926.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/396510/0bf302ef-976d-9822-5326-9bb7798b4227.jpeg)

(出典) [RDS Proxy の制限](https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/rds-proxy.html#rds-proxy.limits)

ちなみに、本アップデート前にはまった話というのがあったので参考として記載します。ここでは、VPC を共有する側のアカウントにすべてのリソースを作成し、RDS Proxy 経由でアクセスしていたようです。
(参考) [RDS ProxyをsharedVPC上で作る時にハマった話](https://qiita.com/Arai1331/items/45973674cb9cf79d1d19)

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

### [Amazon EC2 Auto Scaling enhances Instance Refresh with configuration checks, Launch Template validation, and Amazon EventBridge notifications](https://aws.amazon.com/jp/about-aws/whats-new/2021/08/amazon-ec2-auto-scaling-enhances-instance-refresh-configuration-checks-launch-template-validation-amazon-eventbridge-notifications/?nc1=h_ls)

CPU 使用率やコネクション数により EC2 インスタンスの台数を自動的に増減してくれる機能である Auto Scaling で、以下の機能をサポートするようになりました。

- インスタンスのリフレッシュ時、インスタンスが既に目的の構成になってい場合、置き換えを回避できる機能を追加
  - これにより、より高速なロールフォワード or ロールバックを実行できる
- Auto Scalingグループ（ASG）設定の更新の実行
  - インスタンスの更新が正常に完了した際、LaunchTemplate定義の更新を自動実行する
  - 新しい起動テンプレート定義で ASG 定義を自動的に更新することが可能に
- インスタンスリフレッシュ用に 4 つの Amazon EventBridge イベントを追加
  1. インスタンスの更新を開始（"EC2 Auto Scaling Instance Refresh Started"）
  1. インスタンスの更新に成功（"EC2 Auto Scaling Instance Refresh Succeeded"）
  1. インスタンスの更新に失敗（"EC2 Auto Scaling Instance Refresh Failed"）
  1. インスタンスの更新をキャンセル（"EC2 Auto Scaling Instance Refresh Cancelled"）
  

Auto Scaling の設定は、まだ SDK or AWS CLI しか対応していないようで、画面上では確認できませんでした。CLI のドキュメントを眺めてみたのですが、どこに書いてあるのか分からずだったので、GUI に対応した時に改めて確認してみようと思います。

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

## 感想

これ、もはやクラスメソッドさんのブログを転載してるだけでは…？と思いながら書いていました。そしてアップデートの内容が分からなすぎる…全部を追おうとするのは無謀なのだろうか…
ただ、このブログの目的は「アップデート内容を自分の手を動かして理解していこう」の筈なので、もう少し頑張りたいと思います。。