投稿

ラベル(コスト最適化)が付いた投稿を表示しています

T3インスタンスのCPUクレジットを理解する:バースト性能と突然の速度低下の原因

本番環境でT3インスタンスを運用していると、ある時点から突然レスポンスタイムが悪化し、CPUが張り付いたように動かなくなる現象に遭遇することがある。アプリケーションのバグを疑い、メモリリークを調査し、それでも原因が見つからない。実はその原因がCPUクレジットの枯渇だったというケースは、T3インスタンスを使い始めたエンジニアが最初にはまる落とし穴の一つだ。 TL;DR:T3インスタンスのCPUクレジット早見表 項目 内容 CPUクレジットとは ベースライン未満のCPU使用時に蓄積し、バースト時に消費するトークン クレジット枯渇時の挙動 CPUパフォーマンスがベースラインに制限される(Standardモード) Unlimitedモード クレジット枯渇後も性能を維持するが、余剰クレジット分が課金される 診断の起点 CloudWatchの CPUCreditBalance メトリクスを確認する 主なリスク Unlimitedモードでの予期しない追加料金 T3インスタンスのCPUクレジット機構:仕組みから理解する T3インスタンスはバースト可能なパフォーマンスインスタンスファミリーに属する。「バースト可能」とは、常時高いCPU性能を保証するのではなく、ベースラインCPU使用率を定義し、それを下回る期間にクレジットを蓄積し、高負荷時にそのクレジットを消費して一時的に高い性能を発揮できる仕組みを指す。 各T3インスタンスタイプにはベースラインCPU使用率が定められており、例えばt3.microであれば10%、t3.smallであれば20%といった値が設定されている(正確な値はAWS公式ドキュメントを参照)。インスタンスがベースラインを下回るCPU使用率で稼働している間、1時間あたり一定数のCPUクレジットが自動的に付与される。逆にベースラインを超えてCPUを使用すると、クレジットが消費される。 CPUクレジットは銀行口座の残高に似ている。低負荷期間に少しずつ貯金し、高負荷時に引き出す。残高がゼロになれば、それ以上の引き出しはできない。 クレジットには上限(最大蓄積量)があり、インスタン...

DynamoDB キャパシティモード完全ガイド:プロビジョニング vs オンデマンド、本番運用で失敗しない選択基準

新しいサービスを立ち上げるとき、DynamoDBのキャパシティモード選択で迷うのはよくある話だ。トラフィックパターンが読めない段階でプロビジョニングモードを選ぶと、スロットリングで障害を起こすか、過剰なコストを払うかのどちらかになる。この記事では、 DynamoDBキャパシティモード の仕組みと、実際の運用判断基準を具体的に解説する。 TL;DR:DynamoDBキャパシティモード選択早見表 判断軸 オンデマンド プロビジョニング トラフィック予測可能性 不明・不規則 安定・予測可能 スロットリングリスク 低い(自動スケール) 設定次第で高い コスト特性 リクエスト単価が高い 安定負荷なら割安 Auto Scaling併用 不要(組み込み) 推奨(必須に近い) 切り替え頻度制限 24時間に1回まで 同左 向いているフェーズ 開発・ローンチ初期・突発トラフィック 成熟サービス・高スループット安定期 DynamoDBキャパシティモードの仕組みを理解する DynamoDBのスループットは、読み込みキャパシティユニット(RCU)と書き込みキャパシティユニット(WCU)という単位で管理される。1 RCUは最大4KBのアイテムに対する強整合性読み込み1回、1 WCUは最大1KBのアイテムへの書き込み1回に対応する。この前提を押さえた上で、2つのモードの動作を見ていく。 graph LR Client["クライアント"] --> Request["リクエスト"] Request --> ModeCheck{"キャパシティモード?"} ModeCheck -->|"オンデマンド"| OnDemand["自動キャパシティ割り当て (PAY_PER_REQUEST)"] ModeCheck -->|"プロビジョニング"| Provisioned["事前設定RCU/WCU"] OnDem...

EBS gp2とgp3の選び方:IOPSを独立してスケールできるのはどちらか

EC2インスタンスのストレージを設定しているとき、General Purpose SSDの選択肢として gp2 と gp3 が並んでいる。どちらを選ぶべきか迷った経験は多いはずだ。特に「ストレージ容量を増やさずにIOPSだけ上げたい」という要件が出たとき、gp2とgp3の設計思想の違いが初めて問題になる。 TL;DR:gp2とgp3の比較 項目 gp2 gp3 IOPSのスケール方式 容量に連動(3 IOPS/GB) 容量と独立して設定可能 ベースラインIOPS 100〜16,000 IOPS(容量依存) 3,000 IOPS(固定ベースライン) 最大IOPS 16,000 IOPS 16,000 IOPS 最大スループット 250 MiB/s 1,000 MiB/s バーストクレジット あり(クレジットバケット方式) なし(常時ベースライン保証) コスト傾向 gp3より割高になりやすい 同等性能でgp2より安価になることが多い gp2とgp3の仕組みを理解する gp2はIOPSが容量に紐付いている。具体的には1 GBあたり3 IOPSが割り当てられ、100 GBのボリュームなら300 IOPS、1,000 GBなら3,000 IOPSが得られる。ベースラインは最小100 IOPS、最大16,000 IOPSだ。さらにgp2にはバーストクレジットの仕組みがある。ベースラインIOPSを下回る使用状況のときにクレジットが蓄積され、一時的に3,000 IOPSまでバーストできる(ただし1 TB未満のボリュームに限る)。 gp3はこの連動を切り離した。すべてのgp3ボリュームは容量に関係なく3,000 IOPSと125 ...