はじめに
こんにちは。クラウドインテグレーション事業部の濱田です。
AWSが簡単に誰でもサーバーを持てて様々なサービスを簡単に利用することができる反面、コストが高くなりがちなのも事実です。ビジネスにおけるコスト削減は重要ですが、手間がかかる面もありますよね。しかし、AWSを利用すればコスト管理が簡単になります。そこで、コストを下げろと言われてしまったとき何をしていけば良いかご紹介したいと思います。
- コストデータの整理・観察
- 分析
- 最適化
- 効果測定
大きくは、1〜4を行います。あとは継続的に上記のサイクルを回し無駄な部分をなくしていくことが、最も重要です。
1,コストデータの整理・観察
AWSでコストデータの整理・観察・確認を行うためにはまずは、Cost Explorer を使用し現状のAWS費用の確認をします。
Billing & Cost Management > Cost Explorer から Cost Explorer を選び、表示します。
月または日毎のAWS利用額をグラフで確認できます。
しかも、EC2、RDSといったサービス毎の利用額が表示されるので、高コストの原因にある程度当たりを付けることができます。
注意:IAMユーザーに請求情報のアクセス権限がないと見れないので注意。(参考:アカウントの請求情報の表示を IAM ユーザーに許可するには?)
ここでは、1ヶ月間でどのサービスにどれくらいのコストがかかっているかを確認します。
使っている心当たりがないサービスがないか確認して、ある場合はリソースを削除するなど対応します。たまに、検証のために試しに使ってみたサービスがそのままになっていて課金されている場合があるのでコスト全体を並べて俯瞰して見ると無駄な部分がよく見えてきます。
さらに各サービスの詳細を確認する。タイプを詳細に変更すればEC2のどのインスタンスタイプがいくら掛かっているか?どのインスタンスタイプで何時間起動しているのか?S3でかかっている料金は、転送料なのかストレージなのかがより詳しく確認ができます。
例えば、上の画面ではディメンションを”使用タイプ”に変更し、サービスを”EC2 インスタンス”を選択することで、どのインスタンスタイプの割合が多いかが確認できます。
2,分析
次にデータの分析を行います。
分析といってもどこをどうすればよいかわからないと思います。通常は、コストを整理し可視化を行い、分析をするのが一般的です。
ここでは、AWS Trusted Advisorを使用することでコスト削減の分析を簡単に知識がなくても分析することができるのでTrusted Advisorの使用方法を紹介したいと思います。(「ビジネス」または「エンタープライズ」レベルのサポートプランに加入していなければ使用できません。当社の請求代行ご契約のお客様であれば、AWS Trusted Advisorをご利用いただくことが可能です。)
検索窓から Trusted Advisor → サイドメニューの ”コスト最適化” を選択します。
緑のチェックマークと、黄色の!マークは調査が推奨される項目、赤の!マークはアクションが推奨される項目です。さらにそれぞれの詳細も確認できます。
例えば「使用率の低いAmazon EC2 Instances」詳細を見てみると、インスタンス名や、使用率が低いと判断された原因についてまで、表で確認することができます。極めて便利です。無駄などがあれば削除できないか検討して対応します。
もし赤の!マークの項目があった場合は、無駄が発生している可能性が高いのできちんと調査・対応してください。
分析してみて気が付くことが多いのですが、たとえばアタッチされてないEBSで料金が発生していたり、関連付けられていない Elastic IP Addressが存在したりアイドル状態の Load Balancerなど社内で担当者の変更であったり、引き継ぎがされずそのままになっていたりなどで無駄などが発生しやすかったりします。
3,最適化
いわゆる無駄を省く作業です。
Trusted Advisorには対応するものが沢山でてきます。その中でよく利用がされており簡単に無駄を省くことができるような例を2つあげたいと思います。
A、<難易度:易>不要リソース削除
まずは不要なものがないか整理。
意外にゴミがたまっていることが気が付かなかったりします。
私が担当している環境では約4万円/月の削減をすることができました。(人の入れ替わりなどがあったりした際に、そのままになっていたり・・)
具体例
・不要ファイルの削除
・不要(未使用)AMIの削除
・不要EBSスナップショット/ボリュームの削除
・不要VPCエンドポイント
・不要EIPの削除
不要(未使用)AMIの削除のポイント
・不要AMIは下記のように実行中インスタンスに紐づくAMI IDとAMIコンソールを照らし合わせると簡単に判別できます。
・特定された不要なAMIを選択し、削除します。ただし、注意が必要です。不要なAMIを削除する前に、それが他のインスタンスで使用されていないかを確認してください。
・バックアップでAMI または Amazon EBS スナップショットを使用していることが多いので、削除をするときには、本当に必要がないのか確認が必要です。
不要EBSスナップショット/ボリュームの削除のポイント
- EBSはまず実行中EC2にアタッチされているか確認してみましょう。下記のようにどこにもアタッチされていなくてもEBS料金はかかっています。
あとは、EBSボリュームとスナップショットを照らし合わせて、アタッチされていないような不要な世代分のスナップショットを削除しましょう。
B、<難易度:中> 使用率の低い Amazon EC2 インスタンスのスケールイン/スケールダウン
CPUやメモリ等に余裕ありませんか?EC2などのコンピューティングサービスはメインサービスで利用料が高いので使用することも多くコストが大きくなりがちなので、見直し可能なら削減効果は大きいです。
具体例
・EC2など稼働台数が適正かどうかの見直し
・インスタンスタイプが適正かの見直し
インスタンスタイプの見直しのポイント
「AWS Compute Optimizer」を利用すると過剰リソースを把握することができます。
AWS Compute Optimizer は、機械学習を利用してユーザに最適なパフォーマンスやリソースを提案してくれるサービスになります。分析を行うサービスは以下5つ。
- EC2インスタンス
- Auto Scalingグループ
- EBSボリューム
- Lambda関数
- Fargate
なんと、無料で利用することができるので気軽に使ってみてください。
EC2インスタンスを選ぶと機械学習を使って過去のデータを分析し、最適なインスタンスタイプとサイズの推奨をサポートしてくれます。変更することでどれくらいの金額削減できるか?などを確認することができます。
ここで注意したいことは、あくまで推奨事項として表示されているおり、CPUやEBS IOPS 、EBS スループットなどの過去のデータを分析しているのでメモリなどの数値や、実際の使用用途などまでは考慮できておらず、タイプの変更をする場合はしっかりとした調査や確認の必要があります
4,効果測定
実際に最適化ができたら、効果がでてくるはずです。Cost Explorerなどで可視化をおこなっていると思うので結果がでれば料金は削減できていると思います。
さいごに
コスト削減ために整理・観察、分析、最適化など多くの労力がかかります。本日ご紹介したもの以外に、オンデマンド料金に比べて大幅な割引価格 (最大 75%)にできる リザーブドインスタンスなどもありますが、内部調整に多くの時間と突破へのハードルがあり簡単に始めるには少し大変です。家の掃除と同じで、もともと必要と思って購入したものや集めたものがいつしかゴミ(不要)なものに変わっているということあるかと思います。家の掃除と同じで定期的に、見直し情報の整理が必要だと思います。この記事を見て少しでも皆さんのコスト削減のお役に立てられていれば幸いです。