所属する会社のグループ全体で、3週連続でAWSのre:Inventのre:capするということで、アンバサダーとして登壇してきました。登壇者の中で一番の高齢者層だったので、新サービスの発表についてでなく、昔話からの振り返り的な話をしています。
S3の歴史からみる「強力な書き込み後の読み取り整合性」について
テーマに選んだのが、2020/12/03に発表されたS3の「強力な書き込み後の読み取り整合性」についてです。個人的には今回の新サービスの発表の中で、一二を争うくらいの凄い改善だと思うものの、なかなかその凄さが伝わっていないのかなと思います。ということで、歴史的な経緯から。
結果整合性
はじめは結果整合性から。US Standardリージョンという耳慣れない言葉と一緒に紹介しています。いずれは最後に書き込んだ値になるけど、読み込むタイミングによっては最新の情報ではないかもというのが結果整合性です。
ちなみに最初期はS3にデータを転送するのにもお金がかかっていたんですよね。今は、Inの転送料は無料です。
「書き込み後の読み込み」整合性
次に出てきたのが「書き込み後の読み込み」整合性です。新規のオブジェクト作成時は、即時に整合性が反映されているが、オブジェクトの上書きや削除については結果整合性というのが、「書き込み後の読み込み」整合性です。
US Standardリージョン以外はわりと早い時期にこれが利用できたので、S3の標準的な動作として捉えられていることが多いと思います。
「強力な書き込み後の読み取り整合性」
今回発表された「強力な書き込み後の読み取り整合性」です。オブジェクトの上書きや削除の直後にも読み込みの整合性が保証されるようになりました。
ちなみに短いプレゼンの中で、「書き込み後の読み取り整合性」や「強力な書き込み後の読み取り整合性」を連発するのは辛いものがありました。舌噛みそうなのと、自分で何言っているのか解らなくなってきます。
結果整合性と「書き込み後の読み込み」整合性と「強力な書き込み後の読み取り整合性」のまとめ
これらのS3の進化をまとめると、次の表のようになります。基幹となるサービスを着実に進化させてきているところに、AWSの底力を感じられますね。
S3のプレフィックスと性能の話
次にS3のプレフィックスと性能の話です。S3は、秒間のGetやPostなどの性能設定がされていることは割と知られています。しかし、正確にはプレフィックスごとの秒間の設定という条件があります。
この条件があるので、昔のAWSのベストプラクティスでは、プレフィックスの先頭にランダムな値をつけて分散させましょうというのがありました。S3のデータ配置のアルゴリズムと深い関係があるのでしょうね。
しかし、2018年のサービスアップデートでS3の基礎的な性能が大幅に向上したので、今ではほぼ無用の長物と化しています。しかし、今でもこのような設計の命名規則が残っていることも多く、最近の若者からしたら謎設計になっていると思います。というような話をしていました。
勘違いがないように補足しておくと、現在でもプレフィックスごとの性能設定というのは現状でも同じで、単に上限値が上がっているので不要なケースが増えているということです。
比較優位の話
こんなことがあるので、AWSの知識は常にアップデートが必要なことと、それを一人でやるのは無理という話をしました。そのためには、みんなでアウトプットしましょうと。ただ、うちのグループ内って、スーパーマンみたいなに何をやっても凄い人が、まれによくいます。そんな人たちを見ていると、自分がアウトプットする必要ないじゃんというマインドになりがちになります。
そんなことないですよ。みんなアウトプットしましょうということで、リカードさんの比較優位の話を軽く紹介しています。
時間の関係もあり、超絶端折ったスライドで煙に巻いている感もありますが、詳しい話はこちらをご参照ください。
まとめ
オンライン開催なのでよく解らなかったのですが、数百人規模の参加者がいたようです。CommentScreenによるコメントも活発で盛り上がってよかったです。また、これらの会が若手主体で、発表者も1〜2年目の人も多かったです。勢いを感じられるイベントで良かったなと思います