JAWS-UG CLI専門支部の成り立ちと運営の工夫

アドベントカレンダー投稿当日に、JAWS-UG CLI専門支部10年目にして「IAM障害で何もできないハンズオン」の実績を解除した波田野です(泣。

https://qiita.com/advent-calendar/2023/jaws-ug

# 成り立ち

## JAWS Days 2014への参加
JAWS-UG CLIの主催者である波田野は、2014年3月に開催されたJAWS Days 2014( https://jawsdays2014.jaws-ug.jp/ )で、はじめてJAWS-UGに参加しました。
当時、AWS公式トレーニングを手当たり次第(入門以外全て)受講していた時期で、その講義の中でJAWS Daysの紹介があったのが参加のきっかけでした。

(余談ですが、当時の公式トレーニングは、解説の半分をトレーナー、残りの半分を当時一線級(現在となっては伝説級)のSAさんが行なっており、特にSAさんのパートは生々しく貴重なアーキテクティング話を伺えたのは、今も自分の財産になっています。

当時は、AWSユーザーが急増している時期で、IaC勃興期でもあり、JAWS Days会場に入った瞬間から、参加者や会場全体の熱気に圧倒された記憶が強く残っています。
あの頃は、AWS関連の知り合いというと、Debianコミュニティとしての荒木さんやBSDコミュニティとしての松尾さんという、会場でひっぱりだこのSAさんたちのみだったため、イベント後の懇親会には参加する勇気もなく、早々に帰宅してしまいました。
(ですので、初参加の方の気遅れ感は理解しているつもりです。できる限りフォローしたいですが、意外と人見知りなので...)

## AWS Summit 2014への登壇

その後、荒木さんのお誘いで、AWS Summit 2014に登壇( https://www.youtube.com/watch?v=_o2KXDJzWSs )する機会があり、その事前打ち合わせの中で、当時公式化されて間も無いAWS CLI(当時は、AWS Unified CLI)に特化したJAWS-UGの支部を立ち上げたい、という相談をしたところ、荒木さんから「いいじゃない」って言っていただき、JAWS-UGのコアメンバーに紹介していただくことができました。
(ちょっとマナー違反だったかもしれませんが) AWS Summit 2014の当日、大きな会場、500人の前で、壇上からJAWS-UG CLI専門支部の立ち上げを宣言したのでした。(登壇動画の一番最後に出てきます)

## AWS Summit 2014のJAWS-UGイベント

更に、AWS Summit当日の夜に開催されたJAWS-UGのイベントでも、壇上から立ち上げの宣言をさせていただきました。
壇上から、「AWS CLI使っている人どれくらいいますかー?」と呼び掛けてみたところ、参加者200〜300人のうち、1割ちょっとくらいが手を上げてくれたのが当時のAWS CLIの普及度を示すものかなと思います。

そして、その2週間後に最初のハンズオンを開催して、活動をスタートしました。

## JAWS-UG初の目的別支部

当時は、いわゆる地域支部の他には、属性に特化したクラウド女子会があるだけで、特定のテーマに特化した支部はありませんでした。
個人的に、特定のテーマに特化した支部が増えるといいな、という思いもあり、「専門支部」という名称を、このコミュニティには敢えて付けることにしました。
(自分が立ち上げに関与した、アーキテクチャー専門支部、IoT専門支部も同様の意図があります。)

現在、目的に特化した支部は20を超えつつあります。( https://jaws-ug.jp/act/ )
ぜひ、みなさんも興味のあるテーマの支部に参加してみてください。



# 運営の工夫

JAWS-UG CLI専門支部の立ち上げ当初から、以下の方針を決めていました。

  - 月に2回は開催する。
  - 主催者のモチベーションドリブンで活動する。(興味が無くなったら活動停止)
  - 手順書の作成工数を抑制しつつ、品質の高いものを提供する。
  - 参加者のフィードバックを重視する。

## 月に2回は開催する

当時、AWSのサービスは30を超え(現在は200を超えています)ていたため、月に2回は開催しないと、追いつかないな、と思っていました。(2017年頃に完全にあきらめました 笑)

定期的に開催するためには、参加者に負担が少なく、主催にリスクが少ない会場の選択が重要となります。

まず、参加無料はやらないことにしました。タダだから来る、という人には個人的に興味が無いことと、自分のリソースを消費してまで参加していただく必要は感じないからです。
ちょっとだけでも自腹を切って参加しようという人達は、やはりモチベーションが違います。

少額を集めて公営の会議室を使うという方法もありますが、このような会議室は平日夜に安定して確保することが難しく、利便性の高い施設の場合は抽選による割り当てになってしまいます。(昔、文京区の会議室を借りてBSD系の勉強会をやっていました。)

そのため、「コワーキングスペース茅場町 Co-Edo」( https://coworking.tokyo.jp/ )さんに相談して、定期的に開催する場を確保しました。
波田野が会場を確保し、参加者はコワーキング利用料の1000円を支払うことで、勉強会に参加&コワーキング利用が可能になる、というスタイルとなったのです。
現在はオンラインが中心となったJAWS-UG CLI専門支部の活動ですが、コロナ以前は、Co-Edoさんの存在に依存するところが大きく、JAWS-UG CLI専門支部の活動には不可欠な場でした。深く感謝いたします。


## 主催者のモチベーションドリブンで活動する

コミュニティの活動には、主催者や運営のモチベーションに依存するところが大きく、モチベーションの低下は即コミュニティの停滞に直結します。
そのため、モチベーションをいかに維持するかが重要です。

運営のモチベーションには大きく2つのものがあり、「たくさんの人に集まってもらいたい」「自分が好きなテーマで発表を聞いたり議論をしたい」のどちらか、もしくはその両方であることが一般的かと思います。
当時、JAWS-UG最大の支部である東京支部は、毎回300〜400人近くを集め、すごい熱気でしたが、自分はむかーし、IT関連の自主イベントとしては当時過去最大級の1000人以上を集めるイベント運営に携わったことがあるので、現在は人数を集めるというモチベーションは低く、特定のテーマについて、濃い議論ができる場を求める傾向にあります。

現在のJAWS-UG活動も、AWS CLIに特化した「JAWS-UG CLI専門支部」、AWSのアーキテクティングに特化した「JAWS-UG アーキテクチャ専門支部」、頭のすっきりしている朝に幅広い話題が聞ける「JAWS-UG 朝会」、(まだ活動が再開できていないですが)英語により幅広い交流を目的とする「International JAWS」を中心に行っています。

(クロージングした、「X-Tech JAWS」や「JAWS-UG AI支部」、現在も活動を続けている「JAWS-UG IoT専門支部」、ランチ専門支部である「JAWS-UG 六本木一丁目支部」も立ち上げ&運営に関与していました。)


## 手順書の作成工数を抑制しつつ、品質の高いものを提供する

JAWS-UG CLI専門支部の大きな特徴の一つでもある「手順書」については、参加者が実務で使えるレベルを目指す一方で、月2回のペースで開催するために作成工数を極力抑制する、という方針で制作しています。

これは、Pythonのドキュメントビルダーである「Sphinx」に完全に依存しており、Sphinx無しでは実現できないものでした。
詳細はここでは割愛しますが、「JAWS-UG CLI専門支部の手順書」は、IT業界でもほぼ最高レベルのものだと自負しています。
(参加者だけではなく、AWSJ最長老のあのSAさんにも「このレベルの手順書は見たことないですねぇ」と言っていただいたのは、個人的な勲章だと思っています。)

ドキュメント作成について、何度か情報処理学会で研究論文も書いていますので、ご興味のある方はぜひごらんください。

(余談ですが、自分の作るCLI手順書は、全てシェルスクリプトをインクルード表示しているので、手順書の全てが実際に動くスクリプトの集合体になっています。つまり、、、手順書そのものが実働するスクリプトの集合体になっている、ということです。更には、この手順書自体も自動生成する仕組みになっており...などという話は、ちょくちょくイベントの中でさせていただいています。)


## 参加者のフィードバックを重視する

JAWS-UG CLI専門支部では、参加者は「お客様」ではなく、インタラクティブに参加していただく人、という位置付けで活動しています。

「講師がただ話す場」ならは、別にYouTubeでも構わなくなってしまいます。
コミュニティならば、同じ時間とテーマを共有し、相互作用が無ければ、何の面白みも無いものだと自分は思います。

そのため、オフラインでは最後に「今日のはまりどころ」を全員に発表していただくことを行っていました。
そのフィードバック効果はとてつもなく大きく、現在のJAWS-UG CLI専門支部の手順書は、過去の参加者の踏んだ地雷の山によって築かれたといっても過言ではありません。

現在のオンライン活動では、S3 + Cognitoで構築したアンケートフォームを活用し、ハンズオン後にそれを読み上げながら、講師がいろいろな雑談をする、という「DJスタイル」でやっています。
当日のハンズオン以外の話題で盛り上がることもあり、講師にとっても自分の暗黙知が引き出されるという嬉しい効果もあったりしています。


# 嬉しい効果

## AWS人材の飛躍
このような方針を続けてきたことにより、転職して活躍する参加者が増えてきました。

ご報告をいただくことも多く、一番多いのはあの「ブログの会社」で、次に多いのは「目黒のあの会社」です。
その数は概ね100人を超え、最初に転職の報告をいただいた方は子会社の役員になられ、ハンズオン史上最大の260ページの手順を唯一完遂した方は中の人(それもプロフェッショナルサービス!)で活躍されたりと、多くの方が第一線で活躍されています。

転職された方は、もともとSESをされていた方も多く、転職後に一様に表情が明るくなられているのが印象的です。

AWS CLIは、「AWS APIを正確に理解する」という効果が大きいため、AWS CLIを通じてAWSを学んだ方は、基礎がしっかりしており、どんどんと活躍の場を拡げることができているのだと推察しています。

それもあって、JAWS-UG CLI専門支部は、「JAWS-UG 転職専門支部」という別名も名乗っています(笑

AWS転職で悩んでいる方には、AWS CLIを通じたAWS APIの学習をお勧めします。


## バグや仕様ミスの発掘

ハンズオンや解説を作成するために、AWS公式のドキュメントを精査し、実際にAWS CLIで操作するのですが、その中で、公式ドキュメントの誤りや、AWS CLIもしくはAWS APIのバグを発見することがあります。
これは逐次サポート経由で報告しており、英文レベルで修正されていることもあります。
AWSサポートの方からは、この報告が世界で最初だったことが何度かあった、と言っていただいています。
これはAWSエンジニアとして勲章と思ってもいいのかな、と考えています。

# 今後


## 課題

JAWS-UG CLI専門支部の活動も一つのきっかけになっていると思うのですが、AWS CLIを個人で使う方は2014年当時よりも大幅に増えてきました。
一方で、企業の運用現場では、エンジニアのボトムラインに合わせてCLI禁止となっているところがまだまだ少なくないという声を聞いています。
今後は、企業におけるAWS CLIの普及のお手伝いもしていきたいと考えています。


## IAMの深掘りをしていきます

現在のJAWS-UG CLI専門支部は、広くサービスを体験するというよりは、基本サービスを確実に理解し、深掘りをしていく、という方向で活動しています。
特に、IAM、SQS、SNS、S3、Logs、Lambdaを重視しており、2024年は、まず新年から春先に向けて64回(予定)にわたってIAMの全機能、全APIアクション、ほぼ全パラメータ、全CFnリソース(いずれも予定)のハンズオン(別名: JAWS-UG IAM専門支部)を予定しています。

ご興味がある方は、お気軽にご参加ください。


# 関連記事

- JAWS-UG CLI専門支部 (connpass): https://jawsug-cli.connpass.com/
- 運用でカバーの波田野さんが現場で得た経験則とCLI支部への思い: https://ascii.jp/elem/000/001/196/1196488/index-3.html
- 浴衣希望の上越妙高や実践派のCLI、初心者など多彩なJAWS支部: 
https://ascii.jp/elem/000/000/992/992217/2/
- 24時間開催の「JAWS SONIC 2020＆MIDNIGHT JAWS 2020」を楽しむ（シゲモリ編）: https://ascii.jp/elem/000/004/026/4026901/
- AWS CLI の普及活動の継続とカイゼンがもたらすもの: https://aws.amazon.com/jp/builders-flash/202110/jaws-cli-interview/?awsf.filter-name=*all