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
Startupゼミ よくある課題シリーズ 2022秋期講習編
Search
Kouki Kishida
November 11, 2022
Technology
0
80
Startupゼミ よくある課題シリーズ 2022秋期講習編
2022 AWS DevDayにて登壇した際の資料です
Kouki Kishida
November 11, 2022
Tweet
Share
More Decks by Kouki Kishida
See All by Kouki Kishida
Kiroで学ぶ仕様駆動開発入門
kishidak
0
9
ビジネスを加速するSnowflake×AWSの活用のすゝめ
kishidak
0
140
~スタートアップから学ぶ~ ビジネスを成長させるQuickSightの賢い使い方
kishidak
0
160
シード期のスタートアップに知ってほしい技術のこと
kishidak
0
39
Other Decks in Technology
See All in Technology
機械学習を扱うプラットフォーム開発と運用事例
lycorptech_jp
PRO
0
180
ヘブンバーンズレッドのレンダリングパイプライン刷新
gree_tech
PRO
0
560
ZOZOマッチのアーキテクチャと技術構成
zozotech
PRO
3
1.3k
AI駆動開発に向けた新しいエンジニアマインドセット
kazue
0
230
個人CLAUDE.md紹介と設定から学んだこと/introduce-my-claude-md
shibayu36
0
200
RSCの時代にReactとフレームワークの境界を探る
uhyo
9
3k
Codeful Serverless / 一人運用でもやり抜く力
_kensh
4
200
AI エージェントとはそもそも何か? - 技術背景から Amazon Bedrock AgentCore での実装まで- / AI Agent Unicorn Day 2025
hariby
4
1.1k
生成AI時代のデータ基盤
shibuiwilliam
6
3.7k
Language Update: Java
skrb
2
260
生成AIでセキュリティ運用を効率化する話
sakaitakeshi
0
150
エニグモ_会社紹介資料(エンジニア職種向け).pdf
enigmo_hr
0
2.2k
Featured
See All Featured
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4k
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
Stop Working from a Prison Cell
hatefulcrawdad
271
21k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
BBQ
matthewcrist
89
9.8k
For a Future-Friendly Web
brad_frost
180
9.9k
Balancing Empowerment & Direction
lara
3
610
A Modern Web Designer's Workflow
chriscoyier
696
190k
The Cost Of JavaScript in 2023
addyosmani
53
8.9k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
358
30k
Git: the NoSQL Database
bkeepers
PRO
431
66k
Transcript
© 2022, Amazon Web Services, Inc. or its affiliates. All
rights reserved. © 2022, Amazon Web Services, Inc. or its affiliates. All rights reserved. よくある課題を⼀気に解説︕ 〜御社の技術レベルがアップする2022 秋期講習 〜 Kouki Kishida D - 5 - 1 Startup Solutions Architect Noguchi Shingo Startup Solutions Architect
© 2022, Amazon Web Services, Inc. or its affiliates. All
rights reserved. [AWS Startup ゼミ] よくある課題シリーズ • AWS のスタートアップチームは、 ⽇々受けている技術相談から スタートアップにおける技術的な課 題と傾向を把握 • このスライドは2022年秋時点の 「あるある」をまとめたもの • 詳細な解説を全てこのセッション・ 資料で⾏うのではなく、 「こうしたい」に対して、 「どの様に考えていけばよいか」 を⽰す逆引き辞典となっている
© 2022, Amazon Web Services, Inc. or its affiliates. All
rights reserved. [AWS Startup ゼミ]これまでの発表 2019 秋期講習 2021 春期講習 h +)+)% 5 MeZY HQN FQ]a OQ % YO Z] MRR W M Q 5WW ] ST ]Q Q]aQP K5HF F M] [ L y o +)+) Q O T ) q q q q 2019 春期講習 © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. 春期講習 2020 のアジェンダはこちら 1. プロダクトにチャット機能をつけたい 2. コストを抑えたい 3. 静的サイトのホスティングを簡単にしたい 4. キャッシュしないなら CDN は不要︖ 2021 秋期講習
© 2022, Amazon Web Services, Inc. or its affiliates. All
rights reserved. 1. 今の構成をIaC化してインフラ管理を⾃動化したい 2. 何かしら検索したい 2022 秋期講習のアジェンダはこちら
© 2022, Amazon Web Services, Inc. or its affiliates. All
rights reserved. © 2022, Amazon Web Services, Inc. or its affiliates. All rights reserved. 今の構成をIaC化してインフラ管理を ⾃動化したい
© 2022, Amazon Web Services, Inc. or its affiliates. All
rights reserved. 今の構成をIaC化してインフラ管理を⾃動化したい • よくいただく課題 😂 • 開発環境と本番環境が⼀緒になっているので、別アカウントで本番環境を⽴てたい • ただ最初はコンソール上で構築したため⼿間かかりすぎる • 現状の構成を管理するためにドキュメントを更新してたけど、形骸化してる • 本当にしたいことは何︖ 😳 • サービスの構成の定義づけを習慣化して、かんたんに複製したい • 環境を構築する際に、デプロイフローも考慮して安全かつ⾃動にデプロイしたい • 思考フロー 😌 1. とりあえずIaCを書いて⼩さくはじめてみよう 2. サービスを付け⾜して⾃分好みにする 3. 既存の環境と合わせてBlue/Greenデプロイする
© 2022, Amazon Web Services, Inc. or its affiliates. All
rights reserved. とりあえずIaCを書いて⼩さくはじめてみよう IaCといえば・・・︖ 😇
© 2022, Amazon Web Services, Inc. or its affiliates. All
rights reserved. とりあえずIaCを書いて⼩さくはじめてみよう まず⾃分やチームの相性にあったサービスをつかってみよう AWS CloudFormation AWS Cloud Development Kit (AWS CDK) Terraform
© 2022, Amazon Web Services, Inc. or its affiliates. All
rights reserved. • ⾼⽔準⾔語を利⽤していることで、表現が よりコンパクトにできる • ⾔語ごとの標準のエディタを利⽤した補完 機能を利⽤可能 • 普段慣れている開発⾔語があればこちらが おすすめ 向いてる⼈・組織︓ ・チームで慣れている開発⾔語が 1つに統⼀できる組織 ・普段からコードベースで管理 している⼈ とりあえずIaCを書いて⼩さくはじめてみよう それぞれのメリットを各メンバーの相性にそって検討してみる • YAML、JSONフォーマットを利⽤した項⽬ ベースでリソースを指定する • 開発⼒に依存せず、ドキュメントを参照 しながらルールに沿って作成する • 標準化されている分、保管機能や冗⻑表現 があるため、書きやすさ的なところは劣る 向いてる⼈・組織︓ ・YAML、JSONでの設定管理に 慣れている⼈ ・それぞれ得意な開発⾔語が バラバラな組織 AWS CDK CloudFormation
© 2022, Amazon Web Services, Inc. or its affiliates. All
rights reserved. ⼀度構築したらあまり変更がおきない VPCあたりをやってみるか 最近DynamoDBつかってるし試しに書いてみるか〜 とりあえず1つのサービスから初めて⾒る とりあえずIaCを書いて⼩さくはじめてみよう
© 2022, Amazon Web Services, Inc. or its affiliates. All
rights reserved. とりあえずIaCを書いて⼩さくはじめてみよう Cloudformationで書くなら ・テンプレートリファレンスや サンプルを参照する CDKで書くなら ・⾃分に得意な⾔語の リファレンスをさがす --- AWSTemplateFormatVersion: '2010-09-09’ Description: Import test Resources: ServiceTable: Type: AWS::DynamoDB::Table DeletionPolicy: Retain ・・・ ・試しに書いてみる Java ・試しに書いてみる
© 2022, Amazon Web Services, Inc. or its affiliates. All
rights reserved. とりあえずIaCを書いて⼩さくはじめてみよう CloudFormationのテンプレートがぐっと書きやすくなるTools • cfn-lint (サイト) ⼊⼒した値の整合性チェックをできるコマンドラインツール • CloudFormation template schema (サイト) Visual Studio Code/PyCharm で利⽤可能でリソースタイプと必須プロパティのリストの⾃動 補完 • Former2(サイト) 既存の AWS リソースを CloudFormation テンプレートとして出⼒できる
© 2022, Amazon Web Services, Inc. or its affiliates. All
rights reserved. ベースを付け⾜して好みのコードにする • 元のファイルができたらGitなどにソースコードとして管理 • 更新が必要になったらアップデートし検証できるフローを構築する 次はEC2まわりだけ いじったから、そこ だけコードでデプロ イしてみよう テンプレートの アップロード スタックの 作成 リソースの 作成と管理 コードの更新 テンプレートの編集 GitHubなどに コミット GitHub Actions等で裏側で⾃動化す るなどもOK
© 2022, Amazon Web Services, Inc. or its affiliates. All
rights reserved. 既存の環境と合わせてBlue/Greenデプロイする • GitHub ActionsやAWS CodeBuildを⽤いてCI/CDフローを書きスタックの更新フローを構築する • デプロイにはAWS CodeDeployを利⽤することで現環境と新バージョン環境を両⽴した検証を⾏う スタック AWS CodeDeploy EC2 instance 現環境 EC2 instance 新バージョン環境 変更セット Build Test Deploy CI/CDフロー cdk deploy Traffic 80% Traffic 20% ALB Deploy
© 2022, Amazon Web Services, Inc. or its affiliates. All
rights reserved. 実装時の参考資料/参考になる事例集 AWS Black Belt Online Seminar • AWS CloudFormation (資料|動画) • AWS CloudFormation Deep Dive (資料|動画) • AWS Cloud Development Kit (資料|動画) AWS Summit / DevDay / その他資料 • AWSで始める Infrastructure as Code(2021)(資料|動画) • AWS CloudFormationでGreenDeploy(サイト) • AWS Hands-on for Beginners AWS環境のコード管理 AWS CloudFormationでWebシステムを構築する(サイト) • AWS CloudFormation テンプレートリファレンス(サイト) • AWS CloudFormation テンプレートサンプル(サイト)
© 2022, Amazon Web Services, Inc. or its affiliates. All
rights reserved. © 2022, Amazon Web Services, Inc. or its affiliates. All rights reserved. なにかしら検索をしたい
© 2022, Amazon Web Services, Inc. or its affiliates. All
rights reserved. なにかしら検索をしたい • よくいただく課題 • 全⽂検索をどのようにやるべきかわからない • とりあえずLIKE検索を⾏なっている • 本当にしたいことは何︖ • データを素早く検索したい • 多くの検索リクエストを処理したい • 適切なソリューションを利⽤したい • 思考フロー 1. 検索要件を確認する 2. 同期する⽅法を考える 3. データを作り直すことを考慮する
© 2022, Amazon Web Services, Inc. or its affiliates. All
rights reserved. 検索要件を確認する どのような検索シチュエーションなのか考える • 公開WEBアプリケーション上での検索 • データ分析⽤途での検索 • カスタマーサポートで必要 • 秒間何回くらい検索される︖ • 検索対象のデータ量は何件くらい︖ • 求められる検索のレイテンシはどのくらい︖ シチュエーションからわかることは 検索される条件は • 全⽂検索が必要なのか • 複雑な条件の指定が必要なのか • タグ検索のようなものが必要なのか
© 2022, Amazon Web Services, Inc. or its affiliates. All
rights reserved. 検索要件を確認する 出来るだけマネージドサービスを利⽤しよう マネージドサービスを活⽤して運⽤をオフロードしていきましょう。 Amazon OpenSearch Service OpenSearch, OpenSearch Dashboard を簡単 にデプロイ・管理し,スケールさせることが 可能なフルマネージドサービス ソリューションの選択
© 2022, Amazon Web Services, Inc. or its affiliates. All
rights reserved. 検索要件を確認する 特にPMF前のスタートアップにとって アーキテクチャ変更のタイミングは重要 • 要求される返答時間が⼗分に⻑いのでBatch処理⽤RDBMSにクエリすればいい • インデックスの⾒直しで⼗分要件を満たすことができる • FULLTEXT INDEXで⼗分要件を満たす • ⾮正規化したテーブルがあればそれで⼗分検索要件を満たす 例えば元々のデータストアにRDBMSを利⽤している場合 etc… 上記のような場合でも利⽤規模が⼤きい、検索部分がコアバリュー等でアーキテクチャ変更をした⽅が よいこともあります。 アーキテクチャを変更するタイミングを意識することが⼤切です。 PMF後は規模拡⼤に耐えるアーキテクチャが最重要となってきます。 要件次第ではこのタイミングでアーキテクチャ変更の必要はないかも
© 2022, Amazon Web Services, Inc. or its affiliates. All
rights reserved. 同期する⽅法を考える データの同期はビジネスロジックと分離する • AWS Database Migration Service(DMS) • AWS Glue • Amazon Kinesis Data Streams との連携 • O/R Mapperのcallback + Queue • バッチ処理で新しいデータをimport マネージドサービスで⾏う場合 アプリケーションレベルで⾏う場合も出来るだけ疎結合に RDS AWS DMS OpenSearch Service
© 2022, Amazon Web Services, Inc. or its affiliates. All
rights reserved. データを作り直すことを考慮する プライマリのデータストアを明確にする • 何かが発⽣した際に正とするデータからの再⽣成が⾏える状態を意識する • 更新や削除におけるインデックスの劣化に対する対策としてインデックスの最適化だけでなく インデックスの作り直しを選択肢としてとれる状態を意識する アプリケーションのバグに対する対応や 運⽤上のトラブルに対する対応が容易になり システムの回復性を⾼く保つことが可能になります
© 2022, Amazon Web Services, Inc. or its affiliates. All
rights reserved. 参考資料 AWS Black Belt Online Seminar • Amazon OpenSearch Service(資料|動画) • AWS Database Migration Service (資料|動画) • Amazon Kinesis (資料) • AWS Glue -Glue Studioを使ったデータ変換のベストプラクティス(資料 | 動画 ) その他 • Amazon OpenSerch Serviceでのインデックス管理(サイト) • コマンドクエリ責任分離(CQRS)パターン (サイト)
© 2022, Amazon Web Services, Inc. or its affiliates. All
rights reserved. 今回は以下を解説しました 1. 今の構成をIaC化したインフラ管理を⾃動化したい 2. 何かしら検索したい まとめ
© 2022, Amazon Web Services, Inc. or its affiliates. All
rights reserved. Thank you! © 2022, Amazon Web Services, Inc. or its affiliates. All rights reserved. Noguchi Shingo Startup Solutions Architect Kouki Kishida Startup Solutions Architect