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
520
イノベーショントークから見るクラウド運用の未来を振り返ってみた
nyankotaro
0
1.1k
組織的AWS活用のススメ
nyankotaro
0
730
組織的なクラウド統制のはじめの一歩 後編
nyankotaro
0
1.3k
CDKを使って爆速でナレッジサイトを公開した話
nyankotaro
1
2.7k
AWSのクラウド統制サービスの紹介
nyankotaro
0
1.4k
CLI構築のススメ
nyankotaro
1
1.2k
Other Decks in Technology
See All in Technology
SteampipeとExcel Power QueryでAWS構成定義書の作成を自動化する
jhashimoto
0
180
Oracle Cloud Infrastructure:2026年6月度サービス・アップデート
oracle4engineer
PRO
0
290
現場のトークンマネジメント
dak2
1
190
ぼっちではじめた登壇が「51名」「241件」の発信に化けた
subroh0508
1
310
LayerX コーポレートエンジニアリング室におけるサプライチェーンセキュリティへの取り組み / Supply Chain Security at LayerX Corporate Engineering
yuyatakeyama
3
830
4人目のSREはAgent
tanimuyk
0
130
AI 不只幫你寫 Code: 當專案從 300 暴增到 1500, 我們如何撐住 DevOps
appleboy
0
220
AWS Security Hub CSPMの成功・失敗体験
cmusudakeisuke
0
540
[チョークトーク資料]AWS DevOps Agent を使いこなす / AWS Dev Ops Agent Chalk Talk AWS Summit Japan 2026
kinunori
4
770
AI-DLCを “そのまま導入しなかった”話 ~組織に合わせてアジャストした 私たちの実践共有~
hiroramos4
PRO
1
420
スタートアップにAmazon EKSは早すぎる? マルチプロダクト戦略を加速する Platform Engineeringの実践 / Is Amazon EKS Too Soon for Startups? Practical Platform Engineering to Accelerate a Multi-Product Strategy
elmodev09
1
1.8k
千葉での単身赴任からAWSをやり続け、千葉に戻ってきた話
yama3133
1
120
Featured
See All Featured
KATA
mclloyd
PRO
35
15k
Building the Perfect Custom Keyboard
takai
2
800
We Are The Robots
honzajavorek
0
250
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
140
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
1.1k
Optimising Largest Contentful Paint
csswizardry
37
3.7k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
580
Music & Morning Musume
bryan
47
7.2k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
870
Joys of Absence: A Defence of Solitary Play
codingconduct
1
400
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