サンプル計画はすべての人に知られています-サーバーは、データベースおよび負荷に応じて必要に応じて起動/停止する小さなサーバーのセットに対してより強力です。
安価なサーバーのうち、Amazonには特に選択肢はありません。 最初は、このためにスモールインスタンスを使用する予定でした-デフォルトでAmazonを推奨するのはこのオプションです。 1.7 GBのRAMが搭載されており、Windowsには非常に快適ですが、ECUは1つだけです。 実際には、5〜8個のワークプロセスをメモリに保存できますが、実際には同時に動作することはできません。コアは1つで非常に脆弱です。1つのECUは1つの2007 Xeonコアの1 Ghzです。 私の推定によると、おおよその同等物は周波数1.5 GhzのCeleronプロセッサです。 このようなサーバーのコストは1時間あたり0.12ドル〜1か月あたり86ドル、1ダース-1か月あたり860ドルです...このサーバー構成が私の目標を完全に満たしていないことは明らかでした。
そこで、 Microインスタンスを試してみることにしました。たった613 MBのメモリですが、それから:
- パフォーマンスは2 ECUに達します
- 4倍安い
- Windows Server 2008 R2 Coreの64ビットプラットフォームを使用できます
おそらく、多くの人が興味を持つでしょう-なぜ613 MBのメモリ用にx64システムを選んだのですか? 引数は次のとおりです。
- 2008 R2は2008と比較して新しいシステムです。2008はVista上に構築されており、R2はWindows 7に基づいています。
- IISパフォーマンスの改善
- 使用するOSレベルの仮想化の改善
Server Coreは、多くのGUI要素を持たないWindowsの簡易インストールです。インターネットエクスプローラー、通常のエクスプローラー、さらにはタスクバーさえありません!
このようなサーバーの構成手順を分析します。
1. Windowsのインストール
デフォルトで提供されるシステムのリストにコアバージョンはありません。 ただし、キーワード「2008R2」を検索することで見つけることができます。
![画像](https://habrastorage.org/getpro/habr/post_images/558/1ec/915/5581ec915491003c7cb0a59d0343154f.png)
Microインスタンスを実行すると、RDCを介して接続できます。通常のデスクトップの代わりに、裸のコマンドラインが表示されます。
![画像](https://habrastorage.org/getpro/habr/post_images/087/91d/632/08791d632564e34f373b8b551280fb5a.png)
タスクマネージャーを入力すると、300 MBのメモリが占有されていることがわかります。仮想メモリの合計は約1.4 GBです。 インスタンスには単一の16 GBディスクがありますが、インストール後、11 GBを少し超える空き容量があり、これはタスクには十分です。
2.他のクラウドコンピューターに接続する
Ec2のファイアウォール(セキュリティグループと呼ばれる)は、通常どおり、指定されたIPが指定されたポートを開くことを許可します。 実行中の各サーバーのIPを手動で追加しないために、次のトリックを使用できます。IPの代わりにセキュリティグループ名(詳細タブに表示され、「sg-c45ac45a」のように見える)を指定し、すべてのポートでアクセスを許可します。
新しいインスタンスを作成するときに、同じセキュリティグループを指定すると、新しいインスタンスは自動的にクラウドの他のリソースにアクセスできます。 私のセキュリティグループは次のとおりです(ms sqlに追加された最初と最後の行に注意してください):
![画像](https://habrastorage.org/getpro/habr/post_images/bef/f8e/58f/beff8e58f062e770ae7acb02b1a8082a.png)
したがって、次のコマンドを正常に実行し、内部IPを介してメインサーバーに接続します。
net use z: \\10.20.30.40\C$ /user:Administrator
3. IIS、.NETのインストール
さまざまなコマンドの完全なセットは、MSによってこのページ( http://technet.microsoft.com/en-us/library/ee441260(WS.10).aspx )で詳細に説明されていますが、「regiis。バット」メインサーバー上。 ブレードで起動することにより、必要なすべてのインストールを実行します(FTPサーバーを破棄しました。さらにいくつかの機能を削除できます-実験):
start /w pkgmgr /iu:IIS-WebServerRole;IIS-WebServer;IIS-CommonHttpFeatures;IIS-StaticContent;IIS-DefaultDocument;IIS-DirectoryBrowsing;IIS-HttpErrors;IIS-HttpRedirect;IIS-ApplicationDevelopment;IIS-ISAPIExtensions;IIS-ISAPIFilter;IIS-ServerSideIncludes;IIS-HealthAndDiagnostics;IIS-HttpLogging;IIS-LoggingLibraries;IIS-RequestMonitor;IIS-HttpTracing;IIS-CustomLogging;IIS-ODBCLogging;IIS-Security;IIS-BasicAuthentication;IIS-WindowsAuthentication;IIS-DigestAuthentication;IIS-ClientCertificateMappingAuthentication;IIS-IISCertificateMappingAuthentication;IIS-URLAuthorization;IIS-RequestFiltering;IIS-IPSecurity;IIS-Performance;IIS-HttpCompressionStatic;IIS-HttpCompressionDynamic;IIS-WebServerManagementTools;IIS-ManagementScriptingTools;IIS-IIS6ManagementCompatibility;IIS-Metabase;IIS-WMICompatibility;IIS-LegacyScripts;WAS-WindowsActivationService;WAS-ProcessModel
Dism /online /enable-feature /featurename:IIS-ManagementService
Dism /online /enable-feature /featurename:WAS-NetFxEnvironment /featurename:IIS-ISAPIExtensions /featurename:IIS-ISAPIFilter /featurename:IIS-NetFxExtensibility /featurename:IIS-ASPNET
IISを管理するためのリモート接続を許可するには、何も残っていません-レジストリのキーを変更します(regedit.exeを実行します):
HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ WebManagement \ Server-EnableRemoteManagementプロパティを1に設定します。
そして、ブレードインスタンスでリモートコントロールサービスを実行します。
net start wmsvc
メインサーバーからIISへの接続を確認します-サーバーに接続...、内部IP、ログイン/パスワードを指定し、接続を保存します。
![](https://habrastorage.org/getpro/habr/post_images/3b2/73f/a39/3b273fa39e9840242468bc73b446618c.png)
メインサーバーでcopylocal.batを作成したアプリケーションコードをコピーします。これにより、xcopyを使用して、最新のアプリケーションソースを定義済みフォルダーにコピーします。
繰り返しますが、この.batはブレードサーバーで実行する必要があります。
メインサーバーからiisをセットアップします-アプリケーションプールでの.net使用量、プロセス数を確認します-W3WP.exeの平均サイズは約100 MBであるため、3を設定し、その後、http://およびそれを介してブラウザーでサーバーを正常に開きます公共のDNS。
サーバーは作動し、ロードバランサーに接続する準備ができています。
4.スケーリング
これらの操作をN回実行しないように、インストール済みのすべてのアプリケーション、ネットワーク接続、および必要なコードを既に含むこのインスタンスのAMIを作成します。 これにより、必要なすべてのソフトウェアとコードを数回クリックするだけで、まったく同じサーバーを実行できます。
サーバー間の作業の分散は、Amazonのロードバランサーに請求できます。1年間の最初のロードバランサーは無料で提供されます。
サーバーバージョンの更新は次のようになります。
- 手動モードで古いコードを使用して新しいブレードを上げます
- コードを更新します(バッチファイルがあります)
- httpの作業を確認します
- 新しいバージョンのAMIを作成する
- 必要なサーバー数を掛ける
- 負荷分散で使用されるサーバーを変更する
- 古いサーバーの電源を切る-Terminateコマンド
自動スケーリングを使用するオプションもありますが、別の機会にそれについて話すことを考えています。
5.速度テスト
最近まで、私はこのような少量のメモリに不当なブレーキがかかることを恐れていたため、少なくともある程度の負荷の下でシステムをチェックする必要がありました。
テストには、 loadimpact.comと、ランダムページにリダイレクトする特別なコントローラーメソッドを使用しました。 結果はかなりまともです-特に21ドル/月のこのサーバーのコストに関するレポートです。
10および20クライアントでの長い応答時間は、構成の直後にテストが開始されたため、アプリケーションの初期化、システムの不要な部分のスワップによって説明されます。
財務実績
明らかに、Windowsの世界では、マウス、コンテキストメニュー、GUIを使用して何も設定しない生活は想像しがたいものです。 しかし、それほど難しくはありませんでした。 最大の難しさは、ファイアウォール設定(Amazonianと組み込みのWindowsの両方)を選択し、多くの労力を必要としないシンプルなレイアウトスキームを考案することでした。 この手順を使用すると、実際にそのようなサーバーを1時間で構成できると思います。これにより、月間で大幅に節約できます。
私の全体的な印象は、この構成の有効性は、1ドルという点で、スモールインスタンスアレイを使用した場合と比べて約3倍高いということです。 つまり、約6個の小さなインスタンスを8個のマイクロインスタンスに安全に置き換えることができます。これは、金銭的には、516ドルではなく、1年あたり4000ドルを超える173ドルです。
お役立ち情報
1. Coreの開始-http://technet.microsoft.com/en-us/library/ee441260(WS.10).aspx
2.コンソールを閉じた場合、Ctrl + Alt + Endキーを押すことができます。これは、コンピューターのCtrl + Alt + Delキーに似ており、Taskmanagerを実行します。 runコマンドは、cmdの再実行を許可します。
3.セッションを終了するには、logoffコマンドを使用します。
4. Amazonインスタンスタイプ-http://aws.amazon.com/ec2/instance-types/ 。
5. Amazonインスタンスの価格(インスタンスを配置するデータセンターによって異なります) -http://aws.amazon.com/ec2/pricing/
更新(2011年7月26日):このようなサーバーのストレステスト-http://loadimpact.com/result/ec2-50-19-133-136.compute-1.amazonaws.com/en/random-9ec1ada5c887d3d3c8607ecb740547a2