はじめに
初めまして!竹村 (@ayaka_t_1005)です。今年の5月に、SESの会社でのオンプレミスのネットワークエンジニアから転職し、現在はクラウドエンジニアとして働いています。これまで、お客様のネットワーク運用保守や移行プロジェクトに携わってきましたが、インフラやクラウド技術を広く学びたいと思い、MENTA/TechBullで安達さん(@adachin0817)に指導をいただき、クラウドエンジニアとしてのキャリアをスタートさせました。卒業後としては新しいメンティーさんの受け入れで1on1を実施しています。
さて、今回は「ServerlessDays Tokyo」というオフラインイベントに参加してきましたので、その様子をお伝えしたいと思います!
ServerlessDays Tokyoとは
https://tokyo.serverlessdays.io/
-
イベントの概要
ServerlessDays Tokyoは、開発者による開発者のためのServerlessに関するテクノロジーカンファレンス。世界中で開催されているコミュニティ主導のイベントで、最新のサーバーレス技術やその実践的な応用について学べる場です。
2024年の開催は9月21日から22日の2日間にわたり、1日目はテクノロジーカンファレンス、2日目はハンズオンワークショップという構成になっています。私はテクノロジーカンファレンスに参加しました。まだサーバーレス分野には詳しくないのですが、サーバーレスアーキテクチャに関する知識を深める良い機会だと思い、参加を決めました。
-
会場の雰囲気
会場はソニーシティ大崎で、申し込み350名を超える大きなイベントでした。入ると各スポンサーのブースが並び、とても賑やかでした。
特に印象に残ったのは、AWSのServerlesspressoというドリンクをモバイルオーダーできるサーバレスアプリケーションを使ったコーヒーコーナーです。今年のAWS Summitでも見かけましたが、AWS関連のイベントではよく出店しているのかもしれません。仕組みについては以下のブログがわかりやすいです!
https://aws.amazon.com/jp/builders-flash/202406/serverlesspresso/
その横では、AWSのアイコンがプリントされたチロルチョコも配布されていて、かわいかったです!
さて、本題のセッションに移りましょう。
タイムテーブル
セッションのタイムテーブルは以下です。
今回、特に印象に残ったのは、AWS JapanのServerless Specialistである@_kensh さんのセッションです。普段はAWSの責任分界点でユーザが担う部分について話されることが多いそうですが、今回はAWS側が管理している、本来ユーザが気にしなくてよい裏側の仕組みについて詳しく解説されました。
セッションの概要
タイトル:AWS Lambdaを支える技術
発表者:Kensuke Shimokawa (Amazon Web Services Japan G.K.)
Lambdaの歴史
- Lambdaは2014年にEC2のT2インスタンスベースから始まったが、現在はFirecrackerというマイクロVMを利用している。
- 現在では1ヶ月に100万人以上のユーザが利用し、1ヶ月に10兆回の呼び出しがされるほど活用されている。
セキュリティ
- Lambdaの責任境界モデルは、利用者が管理する領域が非常に少なく、AWS側がほとんどを管理する形となっている。
- セキュリティにおいては、他のテナントと影響を与え合わないように、アイソレーション技術が強化されている。LambdaではFirecrackerを導入し、マイクロVM単位でリソースを分離しており、高効率かつ安全性が高い設計。
パフォーマンス
- Firecrackerを利用することで、複数のワークロードをworkerにまとめることでリソースの利用効率を高めている。
- 上記workerの中にまとめるワークロードは、同じタイミングでスパイクするような状況が発生しないように機械学習によって決められている。
- Lambdaのパフォーマンス向上のため、不要なチャンクを除外してキャッシュ効率を高めることで、コールドスタートを避ける工夫がなされている。
可用性
- Cell-based Architecture
- LambdaはCellベースのアーキテクチャを採用し、特定のCellに障害が発生しても他のCellには影響を与えない構造を持っている。
- これにより、デプロイ時の問題が最小限に抑えられる。
- Shuffle Sharding
- Cellベースのシャーディングにより、障害が発生しても影響を受ける範囲が限定され、他の部分で処理を継続できるため、大量のテナントを持つLambda環境では可用性が指数関数的に向上する。
- 各セルが独立しているため、一つのセルで問題が発生しても、他のセルは正常に動作し続け、全体のシステムが影響を受けにくくなる。
- これにより、テナント数が増えるほど、システム全体の耐障害性が高まる。
- ただし、テナントがあまり多くない環境においてシャーディングは複雑な構成になりがちなため、可用性を上げるためには他の方法を検討したほうが良いかもしれない。
まとめ
イベントを通して、普段触れない分野について知ることができ面白かったです!AWSのセッションではマネージドになっている便利な部分、普段は意識していないところがどのように工夫されているのかを知ることができてとても興味深かったです。また、サーバーレス技術に触れる中で、アプリケーションに関する理解もさらに深める必要があると感じ、良い学びの機会になりました。
サーバレスのサービスもどんどん触っていきたいです!!
SESの会社でオンプレミスのネットワークエンジニアとして、クライアントのネットワーク運用保守や移行プロジェクトに携わる。ネットワークにとどまらず、広くインフラやクラウド技術を習得するために、MENTAで@adachin0817さんにインフラの指導を受け、TechBullに参加し、2024年5月にクラウドエンジニアとして転職。現在はクラウドエンジニアやコミュニティの記事を執筆しながら新しいメンティーの受け入れで1on1を実施している。