Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
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.3k
イノベーショントークから見るクラウド運用の未来を振り返ってみた
nyankotaro
0
1.2k
組織的AWS活用のススメ
nyankotaro
0
790
組織的なクラウド統制のはじめの一歩 後編
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
セルフサービスのオブザーバビリティ基盤をOpenTelemetryで作る / Building a Self-Service Observability Platform with OpenTelemetry
ymotongpoo
3
500
GitHub Agentic Workflows を触ってみる
htkym
2
910
Mastering Agentic Development: Harness Engineering for Effective Coding Agents
konippi
3
670
The seven pitfalls of AI (revised version)
ufried
0
180
形式手法を使って仕様をコーディングしよう
mikanichinose
0
160
DORA_Metrics.pdf
wagnerfusca
1
140
Lambda MicroVMsが分からなすぎたので使い所を1から考えてみた
tsukuboshi
2
290
あなたの知らないAmazon VPC Route Server/Amazon VPC Route Server you don't know about
masakiokuda
2
210
生成AIを使って「人が」考える技術 ― AI時代の人機共想と実践ノウハウ|UNITT AC2026
ishiirikie
0
510
企業の現実世界をグラフで写し取る
sansantech
PRO
0
240
OpenClawでAzure DevOpsのWiki更新を自動化する - クラウドAIだけでは届かない場所へ
yutakaosada
0
140
インバスケット試験対策アプリを 作って見えたAIエージェント構築 ナレッジ2選
shichijoyuhi
1
110
Featured
See All Featured
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
610
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Abbi's Birthday
coloredviolet
4
10k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
470
Bash Introduction
62gerente
615
220k
A Tale of Four Properties
chriscoyier
163
24k
GraphQLとの向き合い方2022年版
quramy
50
15k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
2
930
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
68
58k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
290
Thoughts on Productivity
jonyablonski
76
5.4k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
18k
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