Slide 1

Slide 1 text

#jawsug これからJAWS-UG富山でワークショップを開催する ときのアラカルト - 業務実例を添えて - Masaki Suzuki 2024/09/28 JAWS-UG 富山#1 キックオフ & JAWS-UG北陸新幹線 ( 富山開催 ) #2

Slide 2

Slide 2 text

#jawsug アジェンダ 1. はじめに 2. 運営者のポイント 3. 講師のポイント 4. 参加者のポイント 5. まとめ 2

Slide 3

Slide 3 text

#jawsug 自己紹介 ◼ 名前: 鈴木 正樹 (Masaki Suzuki) ◼ Job: クラウドアーキテクト&バックエンドエンジニア(※現職では違う) ◼ 主な活動拠点: JAWS-UG 名古屋支部 & CDK支部 ◼ 好きな技術: • AWS(特にLambda), その他サーバーレスバックエンド全般 • Infrastructure as Code(特にAWS CDK), CI/CD (GitHub Actions, AWS CodePipeline) etc. • 好きなAWSサービス:AWS Lambda, CDK ◼ SNS: • @makky12 (SUZUKI Masaki@クラウドエンジニア) • @makky12.bsky.social • https://github.com/smt7174/ • http://makky12.hatenablog.com/ 3

Slide 4

Slide 4 text

#jawsug 自己紹介その2 4 • 5/17(金)発売のSoftware Design6月号にて、Bun.jsの記事を寄稿しました • 第2特集の「実証Bun 次世代JavaScriptランタイムの実態に迫る」の第1章お よび第3章を執筆しています

Slide 5

Slide 5 text

#jawsug 注意事項 ◼ 今回の発表資料・発言内容は、すべて個人の見解・知見になります • 内容は事前に調査・検証しましたが、万が一誤りなどがあった際はご容赦願います ◼ AWSの各種サービスの詳細説明は割愛しています ◼ 本資料は、下記URLで公開しています • この資料です 5

Slide 6

Slide 6 text

#jawsug 1. はじめに

Slide 7

Slide 7 text

#jawsug はじめに 祝!JAWS-UG 富山 誕生 7

Slide 8

Slide 8 text

#jawsug はじめに ◼ JAWS-UG 富山が誕生して、これで文字通り「富山-金沢-福井」という「北陸新幹 線」のJAWS支部が誕生しました ◼ 金沢&福井同様、JAWS-UG 富山もこれからどんどん活動が行われていって発展 いくと思っています。 ◼ そして活動が発展していく中で、必ず行われるイベントがあります。それが… 8

Slide 9

Slide 9 text

#jawsug はじめに 「懇親会」という名の飲み会 ワークショップ 9

Slide 10

Slide 10 text

#jawsug はじめに ◼ これからJAWS-UG 富山が活動していく中で、ワークショップを開催することがある と思います。 ◼ ただ「ワークショップってどうやるの?」「参加者は何を気を付ければいいの?」など、 不明な点もあるかと思います。 ◼ そこで今回はワークショップに関して「運営」「講師」「参加者」三者の観点で押さえ ておきたいポイントを、AWSの業務実例を交えて紹介したいと思います。 10

Slide 11

Slide 11 text

#jawsug はじめに ◼ なおこの資料は、6/8(土)に「JAWS-UG金沢 #99 CDKワークショップやってみよう」 でワークショップの講師(?)をさせて頂いた経験をベースに記載しています。 11

Slide 12

Slide 12 text

#jawsug 2. 運営者のポイント

Slide 13

Slide 13 text

#jawsug 運営者のポイント ◼ 電源・Wi-Fiの確認 13

Slide 14

Slide 14 text

#jawsug 運営者のポイント:電源・Wi-Fiの確認 ◼ ワークショップ会場で電源(コンセント)・Wi-Fiが使用できない場合、イベントペー ジ・SNSなどで事前に周知する(使用できないこと自体は仕方がない) ◼ 可能であれば、(できる範囲で)電源タップを用意して頂けるとありがたいです。 ◼ 「会場に電源・Wi-Fiがある」という前提で参加される方もいます。 14

Slide 15

Slide 15 text

