はじめに
自己学習のために、AWSのEC2を使用して環境構築を行ったところ
一定の期間からお金がかかり始めた。
その事例と解消方法についてまとめる
以前EC2でお金がかかった事例
・EC2で無料枠を指定
・環境をセットアップ後 EC2は停止
・停止後一か月ほど放置
なぜ?
無料枠を設定してEC2を停止していたのにお金がかかるのはなぜか
結論
Amazon EBSを保持していたためストレージを解放するまで課金されていた
EBSはEC2インスタンス(仮想サーバ)ように準備されたストレージであり、EC2のインスタンスを作成した時にデータはすべてEBSに保存されます。
EBSの料金設定を確認してみると、「すべてのEBSボリュームタイプのボリュームストレージはプロビジョニングした容量で課金され、そのストレージを解放するまで料金が発生します。」とあります。
また、EBSボリュームの無料枠(12ヶ月無料枠)は30GBとなっており、これを超えると1GB単位で課金されます。
対策と対応
ボリュームを削除することで、料金は発生しなくなるが、後で作業したい場合のためにスナップショットを取って料金を削減する方法もある
※スナップショットでも料金が発生するため注意する
EBSのスナップショット取ってボリュームを削除し、使用するときにスナップショットから復元を行う方法
手順1 スナップショット作成からボリューム削除まで
- 確認のためEC2にアクセスして適当なファイルを作成する
ssh -i "~/training/training-dev-keypair.pem" ec2-user@ec2-100-29-41-50.compute -1.amazonaws.com , #_ ~\_ ####_ Amazon Linux 2023 aaaaaaaxxxxx ~~ \_#####\ ~~ \###| ~~ \#/ ___ https://aws.amazon.com/linux/amazon-linux-2023 ~~ V~' '-> ~~~ / ~~._. _/ _/ _/ _/m/' [ec2-user@ip-172-31-30-44 ~]$ touch test.txt [ec2-user@ip-172-31-30-44 ~]$ vim test.txt [ec2-user@ip-172-31-30-44 ~]$ cat test.txt aaaaaaaxxxxx
- インスタンスを停止する
- インスタンスにアタッチしているボリュームのページを開き、アクション -> ボリュームのデタッチを行う
- スナップショットの作成を行う
- ボリュームを削除、削除することでEBSの課金は発生しなくなる
手順2 スナップショットからEC2復元まで
- 先ほど作成したスナップショットを指定してボリュームの作成を行う
- 作成したボリュームをEC2インスタンスにアタッチ
- インスタンスを起動
- EC2にアクセスするとボリューム削除前に作成したファイルの存在を確認できる
ssh -i "~/training/training-dev-keypair.pem" ec2-user@ec2-54-242-18-183.comput e-1.amazonaws.com The authenticity of host 'ec2-54-242-18-183.compute-1.amazonaws.com ...初回フィンガープリントの部分は省略 (ED25519) to the list of known hosts. , #_ ~\_ ####_ Amazon Linux 2023 ~~ \_#####\ ~~ \###| ~~ \#/ ___ https://aws.amazon.com/linux/amazon-linux-2023 ~~ V~' '-> ~~~ / ~~._. _/ _/ _/ _/m/' Last login: Wed Oct 16 04:44:05 2024 from 126.144.6.148 [ec2-user@ip-172-31-30-44 ~]$ ls test.txt [ec2-user@ip-172-31-30-44 ~]$ cat test.txt aaaaaaaxxxxx
まとめ
無料枠で課金されないと考えていたが、請求で課金されていることに気づいた
課金が発生するか不安な場合はBudgetsなどを使ってアラートを設定する
参考ページ