AWS、Azure、Rackspaceでクラウドインスタンスを作成することに頭を悩ませています。ただし、1日の終わりにインスタンスをオフにし、午前中にオンにする必要があります。これにより、ホスティングコストが半分になります(開発用です)。
私はいくつかの管理サービスを見てきましたが、それらは私の頭を悩ませました。これを行う簡単な方法はありますか?
AWS、Azure、Rackspaceでクラウドインスタンスを作成することに頭を悩ませています。ただし、1日の終わりにインスタンスをオフにし、午前中にオンにする必要があります。これにより、ホスティングコストが半分になります(開発用です)。
私はいくつかの管理サービスを見てきましたが、それらは私の頭を悩ませました。これを行う簡単な方法はありますか?
アズール
休み:
これは、 Windows Azure Service Management REST APIを使用して、Azure 展開に対して行うことができます。REST であるため、ほとんどのプログラミング言語を使用してアクセスできます。
ローカル マシンでアプリケーションを実行して、これらのサービスへの呼び出しをスケジュールして、営業時間の終わりの特定の時間に削除し、朝にサービスを再度作成することができます。
パワーシェル:
または、同じ方法でデプロイを管理できますが、REST を使用する代わりに、Azure PowerShell コマンドレットを使用できます。私は自分でこの方法を行いましたが、うまく機能します。
開始するのに役立つように、 PowerShell を使用して Azure アプリケーションをデプロイする方法に関する優れたチュートリアルがあります。
また、開発中にコストを削減したいだけの場合は、Azure の 3 か月間の無料試用版があることをまだご存じない方もいらっしゃると思います。
ほとんどのクラウド プロバイダーがインスタンスをオンデマンドで (またはスケジュールに従って) 開始/停止するためのそれぞれの API を提供している限り、いつでも独自のソリューションを展開できます。もちろん、これらの管理サービスが実際に使用しているものでもあります。AmazonEC2 Java インターフェイスはすべてを提供します。たとえば(他の多くの中でも)関連するメソッド、具体的には次のとおりです。
Amazon EC2に関するこれに対する最も簡単なアプローチは、上記のすべての EC2 メソッドを公開する優れたboto (Amazon Web Services によって提供される現在および将来のインフラストラクチャ サービスへの統合インターフェイス) を使用して、いくつかの Python スクリプトを作成することです。これらのスクリプトは、必要に応じて、またはオペレーティング システムのスケジューラを介して開始できます。
もう 1 つのオプションは、自動化エンジンとして継続的インテグレーションサーバーを促進することです (これらのシステムの見過ごされがちな側面です)。これにより、インスタンスをオンデマンドで開始/停止するか、cron と同様にスケジュールすることができます。
これはまさにBamboo AWS プラグイン(オープン ソースであり、コードは Bitbucket で入手可能) を使用して行います。このアプローチの詳細については、Java でプログラムによって Amazon EC2 インスタンスを開始および停止する方法に対する私の回答を参照してください。Atlassian Bambooは商用製品ですが、 Jenkinsなどの一般的なオープン ソース CI ソリューションでも同様のものが利用できるはずです。
注: 2013 年 6 月の時点で、IaaS インスタンスを「停止 (割り当て解除)」状態にすることができます。この状態では、VM に関連付けられたディスクのストレージに対してのみ課金されます。以下の元の回答は、「停止」しているが割り当て解除されていない VM インスタンスについて説明しています。割り当て解除状態は、現在、Azure 管理ポータルを介して実行される VM 停止アクションの既定です。
現在、Widows Azure でこれを実現する唯一の方法は、デプロイを削除することです。
サービスを停止しても請求が発生し (オフィス スペースのレンタルと同様に、そのサービスに参加していなくても料金が発生します)、インスタンス数をゼロに設定することはできません。使用できるオプションは、インスタンス数を絶対最小値 (1) まで減らしてから、必要な時間にスケールアップすることです。ただし、これによるコスト上のメリットは、インスタンスのサイズによって異なります。
はい、ジョブをスケジュールできる Automation Runbook があります。Azure VM を停止 (割り当て解除) するためのスクリプトを作成しました。
https://gallery.technet.microsoft.com/Deallocate-all-VM-under-79049c69
Runbook の使用方法についてお読みください http://azure.microsoft.com/blog/2014/06/19/azure-automation-runbook-management/
stop vm にもコストがかかるため、delocation と stop は異なります。
この記事を参照してください。AWS 内でインスタンスをオン/オフするオプションがいくつかあります。
したがって、あなたの場合、次のことをお勧めします。
AWS の場合:
AWS CLI コマンドのようなシェル コマンドを使用する: AWS Pipeline を使用してクラウド インスタンスをオン/オフにするを参照してください。このメソッドは、実行時間が請求に影響する AWS API 呼び出しごとに開始および終了する個別の EC2 インスタンスを開始します。
Node.js / Pythonなどのプログラミング言語を使用する場合: AWS Lambda を使用してクラウド インスタンスのオン/オフを切り替えるを参照してください。1 日 2 回、通常 3 秒未満で実行され、最大 128 MB のメモリ消費量で実行されるタスクは、通常、月額 0.0004 米ドル未満の費用がかかります
Azure および Rackspace (またはその他のプラットフォーム) の場合:
上記のツールを使用して、インスタンスをオンデマンドで開始/停止 するためのそれぞれの APIを提供します。
インスタンスが開始されるたびに実行されるスクリプトごとの設定を検討することもできます。
AWS に推奨されるソリューション:
AWS Data Pipelineは、このタスクに特に適しています。Data Pipeline は AWS テクノロジーを使用しており、設定されたスケジュールで AWS CLI コマンドを実行するように構成でき、外部依存関係はありません。Data Pipeline はログを S3 に書き込み、IAM ロールのコンテキストで実行できるため、キー管理の要件がなくなります。Data Pipeline は費用対効果にも優れています。たとえば、Data Pipeline の無料利用枠を使用して、1 日 1 回インスタンスを停止および開始できます。
https://aws.amazon.com/premiumsupport/knowledge-center/stop-start-ec2-instances/