AWS re:Invent 2021の気になる新発表
本記事は、ストックマーク Advent Calendar 2021の7日目の記事です。
※掲載内容は私自身の見解で、所属する会社・団体の立場、戦略、意見を代表するものではありません。
はじめに
はじめまして!ストックマークのSRE 山口です。AWSを活用してアーキテクチャ設計する場合、提供されているサービス/機能をうまく選択することにより、迅速に開発できたり、要件次第でマネージドな機能に任せてもいい部分は省力化できたり、様々なメリットがあります。
そんなAWSですが、新しいサービス/機能が出るスピードは凄まじいものがあります。特にre:Inventの期間は尚更です。AWSの全ての機能を完璧に押さえておくことは難しくなってきていますので、「事前に存在を知って」おいて、いざというときに引き出せるようにしておきたいところですね。
本記事では、AWSの直近の新発表について気になるところをピックアップしてコメントしていきたいと思います。
AWS re:Inventとは
AWS re:Inventとは、AWSによるクラウドコンピューティングについての国際カンファレンスです。AWS自身は参加者に学んでもらう”学習型カンファレンス”と銘打っており、AWSによる技術的なセッションをはじめ、ユーザ企業のセッションや、機械学習系サービスを活用したレース・イベント、認定試験の場なども一緒に提供しています。そして、この時期にあわせて本当に大量の新発表が行われます!!
2021年は、11/29〜12/3に(世界情勢を鑑みてオンライン開催のみだった年を除き)例年通りラスベガスにて実施され、オンライン開催も併用されました。
#ちなみに私は初回から3年連続で現地参加いたしましたが、カジノで負け越した年しかありません!(悲)
気になる新発表
さて、それでは新発表を見ていきましょう!
AWS Partner
”3. AWS Graviton Ready Programを発表”
こちらの発表もありましたが、Fargateの基盤なども含めてGraviton対応が全体的に進んでいますね。苦手な処理も一部あるようですが、基本的にはコスパが上がるケースが多いのでAWS 自身も推進したい様子が伺えます。
”6. AI for Data Analytics(AIDA) Partner Solutionsを発表”
こちらは、AWSのAI/MLサービスと統合・連携可能なエンドユーザのビジネスデータに基づいた予測分析関連のソリューション群を提供しているベンダを整理したものになります。当社は今のところAWSのAI/MLサービスを直接組み込んでいるわけではないですが、解釈が広がったりすればこの中に・・?!
Global Infrastructure
利用可能サービスは限られますが、低レイテンシを実現するため、よりエンドユーザに近いエッジで利用可能なリソース群の拡張ですね。上記の対象にはアジア地域も含まれるとのこと。
Migration
”1. AWS Mainframe Modernizationのプレビューを開始”
メインフレーム移行の支援サービス。COBOL等の解析ツールやJavaへの変換ツールなどを提供するとのこと。AWSに取り込めるワークロードを増やす取り組み、頑張ってるなぁと思います。
”2. AWS Migration Hub Refactor Spacesを発表”
アプリケーションのリファクタリングの支援サービスで、いわゆるStrangler Figパターン(機能の特定部分を切り出して徐々に移行していく方式)の実現方法の一つを提供するものです。実態はAPIのプロキシを提供して、新旧の実態を意識しないようにできるものなので目新しさはあまりないかもしれないですが、マネージドサービスとして利用できるのは良いですね。
Compute & Container
”3. Amazon EC2のTrn1インスタンスを発表”
新インスタンスタイプ追加についてはGraviton系が多いのは当然として、それ以外だとTrn1インスタンスタイプ(プレビュー)は注目。こちらは機械学習のトレーニング向けのチップ ”Trainium”を搭載したものになり、推論向けチップのInferentiaに続いて2つ目となります。下記の情報が公開されていますが、自然言語処理(他、画像認識、レコメンデーション、インテリジェント検索)などの用途の深層学習モデルのトレーニングに最適化されているとのことなので、活用の機会があるかも?
“8. Amazon ECRがキャッシュリポジトリ機能を発表”
Pull Through型のキャッシュリポジトリ機能が追加されたというものです。これまで公開リポジトリのイメージであってもネットワーク的な距離が遠い場合はECRリポジトリにわざわざPushしておき、イメージ取得の速度向上や通信量の抑制を行っていましたが、こちらを利用すればその手間が軽減されるので大変嬉しいアップデートです。
”11. AWS Compute Optimizerの機能強化”
コスト削減目安となる”Savings Opportunity”とリソース不足を示す”Improvement Opportunity”の2つのメトリクスが追加されています。前者のようなユーザメリットのあるものを出すのは、Amazonらしいですね。
Storage
全体的にはS3の拡張が相変わらず多く、ほぼ最古のサービスでありながら継続的に改善されているのは嬉しいですね。
“2. Amazon S3 Glacier Instant Retrievalを発表”
新しいストレージクラスの追加です。Glacierのクラス(S3 Glacier Flexible Retrievalにリネーム&値下げされました)はこれまでも有りましたが、どうしても即時 or 短時間でのアクセスの要件があると採用しづらいものでした(突き詰めて要件/サービスレベル調整すれば数時間程度なら待てるものが本来は多いのでは、とも思いますが、それ自体が大変)。今回追加されたものは、S3 Standardと同じスループット&ミリ秒単位の待ち時間でアーカイブにアクセスできるようにされたもので、四半期に1回くらいのアクセスパターンで比較した際にS3 Standard IAと比較して68%安価とのこと。コスト削減とアクセス頻度の丁度いいバランスのところが来たかな、という感覚です。
”4. Amazon S3 Intelligent Tieringの機能強化”
”8. Amazon EBS Snapshot Archiveを発表”
前者はS3オブジェクトの自動的なストレージティア調整機能(アクセス頻度が低いものは、自動的によりお安いストレージクラスへ移され、その逆の移動もある)のあるストレージクラスです。そちらに前述のS3 Glacier Instant Retrievalがサポート対象として追加されました。
後者はEBSスナップショットの保存先をアーカイブ向けのストレージ(内部的には恐らくGlacier相当)を選択することにより費用を抑えるオプションです。最低保存期間等もあるため、現在は使い分けがを明示的に行う必要がありますが、自動的なストレージクラス適用機能の拡張機能がいずれこちらにも展開されるのでは?と推測(希望)しますので、今後も要チェックですね。
”13. AWS Backup for Amazon S3を発表”
S3は、ストレージクラスにも依存しますが基本的に極めて高い堅牢性があります。それでもオペレーションミス等を考慮すると、バックアップが必要なケースがあり、これまではバケット間のオブジェクトコピーの設定などを活用して実装する必要が有りました。今回、この機能により定期的/継続的なバックアップ&特定バケット/オブジェクトのリストアをマネージド・サービスとして利用できるようになりました。残念ながらオレゴンリージョンのみのプレビュー段階ですので、GAが待ち遠しいですね。
Networking & Edge Service
“4. AWS Transit Gatewayがリージョン内ピアリングに対応“
内容はタイトル通りですが、地味に良いアップデートですね。TGWごとに管理者が異なるような場合に、それぞれは独立して運用しつつも相互接続が楽になりますね。既にGA。
”5. Amazon VPC IP Address Managerを発表”
これまた地味ですが、プライベートIPアドレスレンジの管理にとても便利な機能。AWS Organizations/AWS Resource Access Managerとも連携できるとのことなので、マルチアカウント戦略下での管理を外部のスプレッドシート等から卒業できそうです。既にGA。
Database
”1. Amazon DevOps Guru for RDSを発表”
機械学習のテクノロジを用いてデータベースに関する性能問題の検知と解決を迅速化するサービス。データベースに意図しない高負荷が発生した場合、 原因となるSQL文を特定し、原因と影響範囲を ユーザに通知したうえで解決策を提示する機能も提供するとのこと。EventBridgeやSNS連携も既にサポートされているようなので、通知も容易そうです。
“3. Amazon DynamoDB Standard IA table classを発表“
こちらはアクセス頻度の低いデータ用のコスト削減ができるテーブルクラス。S3等と同様にいずれはインテリジェントな自動ティアリングが入るのでは?と予測します。(入ってほしいです)
Analytics
Analytics系は、全体的にServerlessの名前を関した機能追加の発表が多いですね。インフラレイヤのノードタイプや数などを意識せずに(マネージドサービスに任せて)スケーリング等を自前で行わずに分析処理に注力しやすくする内容。特にRedshiftは、元がそこまでお安くないので、必要なタイミングだけリソースを利用しやすくなるのは大きいのではないでしょうか。また、”Amazon Kinesis Data Streams On-Demand”については、もともとKinesis Data Streams自体がサーバレスなものですが、”シャード数の調整によるキャパシティ管理が必要だったものが、ある程度まではオンデマンドにスケールできる”ようになるものですので、同様のアップデートになります。
“5. AWS Lake Formationで3つの新機能が利用可能に”
”6. Amazon AthenaがLake Formationの新機能をサポート”
Lake Formationが、「トランザクション処理」「データ保存方法の最適化」「行とセルレベルのアクセス権限管理」の機能に対応し、それに合わせてAthenaも同機能の恩恵を受けることができるようになった、という内容です。トランザクション機能は、Athenaに求めるべきか?という話はあるものの、用途は広がりますね。権限管理は機微な情報を対象に含む場合に柔軟な対応ができそうで良いですね。
”7. Amazon AthenaのACIDトランザクションを発表“
こちらは同時接続ユーザが整合性を保ちながら、S3データの行レベルの変更を実行可能になったり、その他の書き込み・削除・更新等の制御が容易になります。こちらも用途は広がりますね。細かい仕様はもう少し追いかけたい発表です。
AI & ML
まず、数が大変多いですね。AWSも力を入れていることがこれだけでも伝わってきます。
“1. Amazon SageMaker Canvasを発表”
”2. Amazon SageMaker Ground Truth Plusを発表“
予測処理向けモデル構築用の新機能と、データラベリング機能の提供です。マネージドの度合いが高いので、サービスへ組み込みやすくなっています。
”5. Amazon SageMaker Serverless Inferenceを発表”
こちらはSageMakerのキャパシティ管理をマネージドに任せるもののため、サーバレスの名前がついていますね。機械学習系はワークロードの緩急が大きいケースが多いため、サーバレスの恩恵を得やすくコスト最適化に大きく寄与するケースが多そうに思います。
”12. Amazon Personalizeのユーザセグメンテーション対応”
Amazon Personalizeは、パーソナライズされたレコメンデーション用アプリケーション構築向けMLサービスですが、今回の機能追加で”人→レコメンド”だけでなく、”アイテムや属性 → 人のリスト”を出せるようになりました。ユーザの属性情報から直接の推測ではなく、その他の実データ(ユーザの振る舞い等)を元にするようです。機械学習のテクノロジをお手軽に使える系サービスとして面白いと思います。
”13. Amazon Personalizeの最適化されたレコメンダを発表”
こちらは、タイミングごとに異なるレコメンデーションの内容を設けることが簡単になる拡張とのこと。詳細が追えていませんが、これも面白そう。
Internet of Things
”1. AWS IoT TwinMakerを発表”
これまでもIoT Device Shadowの機能で、AWS IoTコア側と実デバイス側のステータス制御のためのデジタルツインのような機能はありました。今回のTwinMakerは実世界のより正確なモデル化を容易にすることを目指しているもののようです。可視化プラットフォームのプラグインについては一つだけしか言及されていないですが、今後拡張されていきそうですね。3Dモデル周りは、物体単体というよりも一定の空間(広い部屋とか、工場とか)をデジタルツインとして再現することで色々と面白いことができそうです。
- デジタルツインの表現用モデリング機能
- 可視化のための3Dモデルのインポートなど、データストアとの連携機能
- AWS Managed Grafana向けのプラグイン
DevTools & Application Integration
”2. AWS SDKが新たに3つの言語に対応”
追加されたのはSwift、Kotolin、Rustの3つ。それぞれ対応しているサービス数がちょっとだけ異なるので注意が必要です。まだデベロッパープレビューの段階ですので、いずれは対応されると思います。
”4. CodeGuru Reviewerが機密情報の埋め込み検知に対応”
コードレビューを自動化するAmazon CodeGuru Reviewerで、機密情報の埋め込みを検知すること が可能になりました。ソースコードや設定ファイルに、パスワード、APIキー、SSH キー、アクセストークンがハードコーディングされていることを 検知し、改善を提案してくれるとのこと。git-secretなどでそもそもリポジトリ等にアップロードしないことは大前提だと思いますが、インテリジェントな提案を行うコードレビューツールに組み込まれれば、git-secretでの定義漏れがあった場合のチェックとしても良さそうです。現時点ではPythonとJavaのみが対応しているようなので、他言語への拡張も楽しみですね。
”6. Amazon SQSがDLQに入ったメッセージの書戻しに対応”
こちら、結構大きいですね。これまではDLQ内へ送られたメッセージについては、自前で対応を実装する必要がありましたが、単純に元のキューに戻すだけの処理であればマネージドの機能として利用することができるようになりました。一定時間経てば回復するような問題でDLQに落ちてくるようなケースであれば、これだけで救えそうですね。
Management & Governance
”1. Amazon CloudWatch RUMを発表”
APMのReal-User Monitoring(RUM)機能がCloudWatch組み込みで利用可能になりました。サードパーティ製品が必要だった部分が減りますね。
”2. Amazon CloudWatch Evidentlyを発表”
A/Bテストやフィーチャーフラグといった手法でど ちらの選択肢が望ましいか検証する際に、ユーザ の挙動をモニタリングするサービスです。前述のCloudWatch RUMと統合されていて、メトリクスを一緒に見ることができるとのこと。イベントはS3やCloudWatch Logsに出せるようですので、分析系サービスとの繋ぎも問題なさそうです。
JavaScript等のアプリケーション(フロントエンドのよく利用されるフレームワーク含む)にEvidentlyのライブラリを利用してフィーチャーフラグを埋め込んだアプリケーションを作成すれば、”モニタリング、”各バリエーションへのトラフィック量の制御”などができそうです。A/Bテストも同様。
”5. AWS Control TowerがTerraformとの連携を強化”
AWS Control TowerによるAWSアカウント作成と カスタマイズがTerraformで実行可能になりました。これまで、AWS純正のIaCサービスであるCloudFormationが連携の中心でしたが、徐々にTerraform対応が進むかもしれませんね。当社はTerraformを主に利用しているので嬉しい限りです。
”6. AWS ChatbotでSlackでのAWSリソース管理が可能に”
AWS Chatbotを介して、Slack ChannelからAWS CLIのコマンドを発行し、AWSのリソースを管理 できるようになるアップデートです。従来はSlack側での読み取りメインの連携でしたが、逆向きが可能になりました。実行可能な操作を定義するProtection Policy機能も提供されるので、きちんと設計すれば便利に&安全に使えそうですね。
Security
1. Amazon Inspectorの刷新を発表
変更内容が多いですが、ざっくり言うとこれまでより楽に利用できるようなった、という感じですね。定期実行も自前で準備する必要がありましたが、機能として組み込まれるようです。ECRの脆弱性検査はもともとECRの機能として提供されていましたが、こちらに統合されるように見受けられますね。検出抑制対象のマーク等、機能面でパワーアップしています。
Other
“4. Amazon WorkSpaces Webを発表”
内部向けのWebサイト/Webアプリケーションへアクセスするための画像転送(画面だけ転送し、その他のデータはクライアント端末に送らず利用)を行う機能が追加されました。Desktop as a ServiceのWebアプリ専用版といったところでしょうか。管理者側から拡張機能の有効/無効の制御や、特定URLの許可/拒否、ローカルプリンタの利用可否などのポリシーが設定できるようです。内部向けの機微情報を取り扱うアプリについて、利便性をできるだけ損なわないようにしつつ、セキュリティ向上が目指せる手段の一つかもしれません。残念ながら、まだ東京リージョンには来ていない(バージニア、オレゴン、アイルランドのみ)ので、待ち遠しいですね。
”7. AWS re:Postを発表”
元々は AWSフォーラムとして提供されていた機能ですが、AWS内外の技術者がQ&Aに参加し、評価制度も含まれる新サービスとして生まれ変わるようです。正直なところ、フォーラムはしっかり機能していたとは言い難い印象を個人的にはもっていますので、こちらは成功してほしいですね。評価が高まることが(特にAWS外部の人の)インセンティブになると良いのですが。
事前発表されていたアップデート
re:Inventに先駆けて発表されたものの中から、一部ピックアップします。
”1. AWS Lambdaがイベントのフィルタリングに対応”
現時点ではSQS、DynamoDB、Kinesisを利用している場合のみのようですが、これらがデータソースのイベントについてのフィルタリングルールを最大5つまで設定し、合致する場合のみLambda Functionを起動できるようになりました。起動後にLamdba Functionとして判定を行わなくて良いため、コスト削減などに繋がりますし、それらの判定コード自体が開発不要になるので、良いですね。これまでは似たようなことができるものは、CloudWatch Logsのサブスクリプションフィルタくらいでしたし、制限も多かったので、今後の拡張に期待です。
”2. Amazon Aurora Mysql 8.0互換(Amazon Aurora MySQL 3)をサポート”
単純な性能向上や、ウィンドウ機能、JSON関連機能など、利用したいケースはありそうですね。Aurora MySQL 2(MySQL 5.7互換)からの移行はスナップショット経由で可能とのこと。ただし、LTSは提供予定とのことですが現時点ではまだ無いので、採用タイミングには注意が必要です。
”3. AWS Resilience Hubの一般提供開始を発表”
ソフトウェア、インフラストラクチャ、運用の障害による不要なダウンタイムを回避するために、アプリケーションのレジリエンスを定義、検証、追跡するためのサービスがGA。事前定義したRTO/RPOを満たしているか評価を実行したり、推奨改善策を提示できるとのこと。AWS Fault Injection Simulatorと連携してCI/CDへ組み込みもできるとのことなので、継続的な評価の実現手段の一つとなりそうです。
おわりに
毎年のことながら、新発表の数が凄まじかったですね。本記事で触れることができなかったところも、追って詳しく見てみたいところがいくつもあります。皆様はいかがでしたでしょうか?
設計の初期段階では可能な限り「こんな機能/サービスがあったような?」と引き出しを開けて、適材適所なアーキテクチャ設計へ反映できるようにしていきたいですね。