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.2k
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
AWS DevOps Agentはどこまで任せられるか 〜機能の現在地と、機能拡張の実践〜
nyankotaro
0
94
DevOps Agentで始めるAWS運用 〜フロンティアエージェントが変える運用の現場〜
nyankotaro
1
1.3k
イノベーショントークから見るクラウド運用の未来を振り返ってみた
nyankotaro
0
1.2k
組織的AWS活用のススメ
nyankotaro
0
810
組織的なクラウド統制のはじめの一歩 後編
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
AIをリアル世界に解き放つ 〜M5Stack×AIであなたのアイディアを手の平に〜
hamadakoji
1
250
AIカンパニーへの転換を支えた、エンジニアの仕事の再定義
kworkdev
PRO
2
1.5k
DBについての基礎説明(MySQL編) - コロプラ 2026年度 新卒研修
colopl
0
160
トークン化預金DCJPYの取り組みと活用ユースケース
finengine
0
220
DevelopersIO 2026 Tokyo 現時点の衛星通信サービスの現状を整理してみる
maroon1st
0
130
~最速でビジネスインパクトを創出する~ Sansanのデータ基盤と活用事例
sansantech
PRO
0
110
アウトプット初心者、半年間のふりかえり
4o1sobblue
0
470
FinOps Agentが生んだ技術負債:コスト自動調査の落とし穴と解消までの道のり
oasis1994liveforever
3
250
国際カードブランドルール変更に伴うクレジットカード決済取引仕様変更について
k1style
0
140
Turning Repos into the Product Second Brain with an LLM Wiki
linedevth
0
130
AI駆動開発におけるハーネスエンジニアリングの勘所
tsukuboshi
1
410
JAWS-UGグッズ職人仕事の流儀
kentapapa
0
130
Featured
See All Featured
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
1
450
Navigating Team Friction
lara
192
16k
Exploring anti-patterns in Rails
aemeredith
4
540
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
580
What the history of the web can teach us about the future of AI
inesmontani
PRO
2
750
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
350
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
640
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.2k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
540
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
7k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.4k
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