はじめに
あけましておめでとうございます、なじむです。
2021/12/10 に DBS も合格し、目標であった全冠(11冠)を達成できました。半年かけてスペシャリティの資格を毎月一個取得してきましたが、とてもいい勉強になりました。社会人になってこんなに勉強したのは久しぶりな気がします。とはいえ、言葉が分かるようになった、ある程度の使い方・注意点が分かるようになった、程度なので引き続き精進していきたいと思います。
というわけで今年も張り切ってやっていきましょう!AWS Japan さんがまとめている週刊AWSで確認した内容の自分用メモ。
今回は1/3週のアップデートです。
1/3(月)
AWS Glue ジョブでのオートスケーリングのご紹介 (プレビュー)
Glue は ETL (Extract:抽出、Transform:変換、Load:格納) を実行するマネージドサービスです。
※例えば S3 からデータを抽出し、抽出したデータに何かしらの処理を加え変換し、変換後のデータを再度 S3 に格納したりします。
(出典) AWS Glue
これまで、Glue ジョブを実行する際の実行リソースは最初に決めた数のワーカーを使用していました。そのため、リソースを過剰にプロビジョニングし膨大なコストがかかってしまったり、コストダウンのためにリソースの最適化が必要になっていました。本アップデートにより、Glue ジョブのオートスケーリング機能が追加されました。これにより、最適な量のリソースで Glue ジョブを実行できるようになり、無駄なコストを抑えることが可能になります。
実際の画面は以下です。
ジョブの作成時にはオートスケーリングの設定はできません。ジョブの作成後、Glue Studio から対象ジョブを選択し、[Job details] タブから設定が可能です。
オートスケーリングの利用には以下のような注意事項があります。詳細は Using Auto Scaling for AWS Glue を参照ください。
- Type :Spark または Spark Streaming を指定(Python shell は対象外)
- Glue Version:3.0 以上を指定
- worker types:G.1X または G.2X を指定(Standard DPUs はサポート外)
なお、本機能はプレビュー機能です。現時点では米国東部(オハイオ)のみで利用可能なためご注意ください。
- 日本リージョン対応状況
- 東京:未対応
- 大阪:未対応
1/4(火)
Amazon SageMaker JumpStart のタブデータに LightGBM と CatBoost モデルが追加
時間切れで確認できず…
- 日本リージョン対応状況
- 東京:未確認…
- 大阪:未確認…
Amazon ECS で ECS クラスターとタスク定義作成のための簡素化されたコンソールエクスペリエンスを開始
ECS は Docker コンテナを実行および管理するマネージドサービスです。
(出典) Amazon EFS を Amazon ECS と AWS Fargate で使用するための開発者ガイド – パート 1
本アップデートでは、ECS のマネジメントコンソールが新しくなりました。
新旧コンソールの切り替えは画面左上のトグルボタンで行います。
新コンソールになり、以下の改善が加わっています。
※以前の画面と並べて比較しようと思ったんですが、結構変わっていて並べての比較が難しいなと思ったため、新コンソールのみ載せます。
- ECS クラスターの作成時
- Auto Scaling グループの作成を簡易化(EC2 インスタンスを起動して新しい Amazon ECS クラスターに自動的に登録)
- タスク定義作成時
- 複雑な設定の削除(柔軟性のあるデフォルトの提供、タスク実行に必要なロールの自動作成) ※画面から無くなっている項目のため割愛
- EC2 および Fargate の両方において、異なる OS/アーキテクチャ (Graviton、Windows、Linux) で実行するタスクを設定可能に
- メトリクスとトレースの収集を有効にするオプションを追加(X-Ray、CloudWatch、Amazon Managed Service for Prometheus へのエクスポートが可能)
一方で、コンソールが新しくなったことにより、一部作成時に設定できなくなった項目もあるようです。それらに関しては、旧コンソールで設定する必要があります(具体的に新コンソールで何が設定できないのかは未確認)
- 日本リージョン対応状況
- 東京:対応
- 大阪:未対応 ※画面右上のトグルが無かったので未対応と思われます。
Amazon EMR on EKS がカスタム Docker コンテナイメージのテストを簡素化するカスタムイメージ検証ツールをリリース
EMR on EKS は EKS 上で EMR を動かせるサービスです。EMR on EKS を使用すると、同じ EKS クラスターで Spark アプリケーションを他のタイプのアプリケーションとともに実行し、リソース使用率を向上させ、インフラストラクチャ管理を簡素化することができます
(出典) 新発表 — Amazon EMR on Amazon Elastic Kubernetes Service (EKS)
EMR on EKS では、pod にカスタムイメージを使用することができます。本アップデートでは、カスタムイメージを検証するためのツールがオープンソースとして公開されました。検証ツールを使用することで、以下のチェックを行うことが可能です。
- Basic Test :カスタムイメージに以下パラメータが含まれていることを検証
- UserName
- WorkingDir
- EntryPoint
- Environment Test :必要な環境変数が期待されるパスに設定されていることを検証
- SPARK_HOME=/usr/lib/spark
- JAVA_HOME=/etc/alternatives/jre
- File Structure Test :必要なファイルが予想されるパスに存在することを検証
- Local Job Run Test :カスタムイメージが有効であり、基本的なジョブ実行に合格できることを検証
検証ツールは github からダウンロードできます。
(参考) awslabs/amazon-emr-on-eks-custom-image-cli
- 日本リージョン対応状況
- 東京:対応
- 大阪:未対応 ※EMR on EKS に未対応
Amazon Managed Blockchain (AMB) が Hyperledger Fabric v2.2 のサポートを発表
Managed Blockchain はブロックチェーンネットワークを構築できるマネージドサービスです。
(出典) Amazon Managed Blockchain を使用したサーバーレスブロックチェーンアプリケーションの構築
Managed Blockchain では、ネットワークの構築にオープンソースのブロックチェーン・プラットフォームである Hyperledger Fabric 利用しています。本アップデートにより、Managed Blockchain で LTS 版である Hyperledger Fabric v2.2 がサポートされました。v2.2 では以下の特徴があります(なぞってみたけど全く分からない…)
- v 2.x リリースの初の LTS リリース
- チェーンコード (スマートコントラクト) の分散型ガバナンスを導入
- 複数の組織でチェーンコードのパラメータ (チェーンコード承認ポリシーなど) を使用する前に各組織が同意することが可能に
- 参加する可能性のあるチャンネルメンバーのすべての組み合わせのプライベートデータコレクションを作成する必要なく、プライベートデータを共有する高度なパターンを使用することが可能に
その他の Fabric v2.2 でのアップデート内容は以下に記載があります。
(参考) New release: Hyperledger Fabric 2.2 LTS
実際の画面は以下です。
Hyperledger Fabric v2.2 が利用可能になっています。
やってみた系の記事はクラメソさんのブログが参考になりました。
(参考) Amazon Managed BlockchainでHyperledger Fabric v2.2が利用出来るようになったのでネットワーク作成してチェーンコードを実行してみた
- 日本リージョン対応状況
- 東京:対応
- 大阪:未対応 ※Managed Blockchain 自体に未対応
Amazon OpenSearch Service (Amazon Elasticsearch Service の後継サービス) が OpenSearch バージョン 1.1 のサポートを開始
OpenSearch Service は OSS の全文検索エンジンのマネージドサービスです(ElasticSearch、Kibana の AWS フォーク版です)
本アップデートでは、OpenSearch Service 1.1 が利用可能になり、以下機能が追加されました。
- クラスター間レプリケーション (CCR) :クラスター間でのデータレプリカ。Elasticsearch 7.10 でサポートしていた機能が追加。
- 履歴データの異常検出 :過去のデータを基にした異常値検出。これ便利そう。
- バケットレベルのアラート :これよく分かりませんでした…
実際の画面は以下です。バージョン 1.1 が選択できるようになっています。
- 日本リージョン対応状況
- 東京:対応
- 大阪:対応
AWS Glue Interactive SessionsとJob Notebooksの紹介(プレビュー)
Glue Interactive Sessions と Job Notebooks がプレビュー利用可能になりました。
Glue ジョブの開発では Jupyter Notebook 使うと効率的に進められます。従来は SageMaker ノートブック + 開発エンドポイントで構築していましたが、その構成はコストが非常にかかります。本アップデートによりサーバレスで Jupyter Notebook が使えるようになったためコストが抑えることが可能になりました(使い方次第かも)
実際の画面は以下です。
Glue Studio から Jupyter Notebook が選択できるようになっています。
3 分くらいすると環境が構築されます。めっちゃ簡単でめっちゃ早い!(実際の開発はしていないため使い勝手は不明…)
- 日本リージョン対応状況
- 東京:対応
- 大阪:未対応
1/5(水)
Amazon Redshift 向け AWS Data Exchange を発表
※Data Exchange のサブスクライブが間に合わなかったため推測※
Data Exchange は AWS クラウド内のサードパーティのデータを簡単に検索、サブスクリプション、および利用できるサービスです。例えば、コロナ関連のデータ(世界の感染者数の情報等)が利用可能です。
(出典) AWS Data Exchange for Amazon Redshift
これまで、Redshift に Data Exchange のデータを取り込むためには、サブスクライブしたデータを S3 から Redshift に取り込む必要がありました。本アップデートにより、データをサブスクライブすると直接 Redshift 上に表示することが可能となり、Redshift に取り込む手間がなくなったものと思います(ここ確証無し)また、Data Exchange 上のデータは自動で更新されるため、「自分が今使っているのは最新のデータか?」という点を気にしなくてもよくなります。
なお、AWS Data Exchange for Amazon Redshift の利用開始には、当該リージョンで Redshift の RA3 インスタンスを利用する必要があるためご注意ください。
※2021/10/19 に発表されたプレビュー機能が GA になったというアップデートです
実際の画面は以下です。
申請がサブスクライブされなかったので実動作が分からなかったのですが、こんな感じなんじゃないかなと思います。どこかでちゃんと検証します…
- 日本リージョン対応状況
- 東京:対応
- 大阪:未対応 ※Data Exchange 自体に未対応
マネージド型の監査およびセキュリティレイクである AWS CloudTrail Lake を発表
CloudTrail ログをクエリできるサービスである CloudTrail Lake が新規利用可能になりました。
従来、CloudTrail のログは CloudTrail のコンソールから確認することが可能でしたが、保存期間が90日である、設定しているリージョンのみしか表示されない等、いくつか使いづらい点がありました。それらを解決するために S3 に保存した CloudTrail ログに対して Ahtena を使用してクエリをかける方法が一般的ですが、今回のアップデートでは、それと同様の環境をより簡単に構築できる CloudTrail Lake が利用可能になりました。
クエリまでの大きな流れは以下です。
凄い簡単ですね!実際に構築してみて、以下が嬉しい点かなと思いました。
- 本当に簡単に環境が作成できる
- 最長7年ログが保存できる(料金は当然かかる)
- 全てのリージョン、全ての組織内のアカウントの CloudTrail ログをまとめてクエリできる
CloudTrail Lake クエリの文法は以下を参照ください。
(参考) CloudTrail Lake SQL constraints
また、やってみた系は公式ブログが参考になりましたので併せてご覧ください。
(参考) Announcing AWS CloudTrail Lake – a managed audit and security Lake
- 日本リージョン対応状況
- 東京:対応
- 大阪:対応
Amazon RDS Proxy が 8 つの追加 AWS リージョンで利用可能に
RDS Proxy はデータベースプロキシのマネージドサービスです。
(出典) Amazon RDS Proxy のご紹介
Lambda や EC2、Fargate と RDS の間に RDS Proxy を使用することにより、以下のようなことが可能となります。
- 接続プーリングでオーバーヘッド削減 :RDS Proxy が中継することで、RDS のリソース消費を抑えることができます(特にLambda からの接続時などに有効)
- フェイルオーバー時の復旧時間短縮 :DNS に依存しないフェイルオーバーにより復旧時間短縮
- RDS への接続に IAM 認証が使用可能に:DB ユーザではなく、IAM ロール等を用いて RDS に接続可能になります(RDS IAM認証と同様の機能)
今回のアップデートにより、大阪リージョンでも RDS Proxy が使用可能になりました。
実際の画面は以下です。
大阪リージョンで RDS Proxy が作成できるようになっています。
- 日本リージョン対応状況
- 東京:対応
- 大阪:対応
1/6(木)
CloudFormation Registry に 37 の新しいリソースタイプを導入
CloudFormation は AWS リソースの IaC (Infrastructure as Code) のサービスです。JSON または YAML で AWS のリソースを記載することにより、AWS のリソースをテンプレートとして管理することができます。
本アップデートでは先月追加されたサービスを中心に、新たに 37 のサービスが CloudFormation で記述できるようになりました。
- AWS::AmplifyUIBuilder::Component
- AWS::AmplifyUIBuilder::Theme
- AWS::AppStream::AppBlock
- AWS::AppStream::Application
- AWS::AppStream::ApplicationFleetAssociation
- AWS::AppSync::DomainName
- AWS::AppSync::DomainNameApiAssociation
- AWS::Batch::SchedulingPolicy
- AWS::Chatbot::SlackChannelConfiguration
- AWS::CloudFront::ResponseHeadersPolicy
- AWS::Connect::ContactFlow
- AWS::Connect::ContactFlowModule
- AWS::DataSync::LocationHDFS
- AWS::EC2::IPAM
- AWS::EC2::IPAMPool
- AWS::EC2::IPAMScope
- AWS::Evidently::Experiment
- AWS::Evidently::Feature,
- AWS::Evidently::Launch,
- AWS::Evidently::Project
- AWS::FSx::FileSystem
- AWS::FSx::Snapshot
- AWS::FSx::StorageVirtualMachine
- AWS::FSx::Volume
- AWS::Lex:Bot
- AWS::Lex::BotAlias
- AWS::Lex::BotVersion
- AWS::Lex::ResourcePolicy
- AWS::IoT::Logging
- AWS::IoT::ResourceSpecificLogging
- AWS::IoTWireless::FuotaTask
- AWS::IoTWireless::MulticastGroup
- AWS::Pinpoint::InAppTemplate
- AWS::ResilienceHub::App
- AWS::ResilienceHub::ResiliencyPolicy
- AWS::RUM::AppMonitor
- AWS::Timestream::ScheduledQuery
具体的な文法に関しては CloudFormation のリファレンスを参照ください。
(参考) AWS resource and property types reference
- 日本リージョン対応状況 ※各サービスが東京、大阪に対応していれば CloudFormation で記述可能
- 東京:対応
- 大阪:対応
Amazon EKS が Internet Protocol version 6 (IPv6) をサポート
EKS は Kubernetes のコントロールプレーンのマネージドサービスです。
(出典) Amazon EKS ネットワーク
これまで、EKS では IPv4 しか選択できませんでした。EKS は Pod 毎に IP が割り振られるため、大規模なシステムでは IP が枯渇する場合があります。プラグインを用いることでその問題を回避することも可能ですが、ネットワーク構成が複雑になり、遅延が発生する場合もあります。IPv6 を使用することでそれらの課題を回避することができます。
実際の画面は以下です。
IPv6 が選択できるようになっています。
- 日本リージョン対応状況
- 東京:対応
- 大阪:対応
AWS Lambda が ES モジュールと Node.js 14 の Top-Level Await のサポートを開始
Lambda はサーバレスでコードを実行できるサービスです。Lambda で Node.js 14 を実行している場合、以下2つの機能が利用可能になりました。
- ECMAScript (ES) モジュール
- Top-Level Await
私はこの辺に疎いのですが、以下記事がとても参考になりました。こんなにまとめられるの凄い。
(参考) top-level awaitがどのようにES Modulesに影響するのか完全に理解する
- 日本リージョン対応状況
- 東京:対応
- 大阪:対応
インスタンスタグが Amazon EC2 インスタンスメタデータサービスで利用可能に
EC2 は仮想マシンのサービスです。EC2 にはインスタンスメタデータサービスと呼ばれるサービスがあります。EC2 上で curl http://169.254.169.254
と実行することで、ホスト名やセキュリティグループなど、インスタンスに関する様々な情報を取得することができます。
これまで、タグ情報を取得したい場合は DescribeInstance または DescribeTag を実行することで取得していましたが、大量に実行するとスロットリングエラーや API の実行に時間がかかるといった課題がありました。本アップデートにより、インスタンスメタデータからインスタンスのタグ情報を取得できるようになりました。これにより、先の課題が解決されます。
実際の画面は以下です。
先ずはインスタンス作成時に設定を有効にする必要があります(既存のインスタンスでも、設定を有効にすることができます)
有効にした後はインスタンスにログインし、メタデータにアクセスします。curl http://169.254.169.254/latest/meta-data/tags/instance/Name
を実行することで Name タグの値を取得することができました。
(見やすいように改行を修正しています)
$ curl http://169.254.169.254/
1.0
2007-01-19
2007-03-01
2007-08-29
2007-10-10
2007-12-15
2008-02-01
2008-09-01
2009-04-04
2011-01-01
2011-05-01
2012-01-12
2014-02-25
2014-11-05
2015-10-20
2016-04-19
2016-06-30
2016-09-02
2018-03-28
2018-08-17
2018-09-24
2019-10-01
2020-10-27
2021-01-03
2021-03-23
2021-07-15
latest
$
$ curl http://169.254.169.254/latest/
dynamic
meta-data
$
$ curl http://169.254.169.254/latest/meta-data/
ami-id
ami-launch-index
ami-manifest-path
block-device-mapping/
events/
hibernation/
hostname
iam/
identity-credentials/
instance-action
instance-id
instance-life-cycle
instance-type
local-hostname
local-ipv4
mac
managed-ssh-keys/
metrics/
network/
placement/
profile
public-hostname
public-ipv4
public-keys/
reservation-id
security-groups
services/
tags/
$
$ curl http://169.254.169.254/latest/meta-data/tags/
instance/
$
$ curl http://169.254.169.254/latest/meta-data/tags/instance/
Name
Owner
$
$ curl http://169.254.169.254/latest/meta-data/tags/instance/Name
nagym-ec2
$
- 日本リージョン対応状況
- 東京:対応
- 大阪:対応
1/7(金)
Amazon AppStream 2.0 が SAML 2.0 フェデレーティッドユーザー ID 向けにアプリケーションエンタイトルメントの提供を開始
Amazon AppStream 2.0 はアプリケーションストリーミングのマネージドサービスです。
(出典) Amazon AppStream 2.0でデスクトップアプリケーションのストリームをスケールする
AppStream 2.0 で作成したアプリケーションにアクセスするためには認証(ユーザ情報)と認可(そのユーザがどのアプリケーションにアクセスできるか)の設定が必要になります。本アップデートでは、その設定をアプリケーションエンタイトルメントを用いて設定できるようになりました。例えば、AD に登録しているユーザで "nagym-dev" というグループに所属しているユーザには "VS Code" の実行を許可するという設定を、以下のようにアプリケーションエンタイトルメントで設定できるようになりました。
AD を構築しておらず検証ができなかったため、実機での検証はしていませんが、詳細な解説と実際のやってみた系は今年もクラメソさんのブログが参考になります。ぜひご覧ください。
(参考) [アップデート] AppStream 2.0 で SAML 2.0 Federated User を利用する際にアプリケーションの選択ができる様になりました
- 日本リージョン対応状況
- 東京:対応
- 大阪:未対応 ※AppStream 2.0 に未対応
感想
新年早々、めっちゃアップデートあるなって思いました。そしてしばらくサボっていた分、全然分からなくなっていました…
今年は(忙しくなければ)継続してやっていきたいと思いますので、本年もよろしくお願いします。
間違いがあればご指摘ください。