Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Classmethod Cloud Guidebookの裏側
Search
nyankotaro
August 02, 2023
Technology
1.1k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Classmethod Cloud Guidebookの裏側
nyankotaro
August 02, 2023
More Decks by nyankotaro
See All by nyankotaro
DevOps Agentで始めるAWS運用 〜フロンティアエージェントが変える運用の現場〜
nyankotaro
1
1.1k
イノベーショントークから見るクラウド運用の未来を振り返ってみた
nyankotaro
0
1.2k
組織的AWS活用のススメ
nyankotaro
0
770
組織的なクラウド統制のはじめの一歩 後編
nyankotaro
0
1.4k
CDKを使って爆速でナレッジサイトを公開した話
nyankotaro
1
2.8k
AWSのクラウド統制サービスの紹介
nyankotaro
0
1.5k
CLI構築のススメ
nyankotaro
1
1.3k
Other Decks in Technology
See All in Technology
Level Up Your CDK DX: 5 Tools I’ve Been Building
gotok365
2
150
最新技術に積極チャレンジ!EKS共通基盤のこれまでとこれから
daitak
0
280
いかに伝えるか 〜新卒エンジニアの教育のための、ライトノベル活用の一例
ikedon
1
130
[RSJ26] Flow as Flow: Modeling Robot Velocity Fields as Probability Velocity Fields
keio_smilab
PRO
0
160
Introduction to Sansan Meishi Maker Development Engineer
sansan33
PRO
0
470
書籍『生成AIの安全性入門』の入門
wataoka
0
140
みてねにおけるAI-DLC導入活動とAIドリブン開発の現在地/JAWS-UG AI-DLC #2
isaoshimizu
2
310
AI駆動開発をチームに根付かせる - 「1行も書かない」チームがHarnessを育てた1年 -
kenichirokimura
6
3.5k
GopherCon @シアトル に行ってきました
logica0419
0
470
指示待ちから変化に応じるClaude Codeへ!~環境からAgentへの帰り道を作る~
gotalab555
9
1.7k
[2026-08-25]AIによる自動化と人の介入、その狭間で揺れる信頼性についての俺の思いを、波よ聞いてくれ
tosite
0
110
AI時代の「OAuth認証」にどう物申すか?(OAuth/OIDC Numa (Immersion) Workshop 2026)
oidfj
PRO
0
410
Featured
See All Featured
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.2k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
[SF Ruby Conf 2025] Rails X
palkan
2
1.3k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.8k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.4k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
680
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
GitHub's CSS Performance
jonrohan
1033
470k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.7k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
240
Marketing to machines
jonoalderson
1
5.7k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
232
55k
Transcript
Classmethod Cloud Guidebookの裏側 2023/8/2 AWS事業本部コンサルティング部 たかやま 1
自己紹介 2 高山晃太朗(@nyan_kotaroo) 所属 : AWS事業本部コンサルティング 趣味 : ねこ、筋トレ 経歴
: 金融系インフラSE4年 -> クラスメソッド ロール : 技術コンサル、ナレッジサイトの運用
アジェンダ 3 Classmethod Cloud Guidebookとは? コンテンツ管理の裏側 インフラ管理の裏側
Classmethod Cloud Guidebook とは? お客様向けに提供しているAWSのナレッジ集 (ここでは長いのでCCGと呼びます) 4
Classmethod Cloud Guidebook とは? 5 AWS事業本部の顧客対応の中で得たAWS活用のノウハウ、セキュリ ティ、マイグレーション、ガイドライン作成などのクラスメソッドの知見 を集めたドキュメント集 クラウドジャーニーを導くガイドブックのような存在であってほしい という思いが込められています
Classmethod Cloud Guidebook とは? 6 クラスメソッドメンバーズのお客様向けに無料で公開しています デモサイトも公開中 ↓ https://demo.guidebook.classmethod.net/
コンテンツ内容 7 AWS利用ガイドラインサンプル 組織管理ガイド(旧AWSアカウントベースラインTips) Security Hubガイド マイグレーションガイド
コンテンツ内容 8 https://dev.classmethod.jp/articles/how-to-use-ccg/ https://dev.classmethod.jp/articles/developersio- day-one-classmethod-cloud-guidebook/ コンテンツの使い方の詳細についてはこちら
今回はClassmethod Cloud Guidebook 裏側ということで... 9
Classmethod Cloud Guidebookの裏側 10 CCGを支える裏側のサービスを紹介します MkDocs
コンテンツ管理の裏側 1 1
コンテンツ管理の裏側 12 MkDocs
MkDocs 13 Pythonで動作する静的サイトジェネレーター テーマやプラグインをインストールすることで プロジェクトをカスタマイズ可能 Markdown形式でドキュメントを記述することができる 生成されたコンテンツをGitHubページ、Amazon S3に ホストすることで静的なHTMLサイトを構築可能
MkDocs 14 <!-- Classmethod Cloud Guidebook --> Classmethod Cloud GuidebookはAmazon
Web Services(以下、AWS)のナレッジ集です。 本コンテンツは組織内におけるAWSガバナンスの支援を目的としています。<br>複数のAWS 活用時の管理方法やセキュリティ対策の検討・判断に役立つ情報をまとめています。 クラウドジャーニーを歩まれる上でのガイドブックとしてご活用ください。 ## 掲載コンテンツ 掲載コンテンツは、CCoE、DX推進、技術企画部門などの組織内におけるAWS全体の管理者 やセキュリティ担当者を主な読者として想定して用意しています。 | コンテンツ | 想定読者 | 解決できる課題 | 記載内容 | |---|---|---|---| | [AWSアカウントベースラインTips](./BaselineTips/README.md) | 組織内のAWS全体の 管理者<br><br>セキュリティ担当者 | AWS上でセキュアにシステムを稼働させるための基 盤(ベースライン)を構築したいが、どのように設定すればよいか分からない<br><br>ベ ースライン設定に関する検討事項を把握したい | セキュリティとスケーラビリティを考 慮したベースライン設定の検討事項と検討ノウハウ | | [AWS Security Hubガイド](./SecurityHubGuide/README.md) | 組織内のAWS全体の管理 者<br><br>セキュリティ担当者 | AWS Security Hubのセキュリティチェックに対する対 応方針を検討したい<br><br>チェック項目(コントロール)を無効化する判断材料を知り たい | セキュリティ基準「AWS基礎セキュリティベストプラクティス」の各コントロール における対応方針の推奨 | | [マイグレーションガイド](./Migration/README.md) | 移行計画策定者<br><br>移行実 務者 | AWSへのマイグレーションを検討したい<br><br>MGNでの移行方法を知りたい | 移 行準備ガイド、データ移行ガイド<br><br>MGN移行ガイド | | [AWS利用ガイドラインサンプル](./Guideline/README.md) | 組織内のAWS全体の管理者 | AWS利用ガイドラインを作成したいが、どのような内容を検討すればよいか分からない <br><br>ガイドラインのアウトプットをイメージしたい | AWS利用ガイドラインの策定項 目と内容のサンプル ・ ・ ・ site_name: Classmethod Cloud Guidebook site_url: https://guidebook.classmethod.net/ nav: - "はじめに": README.md - "改訂履歴": HISTORY.md # ##### - "📘組織管理ガイド": - "本セクションの使い方": Organization/README.md ・ ・ ・ markdown_extensions: - tables ・ ・ ・ plugins: - tags: tags_file: tags.md ・ ・ ・ theme: favicon: image/favicon.ico ・ ・ ・ MkDocs画面 mkdocs.yml README.md コンテンツ本文をMarkdownで記載 ナビゲーションバーの構成や MkDocs全体のデザイン/プラグインを設定
MkDocs 15 https://dev.classmethod.jp/articles/mkdocs-and-material-for- mkdocs-tips-matome/
GitHub 16 コンテンツ管理でGitHubを使うことで社内に広く 執筆へのコントリビュートを促す 表記ゆれをおさえるためのtextlintと開発環境への 自動デプロイのCI/CDをGitHub Actionsを実装
GitHub 17 コントリビュートの仕組みを用意してGitHubで社内公開することで 多くの方が執筆に貢献できる 各コンテンツの運営メンバー 執筆に貢献いただいたコントリビューターは30人
GitHub 18 AWSリソース名や技術文書向けの表記ゆれをおさえるためのtextlintを導入 https://dev.classmethod.jp/articles/create_aws_textlint_rule/ https://dev.classmethod.jp/articles/markdown-writing-with-textlint-ci/
GitHub 19 開発環境(develop branch)にはGitHub Actionsで自動デプロイを実装 https://dev.classmethod.jp/articles/github-actions-sync-mkdocs- build-to-s3/ IAM Role
フィードバック管理 20 GitHubを利用しない営業やサポートチームからも広くを声を集めるために Notionでフィードバック・質問受付を実施 Notionに起票するとSlackに通知される
インフラ管理の裏側 2 1
インフラ管理の裏側 22 MkDocs
インフラ管理の裏側 23 極力稼働をかけないで楽をしたい サービスはサーバレスメイン IaCはAWS CDKを使って開発工数を削減 SaaSを利用して運用をオフロード
インフラ管理の裏側 24 サーバレスメインで構成することで運用コストを削減 認証 セキュリティ 監視 コンテンツ公開
コンテンツ公開 25 コンテンツ公開 コンテンツ公開はCloudFront + S3を利用 詳細については 「10分でわかるCloud One File
Storage Securityを利用したS3 のデータ保護」 ホスティングするファイルは Cloud One File Storage Securityで マルウェアスキャンを実施 マルウェアファイルは 公開をブロック
認証 26 CloudFrontの署名付きCookieで認証 認証 https://dev.classmethod.jp/articles/aws-cdk-multi- environment-config/ CognitoやALBのようなサービスとOIDC連携ができない 環境でも認証機能を実装可能
セキュリティ 27 セキュア設定とWafCharmでセキュリティ運用をオフロード セキュリティ WafCharmレポート例 WafCharmが自動でルールを運用 月次レポートも生成可能 GuardDuty,Security Hubなどのセキュリティサービスは セキュア設定でワンクリックで有効/メンテナンス
WAF運用はWafCharmで運用をオフロード https://classmethod.jp/aws/services/secure-account/
監視 const synthetics = require('Synthetics'); const log = require('SyntheticsLogger'); const
syntheticsConfiguration = synthetics.getConfiguration(); const flowBuilderBlueprint = async function () { const url = process.env.URL; syntheticsConfiguration.setConfig({ includeRequestHeaders: true, includeResponseHeaders: true, restrictedHeaders: [], restrictedUrlParameters: [], }) let page = await synthetics.getPage() // Navigate to the initial url await synthetics.executeStep('navigateToUrl', async function (timeoutInMillis = 30000) { await page.goto(url, { waitUntil: ['load', 'networkidle0'], timeout: timeoutInMillis }); }); // Execute customer steps const userid = 'dummy@classmethod'; await synthetics.executeStep('input', async function () { await page.type("[type='userid']", userid); }); await synthetics.executeStep('input', async function () { await page.type("[type='password']", cmppassword); }); await synthetics.executeStep('click', async function () { await page.waitForSelector("[type='submit']", { timeout: 30000 }); await page.click("[type='submit']"); }); await synthetics.executeStep('verifyText', async function () { await page.waitForXPath("//h1[contains(text(), 'はじめに')]", { timeout: 30000 }); }); }; exports.handler = async () => { return await flowBuilderBlueprint(); } 監視 28 CloudWatch Syntheticsでログインページを伴うサイトの死活監視 Synthetics GUIワークフロービルダーで ログインページの認証からCCGのコンテンツまで確認
AWS CDK 29 IaCはAWS CDKを使って開発工数を削減 Construct ホットスワップ機能(--hotswap)
Construct 30 JavaScript/TypeScriptの自動コンパイルを行い esbuildによるLambda関数のアセットをバンドルしてくれる TypeScriptでCDKを使っていればpackage.jsonをlambdaと共有可 ローカルファイルをS3にアップロードしてくれる オプションでCloudFrontキャッシュ削除も可能 Lambda開発で利用 ログインページのホスティングで利用 Experimental(試験的)にはなりますが、pythonとgo用に拡張されたConstructがあります。
NodejsFunction BucketDeployment 複数のAWSリソースの構成を抽象化(まとめた)したもの ↓は今回特に開発効率を向上させてくれたConstruct
ホットスワップ機能(--hotswap) 31 CloudFormationを変更せず、リソースを直接更新するオプション 対応リソース Lambda コード/タグ/説明/環境変数/バージョン/エイリアス Step Functions ステートマシン定義 ECS
コンテナアセット S3 静的ホスティングリソース CodeBuild プロジェクト/ソース AppSync VTLマッピングテンプレート ※本番環境での利用は非推奨 cdk deploy cdk deploy --hotswap 約50秒削減
料金 32 サービス 概要 料金 (USD/month) CloudWatch Canary(5分間隔)、Alarm 約20$ WAF※1
1ACL+3Rules 約8$ Security Hub GuardDuty セキュリティ 約12$ S3,CloudFront, API Gateway, Lambda 認証、コンテンツ公開(1万リクエスト/month) 約2$ Cloud One FSS ファイルスキャン(1万ファイル/month) 約8$ 主要リソース料金 ※1 : WafCharmは料金に含まず
さいごに 33 Classmethod Cloud Guidebookが みなさんのガイドブックとなれるように今後も継続して コンテンツをアップデートしていきます!
34