AWSコスト
常に最新のCPUを選択すること
技術は止まらず、CPUメーカーはほぼ毎年、より高性能で消費電力の少ないCPUを発表し、AWSもそれを実装しているので、必ず定期的にインスタンスタイプ表に戻ってくることです。例えば、10台のインスタンスをc4.xlargeからc5.xlargeに変更するだけで、年間約2,500ドルの節約になり、同時に各インスタンスに多くのRAM(16 -> 20GB)と約5%の性能向上を実現します。
このヒントは、AWS Compute Optimizerを確認することです。このツールは、このタイプの変更をアドバイスすることができます。
一時的なデータ用にEC2インスタンスストアを検討する
通常、AWSユーザーはEC2インスタンスを新規にセットアップする際に、EBSストレージ(つまりディスク)に注目することになります。それらのディスクは、インスタンスにアタッチしたり、インスタンスからデタッチしたり、データ保護のケースでスナップショットしたりすることができます。インスタンスが停止しても、データはディスク上に残り、どこにも行きません。
もう1つ、検討する価値のあるオプションがある。EC2インスタンスストアを経由してローカルディスクを使用します。これらのディスクの大きな違いは、対応するインスタンスが停止されると、ディスクがクリーニングされることです。ユーザーはインスタンスの使用料のみを支払っているため、「無料」です。
貴重なデータにローカルディスクを使いたくないのは理解できるが、キャッシュやログなどの一時的なデータにはぴったりなケースもあります。また、下敷きのストレージは高速なSSD、あるいはNVMeなので、十分なパフォーマンスがありますので安心ください。EC2インスタンスストアを利用することで、EBSの消費量も少なくなり、月々の請求額も小さくなります。
スポットインスタンスを活用する
スポットインスタンスのコンセプトは、パブリックマーケットと比較するとよく理解できます。価格は、利用可能な未使用のAWS EC2容量の供給と需要に基づいて変動します。AWSユーザーはそこに行き、希望する価格を入札することができす。もし需要がそれほどなければ、市場は一時的に低い価格で売ることに同意し、結果として通常価格の3倍から6倍の値下げをすることになります。
では、何が問題なのか?需要が高まる瞬間には、必要な資源を受け取れないかもしれない。価格がその希望する上限を超えると、プロビジョニングされたインスタンスは短期間で自動的に終了してしまいます。もちろん、重要なデータをこのような変動にさらしたいと思う人はいないでしょう。しかし、このモデルがうまく機能するケースも多くあります。ロードバランサーの背後にあるメディアレンダリング、ビッグデータ、分析、Webサービスなども、この機能の最初の候補の1つになるはずです。
例えば、ここにノースバージニア地域のスポットインスタンスの価格履歴があります。過去3ヶ月間のt2.largeインスタンスの需要と価格設定が示されています。
上の表からわかることは:
●実質的な価格はオンデマンドの3分の1程度になる可能性がある
●6つのAZはすべて、平等ではないものの、余裕のあるキャパシティを持っている
●価格が安定しないので、最低料金で入札しない
この技術をアクティブなCloudWatchとAuto Scalingで補完すれば、2分間の終了アラートを受信した時点で、システムは負荷をリバランスし、オンデマンドインスタンスに切り替わることができます。
忘れてはならないネットワークコスト
AWSのネットワークは独自の論文に値するものですが、物事をシンプルに保つために、あまり深入りせず、とにかくここでいくつかの重要なヒントに触れておくべきだと思います。
オンプレミスサイトとAWSの間で大量のトラフィックがやり取りされる場合、Direct Connection機能を使えば、より安定したネットワーク体験、帯域スループットの向上、接続の安全性を確保することができます。
静的コンテンツ(画像、動画、音楽など)は、S3とCloudFrontの組み合わせでより良く、より安価に配信することができます。世界の様々な地域にある素晴らしいエッジサーバーのセットで、エンドユーザーはより近い場所にあるサービスキャッシュから来るデータを得ることができます。
異なるAWSサービス間のトラフィックフローを分析する。VPCからS3のような他のサービスへのトラフィックがエンドポイントを経由するようにVPCエンドポイントを構成することで、インターネットや公共ネットワークをバイパスし、より安全で安価な接続を実現します。
可用性ゾーン間のトラフィックについても、別の費用がかかるので、忘れないようにしましょう。フォールトトレランス・アーキテクチャを再考してください。すべてのサービスに必要でない場合もありますし、他の技術で実現できる場合もあります。
それに応じて地域を検討する
AWSのサービスの価格は、データセンターが置かれている物理的な場所に依存することに気づくのは簡単です。これは当たり前のように聞こえるかもしれませんが、理にかなっている場合は価格の安いリージョンにリソースを移行してください。
現在の価格を計算して、小さな例を紹介しましょう。ヨーロッパでt3.2xlargeインスタンスを10台、それぞれ150GB SSD gp2のディスク容量で稼働させる必要があるとします。ドイツ・フランクフルトのデータセンターを選択した場合、AWSのコンピュート利用料金は0.5312ドル/時間、一方スウェーデン・ストックホルムのデータセンターでは0.4928ドル/時間となる。さらに、ストレージコストとして1GB/月あたり$0.119 vs $0.1045を加え、1年間運用します。この差は、同じサービスであれば、24*365*10*$0.0384+$0.0145*1,500GB*12m = $3,364 + $261 = $3,625 の年間コストダウンに相当し、単に安い地域を選択したことになるのである。
これは、価格の高い地域をすべて、一度に捨てなければならないということなのでしょうか?そうとは限りません。先ほども言ったように、意味があるときにやればいいのです。アジアで事業を展開し、ユーザーに最も低いレイテンシーを提供しようとする場合、アプリケーションを米国に移動させる理由はないでしょう。ただし、負荷の低いサービスや静的なコンテンツについては、米国に移すことも可能です(詳しくは後述します)。もうひとつ注意しなければならないのは、個人情報の取り扱いです。GDPR(一般データ保護規則)やCCPAのような世界的な規制が障害となる可能性があります。
サービス利用を予測し、先行コミットすることを目指す
パブリッククラウドの柔軟性、CAPEXからOPEXへの移行が言われていますが、請求書を減らすAWSの機能であるRI(Reserved Instances)や節約プランなどは、皮肉にもCAPEXに戻るように見えてしまうものです。しかし、実際に50%以上の割引が得られるのですから、誰もが「導入のベストプラクティス」リストに挙げるべきでしょう。
まずは、EC2インスタンスの時間単価の割引とオプションの容量予約を提供するRIを検討することから始めましょう。1年または3年のコミットメントと引き換えに、インスタンスコストの割引を受けることができます。オンデマンドインスタンスは、無制限の柔軟性を持ってワークロードをプロビジョニングすることを好む人にとって良い選択肢となる。しかし、負荷が予測可能なワークロード(Webサービスなど)を常時稼働させる場合は、RIの方がはるかに優れています。
節約のまとめ。
• 予約時間が長いほど、割引率がアップします。
• 前払い金額が多いほど割引率が高くなる(ただし、前払い金0円も可能)
• 標準クラスはコンバーチブルより安い(ただし、インスタンスタイプは作成後に変更できない)
コンバーチブルインスタンスは、サイズダウンやAWS Marketplaceでの販売ができないため、注意が必要です。最小のインスタンスから始め、必要に応じてアップグレードすることで、最大36ヶ月間の月々の支払いを約束させられることを避けることができます。
忘れてはならないネットワークコスト
AWSのネットワークは独自のものですが、物事をシンプルに保つために、あまり深入りせず、とにかくここでいくつかの重要なヒントに触れます。
1)オンプレミスサイトとAWSの間で大量のトラフィックがやり取りされる場合、Direct Connection機能を使えば、より安定したネットワーク体験、帯域スループットの向上、接続の安全性を確保することができます。
2)静的コンテンツ(画像、動画、音楽など)は、S3とCloudFrontの組み合わせでより良く、より安価に配信することができます。世界の様々な地域にある素晴らしいエッジサーバーのセットで、エンドユーザーはより近い場所にあるサービスキャッシュから来るデータを得ることができます。
3)異なるAWSサービス間のトラフィックフローを分析する。VPCからS3のような他のサービスへのトラフィックがエンドポイントを経由するようにVPCエンドポイントを構成することで、インターネットや公共ネットワークをバイパスし、より安全で安価な接続を実現します。
4)可用性ゾーン間のトラフィックについても、別の費用がかかるので、忘れないようにしましょう。フォールトトレランス・アーキテクチャを再考してください。すべてのサービスに必要でない場合もありますし、他の技術で実現できる場合もあります。
標準ツールで消費量を監視する
AWS Cost Explorerは、すべてのお金がどこに行くのかを可視化し、最も消費されるサービスに対応することが非常に簡単にできるため、あなたの頼りになるはずです。これは、実施された分析に基づいて、興味深いパターンを特定し、根本的な原因まで掘り下げることができます。
コストエクスプローラー インスタンスタイプの消費を表示
AWS Compute Optimizerは、アカウント(またはマスター1つ下のすべてのアカウント)に対して収集され分析されたデータに基づいて、AWSリソースの最適化の機会の概要を提供します。
AWS Compute Optimizer:EC2インスタンスに対する推奨事項。
未使用のインスタンスやデータベースを自動でオフにする
アイドル状態のリソースは、AWSの請求書の大きなコスト要因になり得ます。未使用のインスタンスやデータベースをアイドル状態にしておくことは、使用されていないものに対して料金を発生させることを意味します。例えば、平日の日中しかアクセスしない開発環境がある場合、24時間365日稼働させないことが最良の選択です。夜間に停止し、翌朝と週明けに起動する(ヒント:Auto Instance Schedulerを参照)ことで、コストをほぼ半分に抑えることができます。また、Amazon CloudWatchのアラームを有効にして、指定期間以上アイドル状態だったインスタンスを自動的に停止または終了させるのも良い戦略です。
Amazon CloudWatch diagram
ライフサイクルポリシーに慣れる
ライフサイクルポリシーといえば、AWS S3を使って運用する際には必ず必要なものです。とはいえ、ライフサイクルポリシーを実装するには、インフラ上で有効にする前に、ある程度の学習とドキュメントを読むことが必要です。
ポリシーは、使用パターンが明確に定義されたオブジェクトに対するルールの組み合わせなので、以下のことが可能です。
●ライフサイクル・ルールを使用して、オブジェクトをそのライフタイムを通じて管理する。
●階層型ストレージへの移行を自動化し、コスト削減を図る
●保管の必要性やサービスレベルアグリーメント(SLA)に基づき、オブジェクトを失効させる。
これは、適切に設定すれば非常に強力なツールです。S3ストレージクラスの違いを学び、より組織のニーズに合うようにライフサイクル・ルールに慣れることです。
ライフサイクルルールの作成
オブジェクトストレージに感謝
AWSは、パフォーマンス、可用性、耐久性の要件を満たすように設計された複数のストレージ階層を、異なる価格で提供しています。提供されるストレージサービスは、大きく3つに分類されます。オブジェクトストレージ、ブロックストレージ、ファイルストレージです。Amazonが提供するオブジェクトストレージ、Simple Storage Service(S3)は、3つのストレージカテゴリの中で最もコスト効率が高いです。Amazon S3内では、さらに先のストレージクラス間でデータを簡単に移動させ、アクセス頻度と価格のバランスを取りながら、ストレージコストを最適化することができます。すべてのストレージタイプで利用シーンが異なり、その価格設定も様々です。
AWS S3ストレージクラス部分比較
ここでの賢い方法は、タスクの種類、オブジェクトの性質、アクセス頻度に応じて、それらを組み合わせることです。目的のS3バケットをクリックし、「管理」→「分析」を選択し、「ストレージクラス分析」を追加すると、アクセスパターンを確認するのに便利です。One Zone-IAやS3 Glacierへの移行を推奨するものではありませんが、データをより深く可視化することができます。
S3 バケット・ストレージ・クラス分析
新規者についてもしっかり検討しましょう。S3 Intelligent Tiering。少額の追加料金で、アマゾンは自動的にアクセスデータのパターンを検出し、オブジェクトの人気度に応じて、標準的なアクセスと不定期なアクセスの2つの層の間でそれらを移動させます。人気のないオブジェクト(連続30日間アクセスされていないもの)は、アクセス頻度の低い階層に移動され、要求があれば後で戻されます。この仕組みでは検索料がかからないため、オブジェクトは永遠に行き来することができます。実際のシナリオでは、20%の節約になります。このような監視のための費用を支払うことで、理論上は部分的に低くなりますが、それでも見逃すにはあまりに魅力的だからです。S3 APIまたはCLIを使用してストレージクラス “INTELLIGENT_TIERING “を指定するか、ライフサイクルルールを設定することでこの技術を有効にすることができます。
しかし、これはすべてに有効なわけではないです。128KB未満のオブジェクトは、インフリークエントアクセス層に移行されることがないため、フリークエントアクセス層の通常料金で課金されることになります。また、30日未満のオブジェクトは、最低30日間課金されるため、この方法は使えません。
サービスの利用を予測し、前もってコミットすることを目指す
パブリッククラウドの柔軟性とCAPEXからOPEXへの移行について紹介しますが、請求書を減らすAWSの機能であるリザーブドインスタンス(RI)と節約プランのいくつかは、皮肉にもCAPEXに戻るように見えます。しかし、実際に50%以上の割引が得られるのですから、誰もが「導入のベストプラクティス」リストに挙げるべきものでしょう。
RIは、EC2インスタンスの時間単位の割引料金とオプションの容量予約を提供するもので、まずRIを検討することから始めます。1年または3年のコミットメントと引き換えに、インスタンスコストの割引を受けることができます。オンデマンドインスタンスは、無制限の柔軟性でワークロードをプロビジョニングしたい人には良い選択肢です。しかし、負荷が予測可能なワークロード(Webサービスなど)を常時稼働させる場合は、RIの方がはるかに優れています。
適切なEC2インスタンスタイプを選択する
EC2サービスは、おそらくAWSでのクラウドの旅で最初に選ぶものの1つだろう。60以上のインスタンスタイプがあり、最適なものを選ぶのは至難の業です。まずは、インスタンスの目的を考えてみてください。それを元に、以下のリストを見て最適なタイプを絞り込むことができます。
使用ケース |汎用機、計算、ストレージ、ネットワークでバランスが取れている必要がある
例 | Apache、NGINX、Kubernetes、Docker、VDI、開発環境など。
好ましいインスタンスタイプ|T3
使用ケース |高性能CPUの恩恵を受けるコンピュートバインドアプリケーション
例 | 高性能ウェブサーバー、拡張性の高いマルチプレイヤーゲーム、動画エンコーディングなど
好ましいインスタンスタイプ|C4、C5
使用ケース |大容量のデータセットをメモリ上で処理するアプリケーション
例 | 高性能データベース(SAP HANAなど)、ビッグデータ処理エンジン(Apache SparkやPrestoなど)、ハイパフォーマンス・コンピューティング(HPC)など
好ましいインスタンスタイプ|X1およびR5
使用ケース |浮動小数点数の計算、集中的なグラフィックス処理、またはデータのパターンマッチング
例 | 機械学習/深層学習アプリケーション、計算金融、音声認識、自律走行車、または創薬
好ましいインスタンスタイプ|G4、F1、P3
使用ケース |大量のシーケンシャルリード/ライト操作、または大規模なデータセットの処理
例 | NoSQLデータベース(例:Cassandra、MongoDB、Redis)、スケールアウト・トランザクション・データベース、データウェアハウス
好ましいインスタンスタイプ|D2とi3
ライトサイジングとは、性能要件を満たした上で、最も安価なオプションを選択することであることを忘れないでください。経験則では、長期間にわたってインスタンスのリソース使用率が80%になるようにすることです。
S3バックアップ:考慮すべき5つの鍵
- リージョン間レプリケーションを活用: クロスリージョンレプリケーション(CRR)を実装して、AWSのリージョン間でオブジェクトを自動的にコピーします。 これにより、地理的に離れた場所にデータを保存することで災害復旧能力が強化されるだけでなく、データ保存要件への準拠も支援します。
- N2WSで簡単に自動化: N2WSは、複雑なコーディングや手動での介入を必要とせずに、S3バックアップを自動化するシンプルで使いやすい方法を提供します。 これにより、効率が向上し、S3データの保護が確実に維持されます。
- インテリジェント・ティアリングでコストを最適化:S3インテリジェント・ティアリング・ストレージクラスを利用して、アクセスパターンの変化に応じて、2つのアクセス層(頻繁なアクセスと頻繁ではないアクセス)間でデータを自動的に移動させます。これにより、パフォーマンスへの影響やオーバーヘッドなしにストレージコストを最適化できます。
- セキュリティを強化するMFA Delete:バージョン管理機能付きのS3バケットで多要素認証(MFA)による削除を有効にすることで、セキュリティをさらに強化できます。オブジェクトのバージョンを恒久的に削除する操作にはMFAが必要となり、削除を防止します。
- AWS S3 Storage Lensでストレージを分析:S3ストレージの使用状況とアクティビティの傾向を可視化できます。このツールは、コストの最適化、データ保護のベストプラクティスの強化、パフォーマンスの向上に役立つ洞察と推奨事項を提供します。
真のクラウドコストについて
- ストレージ階層化を動的に活用:静的なライフサイクルポリシーにとどまらず、使用パターンを自動的に分析し、動的に階層間でデータを移動するツールを使用して、パフォーマンスとコストの両方をリアルタイムで最適化することを検討してください。
- スポットフリートで高可用性を実現:スポットインスタンスはコスト削減に役立ちますが、最も安価な利用可能なスポットインスタンスを自動的に選択し、再バランスする「スポットフリート」を作成することで、コスト効率と稼働時間を確保することができます。
- カスタム価格モデルの交渉:大手クラウドプロバイダーは、大量に利用する企業向けにカスタム価格帯を提供しています。既定の料金に妥協することなく、利用量や特定のサービス要件に基づく割引を交渉しましょう。
- クラウドネイティブなコスト最適化ツールの活用:ネイティブなコスト管理ソリューションに加えて、CloudHealthやCloudabilityのようなクラウドネイティブなサードパーティプラットフォームは、より深い洞察、クロスクラウド分析、自動化されたガバナンスを提供し、競争優位性をもたらします。
- サービス固有のコスト最適化フレームワークを利用する:各クラウドプロバイダーには、それぞれに秘められた効率化があります。例えば、AWS Compute OptimizerやAzure Cost Managementの推奨事項は、特定のサービスのコスト削減に重点を置いています。手動監査と併用して、これらのサービスを活用し、支出を最適化しましょう。
- 続きはこちらまで