#jawsug 運営者のポイント:業務実例 ◼ EC2やRDS/Auroraで「インスタンスを停止したつもりがされてなくて、翌月に多額 の請求が…」という笑い話(笑えるとは言ってない)をたまに耳にすると思います ◼ そういう事態を防ぐためにも「インスタンスの電源(=ステータス)が想定通りの状 態になっているか」をちゃんと確認するようにしましょう ◼ AWS公式から「Instance Scheduler」という、インスタンスの起動/停止を自動化 できるツールが提供されているので、これを利用するという方法もあります。 15

Slide 16

Slide 16 text

#jawsug 3. 講師のポイント

Slide 17

Slide 17 text

#jawsug 講師のポイント ◼ 必ず事前に動作確認(リハーサル)をする ◼ 環境は極力CloudFormation(=Infrastructure as Code)で用意する ※以後、CloudFormationを「CFn」、Infrastructure as Codeを「IaC」と略記します 17

Slide 18

Slide 18 text

#jawsug 講師のポイント1:必ず事前に動作確認(リハーサル)をする ◼ どんな些細な作業でも、必ず事前にリハーサルして動作確認しておく(特に「手順 書通りの作業で問題なく動くかどうか」は要チェック) ◼ どれだけ準備しても、ワークショップ本番では何かしらのイレギュラーが必ず発生 する(と思う)ので、その前提で事前に確認できることはしておく ◼ ワークショップ本番で「正常に動かない」事態が発生すると、結構焦る&気まずい (僕だけ?) 18

Slide 19

Slide 19 text

#jawsug 講師のポイント1:業務実例 ◼ 実務でもテストも何もせずに本番環境にデプロイする(通称:「漢デプロイ」)なん て、しない(はず)ですよね?(頼むからしないで…) ◼ どんな些細な変更でも、必ず本番デプロイまでに動作確認を行う ◼ AWSでは「CodePipeline」という、CI/CDの自動化環境を構築できるサービスがあ るので、それを利用しましょう。(下図参照。もちろんGitHubなど外部ソースリポジ トリとの連携も可能) 19 CodeBuild CodeCommit CodeDeploy CloudFormation GitHub 各種ファイル CodePipeline アプリ

Slide 20

Slide 20 text

#jawsug 講師のポイント2:環境は必ずCFn(IaC)で用意する ◼ 環境構築・削除を手作業で行うと、参加者による作業のばらつき・作業ミスが発生 しやすく、想定外のイレギュラーが起こりやすい ◼ CFnであれば、同じテンプレートからは必ず同じ環境が作成されるので、上記イレ ギュラーの防止、およびワークショップのスムーズな進行につながる ◼ (最後の)環境削除時のリソース消し忘れ防止にもなる(=無駄な課金を防げる) ◼ IaCツール(AWS CDK, Terraform, Serverless Frameworkなど)でもよいが、ツー ルインストールやある程度ツールの専用知識が必要になるなど、少しハードルが 上がる 20

Slide 21

Slide 21 text

#jawsug 講師のポイント2:業務実例 ◼ 「環境構築・削除を手作業で行うと、作業のばらつき・作業ミスが発生しやすい」の は、実務でも同じ(むしろ、実務の方がより影響が大きい) ◼ 「同じテンプレートからは必ず同じ環境が作成される」(=冪等性の確保)というのは、 IaCの大きなメリット(もちろん、そのためにうまく運用していく必要がある) ◼ 自動化により、ミス抑制・冪等性確保の他、「属人化解消」等のメリットも受けられる ◼ 「手動のメリットは何もない!」 by トレノケートさん豆本より 21

Slide 22

Slide 22 text

#jawsug 講師のポイント2:業務実例 ◼ 「AWS CDK(IaC)でCI/CDの自動化環境を構築する方法」について、9/25(水)開催 の「JAWS-UG CDK支部 #16 ~CDK Conference 2024 Extra~」にて、「CDK Pipelinesをざっくり理解する」という内容で発表しています ◼ https://speakerdeck.com/smt7174/cdk-pipelineswozatukurili-jie-suru 22

Slide 23

Slide 23 text

#jawsug 4. 参加者のポイント

Slide 24

Slide 24 text

#jawsug 参加者のポイント ◼ テザリング接続、および電源タップを用意する ◼ できる限り、自分のPCを使用する ◼ ルートユーザーを使用しない 24

Slide 25

Slide 25 text

