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
[AWSDevDay2023] The anti pattern (ジ・アンチパターン)
Search
katsuya uehara
August 22, 2023
Technology
17
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
[AWSDevDay2023] The anti pattern (ジ・アンチパターン)
AWS Dev Day 2023年登壇資料
katsuya uehara
August 22, 2023
More Decks by katsuya uehara
See All by katsuya uehara
[DevelopersSummit2025] 20年のSaaSプロダクト開発から学んだ、生き残るためのエンジニアリング
katsuya_uehara
0
1.9k
SaaSサービス運用歴17年のキャリアから見た システム障害リスクへの実践とリアル
katsuya_uehara
0
23
[VerticaUnity]700億件のリアルタイム分析の実現と運用の実態
katsuya_uehara
0
18
Other Decks in Technology
See All in Technology
え?フロントエンドエンジニアの ワイがインフラも!?
puku0x
1
550
FDEの心得
noriakioji
4
5.1k
Service Connect 上のサービスに ECS Service の外側から到達できなかった話
ota1022
1
240
同じWAFが、攻撃の“形”は弾く── 正当な“形”の不正は通す
kuroneko13
0
180
Software Supply Chain Attackからクラウド環境を守るためにできること
lhazy
2
260
Model Studio CLI × Token Plan
maigo999
0
170
Data Hubグループ 紹介資料
sansan33
PRO
0
3.2k
Sansan Engineering Unit 紹介資料
sansan33
PRO
1
4.9k
サイバー捜査員研修(後半)
nomizone
1
870
Invisible to AI? Making TYPO3 Sites Quotable by AI Search Systems
wolfgangwagner
0
200
AIエージェントを前提としたプラットフォーム エンジニアリング:GKEで作るAgent-Ready Golden Path
legalontechnologies
PRO
2
230
FPGAが実現する遠方宇宙の高空間分解能天体撮影 -大型地上望遠鏡の視力を補正する「補償光学」とは?-
komei_mt
0
240
Featured
See All Featured
Producing Creativity
orderedlist
PRO
348
40k
How to Think Like a Performance Engineer
csswizardry
28
2.7k
The SEO identity crisis: Don't let AI make you average
varn
0
530
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
460
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Believing is Seeing
oripsolob
1
190
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
250
Large-scale JavaScript Application Architecture
addyosmani
515
110k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.1k
How to Ace a Technical Interview
jacobian
281
24k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
940
Transcript
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. 0 6 2 2 , 2 0 2 3
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. The Antipattern (ジ・アンチパターン) Katsuya Uehara, Eiji Yamamoto [ S A - 3 - 1 ] YRGLM Inc.
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. 1. 自己紹介 2. 広告効果測定とは? 3. アンチパターンのパターン 4. アンチパターン事例 5. まとめ アジェンダ
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. 自己紹介
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. 自己紹介 略歴 上原 賢也 2006年 日本発ECオープンプラットフォーム「EC-CUBE」の開発 2009年 広告運用「THREe」のインフラ基盤の設計・構築 2012年 全社の品質管理・インフラの導入・運用をメインで実施 2015年 ベトナム子会社へ出向し、オフショア開発拠点の立ち上げ 2019年 日本に帰国し、主にインフラ面から基盤戦略全般を担当 コスト最適化大好き人間。開発から組織運営などなんでも屋 2020年 岡山大学大学院自然科学研究科電子情報システム工学専攻 卒業 2020年 株式会社イルグルム 入社 以後、インフラエンジニアとして業務に従事。 オンプレ、クラウド問わずインフラの設計、構築、運用等を担当。 好きなサービス:Amazon Simple Storage Service (Amazon S3) 略歴 Katsuya Uehara 山本 瑛治 Eiji Yamamoto
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. 広告効果測定とは?
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. 広告効果測定とは? • マーケティングの効果をメディア・デバイス・代理店を横断して測定、 マーケティング活動の成果最大化をサポートするサービスです。 計測 広告効果測定 アクセス解析 View計測 LPO クリック計測/SEO計測 経路分析 動画広告 記事広告 ディスプレイ 広告 コンテンツ マーケティング 純広告 自然検索 アフィリエイ ト広告 リスティング 広告 リターゲティ ング広告 ダイレクト SNS LP TOP コンテンツ CV 活用 外部連携 BI/レポーティング MR/CRM/SFA 広告配信/運用管理 リサーチ/モニター 3rd Party Data EC/通販支援ツール TV/オフライン施策 分析 レポーティング 施策軸 ユーザー軸 デモグラフィック カスタマージャーニー 分析 チャネル別集計 アトリビューション 分析
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. 広告効果測定とは? • 広告効果測定ツール売上シェアNO.1「アドエビス」
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. アンチパターンのパターン
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. アンチパターンのパターン • アーキテクチャのアンチパターンが生まれる3つのシチュエーション 1. よく検討しとけよパターン 2. アンチパターン許容したつもりパターン 3. ベストプラクティスの解釈間違えてるよパターン
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. アンチパターンの事例
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. 1.よく検討しとけよパターン (Amazon Aurora DB作りすぎた件)
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. 1.よく検討しとけよパターン:背景 • オンプレPostgreSQLのAWSへマイグレーション • 1,000超データベースをAmazon Auroraへそのまま集約 サーバー データベース スキーマ サーバー データベース スキーマ データベース スキーマ サーバー データベース スキーマ データベース スキーマ インスタンス データベース スキーマ データベース スキーマ データベース スキーマ データベース スキーマ データベース スキーマ Amazon Aurora
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. 1.よく検討しとけよパターン:課題 • 運用開始後暫くして、Copy文データ投入のRead IOPSが爆増・・・ 12/14 12/15 12/16 12/17 12/18 12/19 12/20 Read IOPS
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. • Catalog情報のXID回収にAutovacuum (XID回収により)が滞り、 肥大化・統計がズタズタに・・・ 1.よく検討しとけよパターン:原因 0 100 200 300 400 12/10 12/11 12/12 12/13 12/14 12/15 12/16 12/17 12/18 12/19 12/20 12/21 Max XID Count(M) 閾値200Mで 回収されない
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. 1.よく検討しとけよパターン:対処 • 手動で定期的にXIDを回収する VACCUM FREEZE; (Autovaccum発生前に) • コスト面では I/O-Optimizedストレージも検討 0 100 200 300 400 12/22 12/23 12/24 12/25 12/26 12/27 12/28 12/29 12/30 12/31 1/1 1/2 Max XID Count(M) 閾値200M 前に手動回収
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. 1.よく検討しとけよパターン:教訓 • ベストプラクティスをもとに事前に模索しよう! • ホワイトペーパーにも「一番メンテコストかかる」って書かれてるよね 出典:https://www.slideshare.net/AmazonWebServicesJapan/20220107-multi-tenant-database
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. 1.よく検討しとけよパターン:教訓 • もちろんそれぞれのメリデメがある • データベースエンジンの特性も踏まえて運用は検討する必要がある 出典: https://www.slideshare.net/AmazonWebServicesJapan/20220107-multi-tenant-database
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. 2.アンチパターン 許容したつもりパターン ( Elastic Load Balancing 作りすぎた件)
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. 2.アンチパターン許容したつもりパターン:背景 • プライバシーの観点からWeb広告の計測は年々複雑化 ▪ 3rd party cookieだと計測不可 ▪ 1st party cookieの場合は計測可能 • CNAMEレコード方式という機能を開発 ▪ 以下が必要 – CNMAE レコードに設定する顧客ドメイン – 顧客ドメインに対する証明書 出典: https://support.ebis.ne.jp/s/article/29550
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. 2.アンチパターン許容したつもりパターン:背景 • 結果、7台の Amazon EC2 に対して 数十台の Elastic Load Balancing を構築 ▪ ∵ 25証明書 / 1 Elastic Load Balancing ▪ 1000ユーザで利用する場合、40台必要 • アンチパターンではあるが、あえて選択 ▪ 迫る納期 ▪ マネージドサービスに寄せたいという方針 ▪ 機能の利用ユーザ数も不明 ▪ etc… Elastic Load Balancing : 数十台 Amazon Elastic Compute Cloud (Amazon EC2) : 7台
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. 2.アンチパターン許容したつもりパターン:課題 • 固定費用の増加 • 運用工数の増加 • サーバの負荷増加 ▪ なぜかメモリが大量に消費されている。。
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. 2.アンチパターン許容したつもりパターン:原因 • Elastic Load Balancing の数だけ Keep Alive が発生 ▪ Keep Alive: ロードバランサとサーバ間のセッション維持用プロセス ▪ これにより、無駄なハンドシェイクなどをスキップできる Elastic Load Balancing: 数十台 Amazon Elastic Compute Cloud (Amazon EC2): 7台 Keep Alive: 数十プロセス / 1 Amazon EC2
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. 2.アンチパターン許容したつもりパターン:対処 • 暫定対処 ▪ Keep Alive の無効化(アンチパターン) ▪ アンチパターン(数十台の Elastic Load Balancing )が さらなるアンチパターン(Keep Alive の無効化)を生み出してしまった。 • 根治対処 ▪ 根本のアンチパターンの是正(=別の手段でリプレイス) ▪ が、優先度、工数から現実的ではない。。 ▪ -> 実質塩漬け。。
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. 2.アンチパターン許容したつもりパターン:教訓 • 当然、様々なトレードオフを考慮した結果、あえてアンチパターンを 選択するという場面はありうる。 • ただし、その場合は、 「さらなるアンチパターンを生む可能性」も 含めて選択したほうがいい。 ▪ 「納期がきついから仕方なく。。」だけで選ぶと、 未来の運用負荷(技術的負債)はどんどん増えることになる。 • -> 今だけでなく未来も見据えた上で、PoCが必要
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. 3.ベストプラクティスの解釈 間違えてるよパターン ( Amazon Virtual Private Cloud 切りすぎて失敗した件)
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. 3. W-A の解釈間違えてるよパターン:背景 • アドエビス管理画面のクラウドシフトを実施 • 基本設計: AWS Well-Architected を意識 ▪ 密結合の分離[1][2] – プロダクトを「サブシステム」の集合と定義 – サブシステム単位でアプリ&インフラを分割(≒ マイクロサービス) ▪ ブルーグリーン・デプロイメント[3] ▪ 多層防御[4] [1]: https://docs.aws.amazon.com/ja_jp/wellarchitected/latest/reliability- pillar/rel_service_architecture_monolith_soa_microservice.html [2]: https://docs.aws.amazon.com/ja_jp/wellarchitected/latest/reliability- pillar/rel_service_architecture_business_domains.html [3]: https://docs.aws.amazon.com/ja_jp/wellarchitected/latest/operational-excellence- pillar/ops_mit_deploy_risks_deploy_to_parallel_env.html [4]: https://docs.aws.amazon.com/ja_jp/wellarchitected/latest/security- pillar/sec_network_protection_layered.html
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. 3. W-A の解釈間違えてるよパターン:背景 • 詳細設計 ▪ サブシステム単位で Amazon VPC を分割すればいいのでは!? – 密結合の分離:〇 • ∵ Amazon VPC は最も大きなインフラの粒度 – ブルーグリーン・デプロイメント:〇 • ∵ Amazon VPC 単位で分けておけば、並列デプロイ可能 – 多層防御:〇 • ∵ Amazon VPC 単位で分けておけば、L3レイヤの制御も簡単 ▪ Amazon VPC の作成と利用に追加料金は発生しないから、コスト面もok!?
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. 3. W-A の解釈間違えてるよパターン:課題 • 運用工数 & 固定費用増えまくり。。 ▪ VPC Endpoint, Transit Gateway VPC Attachment …
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. 3. W-A の解釈間違えてるよパターン:原因 • Amazon VPC 分割の多用が アンチパターンだった。。 • 上述の W-A をみても、 Amazon VPC 分割を多用せよとは 書いていない。 ▪ W-Aに従ったのはよかったが、 解釈を間違えた。
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. 3. W-A の解釈間違えてるよパターン:対処 • 暫定対処 ▪ これ以上 Amazon VPC は増やさないようにする。 ▪ つまり、 Amazon VPC ではなくSubnet 分割で代用 – 最終的には、Subnet 分割も控えるのがベスト。 • 根治対処 ▪ Amazon VPC を集約していく。 ▪ 数年かけてのリプレイス計画、検討中です!
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. 3. W-A の解釈間違えてるよパターン:教訓 • W-Aに従ったのはよかったが、解釈を間違えた。 ▪ モノリシックアーキテクチャはできるだけ避ける必要があります。代わりに、 どのアプリケーションコンポーネントをマイクロサービスに分けられるかを 注意深く考慮します。[1] – マイクロサービス最強!なんて記載はない。 – ましてや「 Amazon VPC 分割しましょう」なんて一言も言及されていない。 • -> 一人で最適解を出すのは難しいので、セカンドオピニオンが必要 ▪ ex. AWS SA さんからのレビュー [1]: https://docs.aws.amazon.com/ja_jp/wellarchitected/latest/reliability- pillar/rel_service_architecture_monolith_soa_microservice.html
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. まとめ
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. まとめ • 3つの事例から考えるアンチパターンとの付き合い方 1. 定石を知って、よく検討しよう 2. PoCをしよう 3. レビューをしよう(セカンドオピニオン)
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. まとめ • でも恐れずにチャレンジしよう! • こんな私たちでも20年近くSaaSサービスを運用して来れました! • なんとかなる!ならば楽しもう!
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. Thank you! © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2023, Amazon Web Services, Inc. or its affiliates. All
rights reserved. Please complete the session survey © 2022, Amazon Web Services, Inc. or its affiliates. All rights reserved.