アマゾンウェブサービスでお金を節約する方法-効果的なアーキテクチャの選択

みなさんこんにちは!



本日は、ロシア向けのWebソリューションをホストする際にAmazon Web Servicesクラウドホスティングサービスを使用する場合に、「専門的に節約する」方法について説明します。 私たちはこのクラウドプロバイダーのサービスを企業プロジェクトに2年近く積極的に使用しており、常にコストの最適化に取り組んでいます。 奇妙なことに、マーケティングの弾丸が取り除かれたAmazon Web Servicesのコスト最適化の重要なトピックは、ネットワーク上では特に表されていません。 私の経験を実質的に共有し、Webシステムを設計するときに考慮すべき明らかな利点とエラーの概要を説明します。





アプリケーションをどこで実行しますか?





米国(オレゴン州バージニア)では、仮想マシンの1時間ごとのレンタルのコストは、たとえばヨーロッパや他のAWSリージョンよりも大幅に安くなっています。

しかし、これらはまだ花です。 ベリー- 1年前に仮想マシンを大量に購入した場合-ヨーロッパの仮想コンピューターではほぼ50%安くなり、米国では60%少なくなります(標準の仮想マシンはm1 *、m2 *、c *を使用します)。 事前に3年間車を利用する場合-節約はさらに大きくなります。







さらに、Amazonは通常、米国で最初に、実用的な新しい有用な技術を発売します。 たとえば、作成時にIOPSが保証されて設定されているディスク-RAID 10で4つのディスクに最低1500 IOPSを設定し、MySQLのパフォーマンスを忘れました:-)また、 クラウドのmemcachedおよびクラウドからのSMS通知は、Amazonのアメリカのデータセンターで最初に表示されました。



つまり、他のサービスよりも先に進み、サービスへの支払いを抑えたい場合は、米国のデータセンターから始めましょう。



しかし、ロシアのプロジェクトのために米国に配置することの欠点もあります。 それらの1つは150ミリ秒の遅延です。ただし、静的リソースをAmazonのCDNまたは国内CDNに転送する場合、遅延はほとんど目に見えません。 クライアントは、ブラウザーに最も近いサーバーから最小の遅延(単位、最大数十ミリ秒)で静的データを受信します。 第二に、米国のデータセンター、特にバージニア州で最大のデータセンターは、アイルランドの私たちに最も近いヨーロッパ人よりも、控えめに言って落ち込んでいます。 どうやら米国では、雷雨がより頻繁に発生します:-)



一般的に、安価で新しい効果的なクラウドテクノロジーが必要な場合は、静的出力用にCDNを構成する準備ができており、アプリケーションはAmazonリージョンの少なくとも2つのローカルデータセンターに配置され、稲妻や別のオブジェクトがヒットしたときにトラフィックを1つのデータセンターから別のデータセンターにシームレスに切り替えます-安全にできますUSAを選択し、そこにWebソリューションを配置します(これは皮肉ではありません。これは、クライアントがほとんど何にも気付かないようにするための最小値です:-))。



Webアーキテクチャー機能による節約





ここが楽しい部分です。 マシンの自動スケーリンググループロードバランサーなど、Amazonが提供するクラウドブリックについて注意深く読むと、強力なコーヒーを飲みながらクラウドプロバイダーの未使用容量で Webアプリケーションの一部を実行できることがわかります。 -つまり ほとんど何のために:-)

つまり 次の場合:

  1. アプリケーションは仮想ディスクにファイルを保存しませんが、データベースやメモリにデータを保存します
  2. 仮想マシンのイメージは、 自動的にスケーラブルなグループのコントローラーによって起動されます -たとえば、負荷に応じて(これはまさに私たちが持っているものです)
  3. クライアントはクラウドバランサーを介して車のクラスターに行きます




その後、技術的なリスクなしに、2つの自動スケーリンググループ(メイングループと「安い」グループ)を完全に落ち着いて設定できます。 負荷は「安価な」グループによって負担され、車のコストは1時間あたり8セントです(実際の生産の例を説明します)-スポットインスタンスの価格を上げるまれなケースでは、車のメイングループが自動的に負荷を引き継ぎます。 いずれにせよ、時間あたりのコストを数回節約できます。



具体例を次に示します。









us-east-1リージョンの小売店でのc1.xlarge仮想マシンのコスト:0.58ドル。

未使用リソースの証券取引所でスポットインスタンスとしてレンタルした同じ仮想マシンのコストが0.08ドルを超えることはめったにありません



つまり 15個のc1.xlargeのクラスターがある場合-2つのクラスターを作成します。1つはサイズ13の「安価な」車で、もう1つは2台のサイズで0.58ドルの標準マシンです。 スポットインスタンスの価格が名目上の価格を毎月上昇する可能性がある場合、標準クラスターを自動的にスケーリングします。



ただし、残念なことに、このような大きな節約はアマゾンのアメリカ地域でのみ達成できることに注意してください-ヨーロッパでは、スポットインスタンスはそれほど安くはありませんが、通常のものよりもかなり安くなっています(この例では0.08ドルの代わりに0.17ドル)。



そしてもちろん、スポットインスタンスの制限を理解することは重要です-スポットインスタンスの価格は変動し、小売時間よりもさらに高くなる可能性があります(ここでは、私たちの観察によれば、それは非常にまれです)-この場合、スポットインスタンスクラスターはマシンをオフにし始めます(もちろん、mysqlはマシン上に保持できず、Apacheもありません)お願いします)。 Webアプリケーションは、このケースを処理し、従来のマシンのクラスターを自動的に拡張できる必要があります。 CloudWatchのCPU使用率テストを自動スケールグループに接続することにより、この問題を解決しました-頭痛なしでそのまま動作します。



まとめ





これらは、AmazonWebServicesで「専門的にお金を節約する」すべての方法とはほど遠いものです。 次の記事では、同様に効果的な他の方法について説明します。たとえば、トラフィックを燃やさずにs3バケットをs3バケットにコピーするなどです。



この記事では、長所と短所、ロシアのWebプロジェクトにAmazonのアメリカ地域を使用するリスクを客観的に実証することを試みました。また、Webソリューションのスケーラブルなクラスターアーキテクチャを構築することで、仮想マシンの容量を数回節約できることを示した例を使用しました。

皆様の幸運、より良いアイデア、効果的なアーキテクチャソリューションをお祈りします。また、共有ホスティングとクラウドの両方でのWebアプリケーションの復元力に関する4月4日のカンファレンスに招待します。



All Articles