#jawsug 参加者のポイント:テザリング接続、および電源タップを用意する ◼ 「運営者のポイント」でも触れた通り、会場で必ず電源(コンセント)やWi-Fiが使え るとは限らない ◼ 「テザリング接続を使用する」「自分で電源タップを用意する」など、参加者側でも 出来ることは無理のない範囲で協力する。(運営に頼りきりにならない) ◼ コミュニティは何事も「助け合い」の気持ちで(運営は本当に大変なので) 25

Slide 26

Slide 26 text

#jawsug 参加者のポイント2:可能な限り、自分のPCを使用する ◼ 会社のPCだと、何かしらの接続制限があるケースが多い。(例:セキュリティソフト・ Proxyなど。当然と言えば当然ですが…) ◼ ワークショップで「一時的にどこかの環境(EC2インスタンス・外部サービスなど)に 接続する」作業において、上記制限でそれらに接続出来ない…というケースがある ◼ せっかくのワークショップの機会が無駄になってしまう…という事態を防ぐためにも、 出来る限り自分のPCでワークショップに参加することをお勧めします。 26

Slide 27

Slide 27 text

#jawsug 参加者のポイント2:業務実例 ◼ 業務の場合は逆に「必要ない人に必要ない操作・アクセスをさせない」ことが大事 (いわゆる「最小権限の原則」) ◼ IAMユーザー・ロールにアタッチするポリシーは、可能な限り必要最小限にする(業 務の場合、AWS Organizationsやスイッチロールで制御することが多い) ◼ IaCにおける「最小権限の原則」の運用については、AWS公式の #AWSDevLiveShow にて「Infrastructure as Code でセキュリティを楽にしよ う !」という動画が9/25(水)に公開されたので、こちらを参照 27 403 Forbidden

Slide 28

Slide 28 text

#jawsug 参加者のポイント3:ルートユーザーを使用しない 28 The Power of PowerPoint - thepopp.com ◼ たまにワークショップで「自分しか使わないアカウントだから」という理由で(?) ルートユーザーを使用している方がいらっしゃいます。 ◼ (それはその通りだけど)ルートユーザーは最高に強い権限をもつ(ヤバい)アカ ウントなので(※1)、極力使用すべきではないです(ワークショップに限らず) ◼ 「AWS アカウントのルートユーザーのベストプラクティス」および「AWSアカウント のセットアップ」に沿って「管理者ユーザー」を作成し、操作は管理者ユーザーで 行ってください。(※2) ※1:「ルートユーザーでしかできない操作」もいくつか存在します(次ページ参照) ※2:ワークショップで行う作業は、管理者ユーザーであれば全て可能です

Slide 29

Slide 29 text

#jawsug 参加者のポイント3:業務実例 ◼ 「ルートユーザーを極力使用しない」というのは、もちろん業務でも同じです(=ログ イン情報が第三者にバレたらマジでシャレにならない) ◼ 基本的にルートユーザーは「ルートユーザーでしかできないこと」及び「何かトラブ ルが発生した際の復旧用」にのみ利用し、通常業務は適切なポリシーをアタッチし たIAMユーザーで実施します。 ◼ IAMユーザーであれば、仮に第三者にログイン情報がバレても、IAMポリシーを 「全ActionをDeny」とすればとりあえず被害を抑えられますし、CloudTrail証跡ロ グによる調査も可能です。(下記参照) 29 // 全ActionをDenyするポリシー { “Version”: “2012-10-17”, “Statement”: [{ “Action”: “*”, “Effect”: “Deny”, “Resource”: “*” }] }

Slide 30

Slide 30 text

#jawsug 5. まとめ

Slide 31

Slide 31 text

#jawsug まとめ ◼ 「運営者」「講師」「参加者」それぞれのポイントを紹介しましたが、あまり深刻に考 えすぎず、「ワークショップを楽しむ」ことがなにより大事です ◼ 「4. 参加者のポイント」にも記載した通り、コミュニティは何事も「助け合い」が大切 なので、お互いが協力しあって、立場関係なく全員が楽しめる場にしましょう ◼ これからワークショップを含めたいろいろなイベントなどを通して、JAWS-UG 富山 がどんどん発展していくことを心から願っております。 31

Slide 32

Slide 32 text

#jawsug ご清聴ありがとうございました 以上です