- 気になったトピック
- Glacier Deep Archive
- Amazon FSx (for Windows / for Lustre)
- DynamoDB Read/Write Capacity On Demand
- Amazon Timestream
- 元帳(QLDB)
- Redshiftの並列性スケーリング
- Lambdaの言語サポート拡充
- Lambda Layers
- Step Functions service integrations
- ALB Support for Lambda
- その他気になったセッション
- DAT305 Deep Dive On Amazon Aurora with PostgreSQL Compatibility
- SEC301 The Theory And Math Behind Data Privacy And Security Assurance
- SEC402 AWS, I Choose You: Pokemon’s Battle Against The Bots
- まとめ
チーフエンジニアの加辺です。
今回は2018年11月25日-11月30日にラスベガスで開催されたre:Inventに参加してきた(3年ぶり3回目)ので、そのレポートです。re:InventはAWSが主催する、AWSの世界最大のイベントです。詳細は他所でも多くの記事が書かれている(&書かれる)と思うので省略します。
気になったトピック
Keynote入口の様子
今回のre:Inventでも多くの新サービス/機能が発表されましたが、細かく見ていくとキリがないのでSRE観点で気になったものを挙げていきます。
いずれもDay3, Day4に行われたKeynoteで発表された内容と、私が参加したセッションで得た情報を混ぜて記載しています。
Glacier Deep Archive
長期ストレージとしては格段の安さを誇るGlacierですが、さらに安くなるオプションが追加されました。
いつも通りの11 9's durabilityで、従来のGlacierの1/4ほどの低価格とのことです。
Amazon FSx (for Windows / for Lustre)
EFSによるNFS提供からは少し遅れてきましたが、2つの共有ストレージサービスが発表されました。
FSx for Windowsは実際のWindows Serverで提供されるため互換性が完全と謳っています。
数十GB/sをミリ秒以下のレイテンシで達成しているそうです。
FSx for LustreはHPCでは多くの実績があるLustreをFull-managedで提供してくれます。
こちらはPOSIX互換、Read-after-write consistency、file lockingサポートありとなっています。
DynamoDB Read/Write Capacity On Demand
DynamoDBのオートスケールに加え、「実際に使った分だけ払う」がより達成されることになりました。
Amazon Timestream
時系列DBがついにサポートされます。
主にリソースグラフの提供などで重要で、古くはRRDtoolが使われていました。RDBで頑張ることもできますが決して効率がよくなく、課題のストレージでした。
近年ではInfluxDBがありますが、可用性の向上など本番環境で重要な機能はそれなりの額を払う必要がありました。
これが廉価にFull-managedで提供されるのは大きなアップデートです。
元帳(QLDB)
フルマネージドな元帳サービスです。
常に追記だけしていくストレージで、管理者でも改竄を行えません。
Current/History/Journalを管理しており、Journalが本体、Current/Historyはそれに対するViewのようなものです。
操作はSQL-likeな構文で行えるようになっています。
Redshiftの並列性スケーリング
今まではピークパフォーマンスがどれくらいあればよいのか事前に見積もり、先にスケールアップさせておかなければなりませんでしたが、この機能を使うとある程度はburstできるようになるようです。
Keynoteでは24時間ごとに1時間のconcurrent burst hourがもらえると記載されていました。
Lambdaの言語サポート拡充
Lambdaまわりは大量の発表がありましたが、特にTwitterの観測範囲でも話題になったのは言語サポートの拡充でしょう。
今回はRubyの公式サポートと、Custom Runtimesが発表されました。
我々も各種言語を使い分けているので、サポート言語が増えることは嬉しく思います。
Custom RuntimesはAWSの公式サポートがないので自己責任になりますね。
Custom Runtimes
Lambda Layers
https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/configuration-layers.html に詳細が書かれています。
今までLambdaではコードが依存するライブラリを含めたZIPを作成する必要がありましたが、これを分離することができるというものです。
たとえばPythonのpipやRubyのbundlerなどで表現された依存をvendor/に入れた状態でZIPしていましたが、Lambda Layersを使うとこれらのパッケージングを分離することができます。
Lambda functionごとに依存ライブラリを更新してアップロードする必要がなくなるので便利になると思われます。
Step Functions service integrations
従来のStep Functionsはサービス連携が弱く、ちょっとしたことでも別々にLambdaを定義してサービスを呼び出さなければなりませんでした。
今回のアップデートにより8つの新規連携ができるようになるため、Lambdaの数が減らせそうです。
ALB Support for Lambda
ALBから直接Lambdaを呼び出せるようになりました。
ALBはもともとPathベースのTarget切り替えができるため、特定のPathのみLambdaに処理を任せることができるようになったことになります。
さらに前述のアップデートでRubyが使えるようになったことを踏まえると、ALBからLambdaでRailsを実行できるようになったのでしょうか…?検証求む。
その他気になったセッション
Strip Street
DAT305 Deep Dive On Amazon Aurora with PostgreSQL Compatibility
Aurora PostgreSQLの詳細セッションです。
特にQPM(Query Plan Management)まわりはクエリが繰り返し実行される度、テーブルの状況変化に対してよりよいクエリ実行計画に更新していく仕組みで面白いものでした。
SEC301 The Theory And Math Behind Data Privacy And Security Assurance
AWSがIAMまわりで利用しているZelkovaについてのセッションです。
https://aws.amazon.com/jp/blogs/security/protect-sensitive-data-in-the-cloud-with-automated-reasoning-zelkova/ をより掘り下げたセッションでした。
身近なところではS3のバケット一覧における"PUBLIC"バッジの表示に使われています。
セッションでは「あるS3のbucket policyが与えられたとき、これはpublicなものであるかを判定できるか?」というのが例題として与えられました。
言われてみるとそう簡単ではなく(AWSサービスからの利用や複雑なConditionがありうる)、最終的には論理式に落とし、SATを解く問題になってしまいます(NP完全)。
これをSMTに変換できればSMT solverにかけられるということで、問題空間を上手に枝刈り、セグメンテーションし、それぞれに対しての問題を解くことで現実的に解けるようにしているというのが解説されていました。
SEC402 AWS, I Choose You: Pokemon’s Battle Against The Bots
これはタイトルで聴講を決めただけのセッションだったのですが、Pokemon社がPokemon GoにおいてどうやってBotを判定、アクセス制限しているかを解説するものでした。
初期の実装から問題点の洗い出し、改善版の実装へと短い期間で実現しており、高い技術力を持っているように感じられました。
Pokemon 2nd architecture
まとめ
今回もAWSが圧倒的な技術力を見せつけてきた印象です。
今回挙げなかったものも含め、クラウドの利用の取っ掛かりを増やして裾野を拡げようとしています。特にVMwareとの協業は手厚く、既存のon-premise環境からのLift-and-Shiftをより推し進める姿勢が鮮明になりました。
また、これも本記事では触れませんでしたがARMベースプロセッサの開発とA1インスタンスの提供など、コアなユーザにはより手の込んだサービスが提供されています。
ここ2週間ほどで発表された各サービス/機能について、我々も早期にキャッチアップしていく所存です。