3.6K Views
June 29, 23
スライド概要
2023/6/29のAWSオンラインセミナー「AWS Dev Day 2023 Tokyo 延長戦」で登壇した際の資料です。
Web Application Engineer @ AlphaDrive
全員 SRE ? CI/CD や運用まで完遂するプロダクトエンジニア が実践する AWS CDK でのインフラ構築 AlphaDrive Web Application Engineer & SRE / 畠山 嵩広 2023.6.29@AWS Dev Day 2023 Tokyo 延長戦 1
00 自己紹介 畠山 嵩広 AlphaDrive Webアプリケーションエンジニア & SRE keyamin_ あと1こ... ©Alphadrive Co.,Ltd. All Rights Reserved. 2
アジェンダ 1. AlphaDriveについて 2. AWS CDKの紹介 3. 「全員SRE」のためにやっていること 4. まとめ ©Alphadrive Co.,Ltd. All Rights Reserved. 3
アジェンダ 1. AlphaDriveについて 2. AWS CDKの紹介 3. 「全員SRE」のためにやっていること 4. まとめ ©Alphadrive Co.,Ltd. All Rights Reserved. 4
01 AlphaDriveについて AlphaDriveは、 新規事業創出支援のプロフェッショナルカンパニーかつ、 エンジニア第一のテクノロジーカンパニーです。 and more… ©Alphadrive Co.,Ltd. All Rights Reserved. 5
サービス | Incubation Suite(インキュベーション スイート) 新規事業開発に特化したクラウド型総合支援ツール 3,500社以上の新規事業開発を支援してきたAlphaDriveの知見を余すことなく注ぎ込んだソリューション。 新規事業制度を運営する事務局メンバーをサポートする管理機能から、起案者向け学習コンテンツ提供、 起案ブラッシュアップ機能まで。新規事業開発に必要なサポートを1つのプラットフォームで実現します。 ポイント 対象課題 新規事業開発 / 事業開発人材育成対応 事務局業務の効率化を実現 起案者の課題を先回りしたサ ポート機能 対象部署 新規事業プログラム参加メンバーの 登録、研修 /イベントの告知、 事業アイデアの進捗管理、審査 フィードバックなど多岐にわたる事務 局業務に対応。 多忙な業務をサポートする機能を 1 つのツールに集約しました。 新規事業開発にあたって必要となる 事業フレーム、事業案の管理、アイ デアを仮説検証した履歴を自動アー カイブ、事業開発スキルの向上など 多様な機能を取り揃えており、新規 事業の推進・検討に専念することが できます。 事業開発・新規事業 / R&D・イノベーション インキュベーション / 次世代事業開発 経営企画・総合計画 / 人事・人財開発 事業を前進させる 支援オプション リクルートで社内事業開発プログラ ムを立ち上げた麻生要一ら専門家 によるメンタリングや顧客ヒアリング 支援など人的なサポートも組み合わ せることで、新規事業の進捗をバッ クアップします。 対象領域 事業創出 組織変革 ©Alphadrive Co.,Ltd. All Rights Reserved. 人材育成 導入企業 6
サービス | NewsPicks Enterprise 学びと対話の空間 NewsPicksを法人向けの人材及び組織開発ツールとしてカスタマイズすることで、 イノベーション人材を育て、組織の変革力を生み出す「人材と組織の成長プラットフォーム」です。 対象課題 VALUE 1 VALUE 2 VALUE 3 社員の インプット向上 社員の アウトプット向上 社員の コミュニケーション リレーション醸成 次世代型変革人材発掘 / 自律型人材育成 / サイロ化打破 / エンゲージメント向上 / ビジョン・理念浸透 対象部署 人事・人材育成 / 人財開発・組織開発 経営企画・総合計画 / 事業企画・経営管理 / 社内 VALUE 5 VALUE 4 社内変革に繋がる アクション イノベーション創出 イノベーション 人材開発・発掘 広報 / 組織風土改革 / 総務・福利厚生 / 労働組合 対象領域 導入企業 事業創出 組織変革 ©Alphadrive Co.,Ltd. All Rights Reserved. 人材育成 7
技術スタック紹介 ©Alphadrive Co.,Ltd. All Rights Reserved. 8
ス ー タベ フロ ー デ ト ン Incubation Suite TypeScript デザ イン 監視 バックエ ンド インフラ Aurora - Postgres Amazon CloudWatch TypeScript Amazon ECS / Fargate Express.js AWS CloudFormation AWS CDK 9
ス ー タベ フロ ー デ ト ン 開発中の新SaaS TypeScript デザ イン 監視 バックエ Chakra UI ンド インフラ Aurora - Postgres Storybook Amazon CloudWatch Go Gin OpenAPI Amazon ECS / Fargate AWS CloudFormation AWS CDK Gin-Gonic Framework Logo by Javier Provecho. The Gopher character is based on the Go mascot designed by Renée French. 10
01 AlphaDriveのポリシー 私達AlphaDriveは組織の初期段階ではSREチームを組成せず、 プロダクト開発者全員がSREのスキルを持つことをポリシーに 25名規模の組織で複数のSaaS開発を進めています。 - 赤澤 剛 (AlphaDrive CTO) ©Alphadrive Co.,Ltd. All Rights Reserved. 11
全員がSRE…?🤔 ©Alphadrive Co.,Ltd. All Rights Reserved. 12
01 そもそもSREとは? SREとは、ソフトウェアエンジニアに運用チームの設計を依頼したときに できあがるものです。 - 『SRE サイトリライアビリティエンジニアリング』より ©Alphadrive Co.,Ltd. All Rights Reserved. 13
「プロダクト開発者全員がSRE」とは... ©Alphadrive Co.,Ltd. All Rights Reserved. 14
SREを職種ではなく方法論や文化として捉え、 運用まで開発者全員に浸透させること!🙋 ©Alphadrive Co.,Ltd. All Rights Reserved. 15
01 AlphaDriveが目指す「プロダクト開発者全員がSRE」 自分が書いたコードは、 デプロイや運用まで自分で面倒を見る それを実現できる仕組みを作る 🙅「運用担当者さん、アラート鳴ってるよ〜!」 そうは言っても、開発者全員にAWS(IAMポリシーの細かい書き 方...)やTerraform(HCLのややこしいDynamicBlock...)を完璧に 習得してもらうのは難しい ではなく、開発者自身でソフトウェアエンジニアリングの知見を活 かして開発者体験を向上させる! ただ開発者の負担が増えるだけでは、組織拡大の敷居も高くなる → 持続可能性が低い🙅 🙅「DevOpsエンジニアさん、パイプライン直して!」 ©Alphadrive Co.,Ltd. All Rights Reserved. 16
アジェンダ 1. AlphaDriveについて 2. AWS CDKの紹介 3. 「全員SRE」のためにやっていること 4. まとめ ©Alphadrive Co.,Ltd. All Rights Reserved. 17
02 「プロダクト開発者全員がSRE」実現のためのIaCツール 開発中のSaaSでは、IaCを実現するツールとしてAWS CDKを採用しています AWS Cloud Development Kit (AWS CDK) ● 馴染みのあるプログラミング言語を使いつつ、IaCのメリットを享受できる ● L2 Constructなどによる抽象化で、直感的にインフラをコードで記述できる ● 内部でCloudFormationが使用されており、公式サービスならではの手厚いサポートや 豊富な機能提供を受けられる この2行でEventBridgeの通知先となるSNSトピックを記述できる🥰 ©Alphadrive Co.,Ltd. All Rights Reserved. 18
02 大まかなアプリケーション構成 ©Alphadrive Co.,Ltd. All Rights Reserved. 19
CDKを書いてて最高なポイント ©Alphadrive Co.,Ltd. All Rights Reserved. 20
①圧倒的に少ないコードで書けて最高🎉 ©Alphadrive Co.,Ltd. All Rights Reserved. 21
この1行で... ©Alphadrive Co.,Ltd. All Rights Reserved. 22
これ全部できあがります🎉 ↓diff ©Alphadrive Co.,Ltd. All Rights Reserved. 23
Terraformとの比較 terraform-aws-modules/vpc(*1)を利用した場合 (*1)https://registry.terraform.io/modules/terraform-aws-modules/vpc/aws/latest ©Alphadrive Co.,Ltd. All Rights Reserved. 24
②Lambdaの開発体験が良くて最高🎉 ©Alphadrive Co.,Ltd. All Rights Reserved. 25
このようなディレクトリ構造の場合... ©Alphadrive Co.,Ltd. All Rights Reserved. 26
パスを渡すだけでLambdaをデプロイできる!🚀 ※これだけでデプロイした場合、destroyしてもCloudWatchのロググループが残るので注意 ©Alphadrive Co.,Ltd. All Rights Reserved. 27
02 Lambdaの開発体験が良くて最高🎉 aws-cdk-lib.aws-lambda-nodejs.NodejsFunction(*1)を使うと、エントリーポイントやlockファイルのpathなどを 渡すだけでTypeScriptで書いたLambdaコードをいい感じにアップロードしてくれるので楽 ● アルファ版ですが、PythonやGo版もあります ● Terraformだと、terraform_dataやnull_resourceを使うなどしてトランスパイル・ビルドを記述する 必要がある (*1)https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_lambda_nodejs.NodejsFunction.html ©Alphadrive Co.,Ltd. All Rights Reserved. 28
③CDKとStepFunctionsの相性が最高🎉 ©Alphadrive Co.,Ltd. All Rights Reserved. 29
StepFunctions、GUIでワークフロー作るのは簡単だけど IaCだとASL(*1)書くのが大変...🥲 (*1)Amazon States Language: https://docs.aws.amazon.com/step-functions/latest/dg/concepts-amazon-states-language.html ©Alphadrive Co.,Ltd. All Rights Reserved. 30
CDKならTypeScriptで書けます!👍 ©Alphadrive Co.,Ltd. All Rights Reserved. 31
作成されたStateMachine ©Alphadrive Co.,Ltd. All Rights Reserved. 32
アジェンダ 1. AlphaDriveについて 2. AWS CDKの紹介 3. 「全員SRE」のためにやっていること 4. まとめ ©Alphadrive Co.,Ltd. All Rights Reserved. 33
「TypeScriptでインフラ書ける」だけでは 「インフラ得意な人がTypeScriptで書く」だけ😭 ©Alphadrive Co.,Ltd. All Rights Reserved. 34
日々の開発フローや構造から、「全員SRE」を目指す ©Alphadrive Co.,Ltd. All Rights Reserved. 35
03 CDKコードまで含めたモノレポで開発 実装PR アプリケーションリポジトリ いつもと違うリポジトリをさわる のが億劫... ©Alphadrive Co.,Ltd. All Rights Reserved. バケット作成PR CDKリポジトリ 36
03 CDKコードまで含めたモノレポで開発 機能単位のPR 単一のリポジトリ アプリケーションコードの開発と 同じようにIaC開発できる! ©Alphadrive Co.,Ltd. All Rights Reserved. 37
03 積極的にモブプロする RemovalPolicyってなんだ...? わからん... ©Alphadrive Co.,Ltd. All Rights Reserved. 38
03 積極的にモブプロする 既存のインフラを取り込むなら cdk importでいけますよ! あ、私 ©Alphadrive Co.,Ltd. All Rights Reserved. 使ったことあります! 39
アジェンダ 1. AlphaDriveについて 2. AWS CDKの紹介 3. 「全員SRE」のためにやっていること 4. まとめ ©Alphadrive Co.,Ltd. All Rights Reserved. 40
04 まとめ ● SREはロールではなく方法論・文化・スキル🙌 ● AWS CDKを使うと、使い慣れたプログラミング言語で、アプリケーション開発と近い 感覚でインフラをコードで書くことができます ● (例えば)モノレポやモブプロで、開発者がインフラにさわるハードルを下げていきま しょう💪 ©Alphadrive Co.,Ltd. All Rights Reserved. 41
ご清聴ありがとうございました ©Alphadrive Co.,Ltd. All Rights Reserved. 42