
はじめに
こんにちは、アプリケーションチームの小沼・桑名です。
突然ですが皆さん、「AWSのベストプラクティス」を活用できていますでしょうか?
AWSのベストプラクティスは各サービスごとに用意されており、開発・運用するうえで重要な内容が記載されています。
今回は、LANSCOPE エンドポイントマネージャー クラウド版(以下、クラウド版)の開発チームで実践したAWSのベストプラクティス活用事例を紹介したいと思います。
事例紹介:ベストプラクティス輪読会
クラウド版では多くのAWSサービスを活用しています。
しかし、過去の使用実績があるからこそ、「過去の使い方を参考にしよう」とする意識がどうしても出てきてしまいます。
過去のやり方を参考にすることは必ずしも悪ではありませんが、「理解せずに真似る」ことは避けるべきです。
そこで計画したのが、クラウド版で使用実績のあるAWSサービスのベストプラクティスを輪読し、現在のクラウド版でのAWSサービスの使い方や設計・開発の観点について議論する場の用意です。
新人・中堅・ベテランのターゲットを縛らずに、AWSサービスへの理解度をさらに深める取り組みとして実践しました。
実施までの準備
以下の流れで準備を進めました:
- テーマ決め
- チーム内での実施
- 他チームを巻き込んだ募集
ベストプラクティス輪読会は自チームだけでなく、他チームでも「おもしろそう。やってみよう」と思えるきっかけを作りたいと考え、他チームを巻き込んだ募集・実施も行いました。 MOTEXではクラウド版以外にも様々な製品を開発していますが、ベストプラクティス輪読会を開催する旨を社内に共有すると、クラウド版以外の製品開発チームからも参加したいという声を頂き、他製品の開発メンバーとの意見交換にも繋がりました。
当日の様子
第一回目に選んだテーマはDynamoDBです。
クラウド版の中に数多く登場し、ベストプラクティスのトピック数も多いサービスです。
テーマを選んでいる際には、キー構成やアクセスパターンの話で盛り上がるだろうと想定し、輪読会に臨みました。
開催はオンラインで、Zoomを使用しました。
クラウド版の開発メンバー以外の参加者も加わり、予想より多い人数が集まりました。
参加者にはできる限り発言いただきたいという思いから、2チームに分けて実施しました。
画面共有しながら、サービスの概要・特徴を読み上げた後にベストプラクティスの輪読を開始しました。
ベストプラクティスを一つ読み上げるごとに、クラウド版の開発においてこのベストプラクティスはどうだったかをテーマに議論していきます。
議論が特に盛り上がったテーマは以下の通りです:
- DynamoDB でパーティションキーを効率的に設計し、使用するためのベストプラクティス
- ソートキーを使用してデータを DynamoDB で整理するためのベストプラクティス
- DynamoDB テーブル設計のベストプラクティス
パーティションキーの設計では、オンデマンドモードとプロビジョンドモードの選択についての会話が盛り上がりました。 アクセスパターンをすべて網羅できたとしても、オンデマンドモードとプロビジョンドモードの選択には、アクセスパターンの発生頻度が重要となります。 クラウド版で運用しているDynamoDBのメトリクスを例に出しながら、参加メンバーで認識を合わせていきました。
ソートキーの設計は、テーブル設計のベストプラクティスとセットで議論し、なぜテーブル数を最小限にすることがベストプラクティスなのか、それを実現するための複合ソートキーについての議論で盛り上がりました。
ベストプラクティス輪読会は、1時間のMTGとして開催しましたが、議論が白熱し、すべてのベストプラクティスについて会話できたわけではありません。しかし、クラウド版と照らし合わせながら議論できたことにより、満足度は高かったです。
今後もクラウド版の開発にベストプラクティスを活用できるよう、各チームが輪読会を自走できるための推進も継続していきたいと思います。
アンケート結果
輪読会実施後、アンケートを取らせていただきました。

次回テーマを募集してみると、Lambdaが第一位となりました。
クラウド版はサーバレスの構成をメインとしていることもあり、AWSサービスの中でもLambdaの使用率は最も高いサービスです。
次回実施時にはLambdaをテーマにしようと思います。
終わりに
社内で実施したベストプラクティス輪読会の開催レポート、いかがでしたでしょうか。
MTGの枠を1時間確保し、実施するだけでも、高い満足度と多くの気付きを得られる会でした。
クラウド版の開発チームは、ベストプラクティス輪読会のようなイベント以外にも、月に1回の社内登壇の場を設けており、開発以外の取り組みも重視しています。
エムオーテックスの開発現場に興味を持っていただけたら、是非下記リンクから採用情報をご覧ください!