re:Invent 2018に行ってきた

Created
Aug 7, 2023 6:34 AM
Tags
re:Invent2018
Editor
Tomoya Kabe
image

チーフエンジニアの加辺です。

今回は2018年11月25日-11月30日にラスベガスで開催されたre:Inventに参加してきた(3年ぶり3回目)ので、そのレポートです。re:InventはAWSが主催する、AWSの世界最大のイベントです。詳細は他所でも多くの記事が書かれている(&書かれる)と思うので省略します。

気になったトピック

image

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の公式サポートがないので自己責任になりますね。

image

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を実行できるようになったのでしょうか…?検証求む。

その他気になったセッション

image

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を判定、アクセス制限しているかを解説するものでした。

初期の実装から問題点の洗い出し、改善版の実装へと短い期間で実現しており、高い技術力を持っているように感じられました。

image

Pokemon 2nd architecture

まとめ

今回もAWSが圧倒的な技術力を見せつけてきた印象です。

今回挙げなかったものも含め、クラウドの利用の取っ掛かりを増やして裾野を拡げようとしています。特にVMwareとの協業は手厚く、既存のon-premise環境からのLift-and-Shiftをより推し進める姿勢が鮮明になりました。

また、これも本記事では触れませんでしたがARMベースプロセッサの開発とA1インスタンスの提供など、コアなユーザにはより手の込んだサービスが提供されています。

ここ2週間ほどで発表された各サービス/機能について、我々も早期にキャッチアップしていく所存です。