awsのcloudwatchがなぜ課金されたのか
tldr
ここに書いてあるコマンドで、ecsのcontainer insightsを無効にして経過観察することにした
一応コマンド
aws ecs update-cluster-settings --cluster myCICluster --settings name=containerInsights,value=disabled
カスタムメトリクスに課金される。
10メトリクスまでは無料
リンク先にあるように、検索窓にNOT AWSと入力して検索した結果がカスタムメトリクスのようです。
しかし、カスタムメトリクスを削除することはできない。2週間何も送信されてこなければ勝手に消えるようです。
料金は1時間ごとに計算されると思われます。
なので、最低2週間課金されるわけではないと思っている。
あとは明日の料金みてだな
3日間課金が発生していた
今月は10 Metricsを超えてしまったので料金は増え続けている。
だが、1日あたり$0.38の請求だったのが、今は0.07になった。この前のecsのカスタムメトリクス削除は効いたとみていいだろう。
1日あたり$0.07ということは、
最初の10000メトリクスまでは1メトリクス$0.3だから、今月は31日で、1日あたり、0.23333333333メトリクス。
これを31かけることの$7.23333333333。ok。無料の範囲内。多少前後するかもだが。来月以降は12ヶ月間無課金でいけるな
かけることのじゃないな。かけた結果だな
メトリクスとは、システムのパフォーマンスに関するデータです。デフォルトでは、多くのサービスはリソース (Amazon EC2 インスタンス、Amazon EBS ボリューム、Amazon RDS DB インスタンスなど) に対して無料のメトリクスを提供しています。また、Amazon EC2 インスタンスなど一部のリソースの詳細モニタリングを有効にしたり、独自のアプリケーションメトリクスを発行したりできます。Amazon CloudWatch は、検索、グラフ表示、アラームに備えて、アカウント内のすべてのメトリクス (AWS リソースメトリクスと、お使いのアプリケーションメトリクスの両方) をロードすることができます。
コストを削減するには、必要に応じてカスタムメトリクスのモニタリングを無効化します。カスタムメトリクスを見つけるには、CloudWatch コンソールにあるメトリクスの要約セクションの [Search Metrics] (メトリクスの検索) に NOT AWS と入力します。
158メトリクス
アジアパシフィック東京だと、10メトリクスを超えると1メトリクス月額$0.3
158メトリクス-10メトリクス(無料枠)=148メトリクス
148*$0.3=$44.4
$44/30日(1ヶ月って何日かわからんがとりあえず30日)=$1.46
日当たり$1.46
??大体あってるけど
3日間、1日$0.38で請求が来てる。
で、メトリクスを見ると稼働しているやつと稼働していないやつがあった。
自分の運用方法はec2インスタンスの中で
ecsのblue/green deploy
ecsのrolling update
をしている。
使い方としてはblue/green deployを1コンテナ常時稼働。
rolling updateのコンテナも基本は1コンテナ常時稼働している。例外は、blue/green deployするとき。そのときはrolling updateするコンテナのタスクを0にしている。
なので、4コンテナ分のcontainer insightsが存在する可能性があると思う。いや、rolling updateやblue/green deployしたら過去のインスタンスのために作成したcontainer insightsは残っていそうだな。で、2週間稼働せずに消える。
そう考えると、メトリクスの数はあてにならない。最近稼働したメトリクスの数ってわかるのかな?
1時間以内に稼働したメトリクスの数。
メトリクスフィルターがあった。なんか違う。
一つずつ確認したら53メトリクスが動いていた
てことは無料枠の10を引いて43メトリクス
43*0.3/30=0.43 ??若干ずれるな。
実際は$0.38
まああってるっぽいね。cloudinsightsを停止してみよう
間違ったcontainer insights
計算例
詳細モニタリングとして EC2 インスタンスから送信されるメトリックの数は、EC2 インスタンスタイプによって異なります。詳細については、インスタンスメトリックのドキュメントを参照してください。この例では、最も一般的に使用されるインスタンスタイプをカバーする 7 つのメトリックを想定しています。
10 個の Amazon EC2 インスタンスで、24 時間 365 日 (1 か月を 30 日とする) アプリケーションを実行し、すべてのインスタンスで EC2 詳細モニタリングを有効にした場合、料金は以下のようになります。
メトリクスの合計数 = インスタンスあたり 7 メトリクス x 10 インスタンス = 70 メトリクス
CloudWatch メトリクスの月額料金 (カスタムメトリクス 1 個につき 0.30 USD) = 70 x 0.30 USD = 21 USD
CloudWatch の月額料金 = 21 USD/1 か月
メトリクスの合計数が 10,000 を超えると、ボリューム料金が適用されます。詳細については、メトリクスの価格表を参照してください。
awsのfolumによると、2週間使用せずに放置すれば消える
使用したくないと思っていますが、どうすれば使用しないことができるんだ?
すべてのカスタムメトリックの料金は時間単位で請求され、メトリクスを CloudWatch に送信したときにのみ計算されます。
All custom metrics charges are prorated by the hour and metered only when you send metrics to CloudWatch.
英語の場合
すべてのカスタムメトリクスの料金は1時間ごとに按分され、CloudWatchにメトリクスを送信したときにのみ計測されます。
1時間ごとか。じゃあ1時間何もなければ料金はかからないんだろう。
で、2週間経過したらメトリクスが消える
自分の場合、ContainerInsightsが原因ぽいからecsを調節しよう
クラスターに設定するのか
無効化できるっぽいcliから
無効にした
有効にした
ok。これで明日は課金されないだろう