rights reserved. 業務系 SaaS AWS アーキテクチャ例 アベイラビリティゾーン C アベイラビリティゾーン B アベイラビリティゾーン A Cluster Volume Database 100 Table ... Application load balancer Data Copies APP Amazon Aurora MySQL writer クライアント
rights reserved. CPU 使⽤率⾼ / DB 接続数, 接続試⾏回数スパイク アベイラビリティゾーン C アベイラビリティゾーン B アベイラビリティゾーン A Cluster Volume Database 100 Table ... Application load balancer Data Copies APP Amazon Aurora MySQL writer クライアント アプリサーバー CPU 使⽤率 ⾼ ピーク時 DB 接続数 接続試⾏回数 のスパイク Aurora インスタンス CPU 使⽤率 ⾼
rights reserved. SA からの質問 Web フレームワークで DB コネクションプーリングは有効にしていま すか︖ • リクエスト毎に都度 DB コネクション処理を⾏うと EC2 インスタンスと Aurora インスタンスの両⽅の CPU 使⽤率が⾼くなりやすいです。 • DB コネクション処理は、Aurora エンドポイントの名前解決と TCP ハンドシェイクが⾏われるためです。 テックリードの⽅のご⾒解 • いいえ。DB コネクションプーリングは有効にできないので無効にしています。1万 のテナント毎に database を作成しているので、リクエスト毎に都度異なる database に接続されるためです。
rights reserved. Private subnet C Public subnet C Public subnet A Private subnet A すべての接続でコネクションプーリング有効化 を検討 VPC アベイラビリティゾーン A APP クライアント Internet Internet gateway APP SG DB SG Aurora writer ALB SG アベイラビリティゾーン C APP Application load balancer ElastiCache Redis Aurora reader ElastiCache Redis 負荷テスト ツール
rights reserved. 設計判断のトレードオフを評価可能なメトリクス を定義・計測し、運⽤開始後に⾒直しできるよう にすることが最も重要 🔎 -- Querying CloudTrail logs - Amazon Athena SELECT COUNT(eventname) AS cnt, eventname, useridentity.principalid FROM "cloudtrail_logs_ap_northeast_1_pp" WHERE eventsource = 's3.amazonaws.com' AND requestparameters LIKE ‘%[s3_bucket_name]%' AND useridentity.principalid LIKE '%:i-%' AND timestamp '[yyyy/MM/dd]' GROUP BY eventname,useridentity.principalid ORDER BY cnt DESC 再掲