私はAWS無料利用枠を使用しています。これは、物事を正しく理解していれば、1つの無料のEC2マイクロインスタンスと1つの無料のElastic Load Balancerを提供します。
複数のEC2インスタンスを使用している場合、通常ELBが使用されることを理解しています。私がそれを助けることができるのであれば、複数のインスタンスを実行したくありません。単一のEC2インスタンスがそれにスローされたトラフィックを処理しているように見える時間の90%が、応答しなくなり、再起動する必要がある場合があります。これは自動的には行われないようです。
ELBが「正常でない」(複数のpingの試行に応答しない)ダブするマイクロインスタンスを再起動することを確認しました。したがって、私が持っていた1つのアイデアは、単一のELBを作成し、それに単一のEC2を割り当て、そこで簡単に「スタックした場合の自動再起動」状況を作成することでした。
私はそれを設定しました、そしてそれは私を怒らせたり吠えたりしませんでしたが、私はこの権利を理解しているのかと思っていました。私はサーバー管理にかなり慣れていないので、マイクロインスタンスやELBなどの概念だけを理解していますが、(すべての愚か者と同じように)基本は理解していると思います。
これは良い考えですか?これを達成する簡単な方法はありますか?私はグーグルで同じことをしている他の人を検索しようとしましたが誰も見つかりませんでしたが、それが機能しないためか、他の誰もが単一のEC2マイクロインスタンスを使用して試すのに十分なほど愚かではないためか、わかりませんすべてのトラフィックのために。他の誰かがそれについて話しているのを見ないので、それが悪い考えだと深く疑っています。そして、私はいくつかのことについてはかなり賢いですが、この種の問題に賢いことについては自信がありません!
ご協力いただきありがとうございます!
AmazonのElastic Load Balancer(ELB)は、それに割り当てられている正常なインスタンスにリクエストを分散します。これらのインスタンス(またはその数)を再起動または変更することはありません。ヘルスチェックを介して「正常な」インスタンスを特定します-通常、特定の場所をポーリングします。
あなたが求めているのは、「1つの正常なインスタンスを維持する」ことです。これは自動スケーリングタスクです。自動スケーリングでは、インスタンスのグループを定義できます(通常、起動するAMI、インスタンスタイプ、インスタンスを起動する1つ以上のアベイラビリティーゾーン、および維持するインスタンスの数(最小/最大)を含む)。スケールアップおよびスケールダウンするためのポリシーとして。自動スケーリングポリシーは、ARN(Amazonリソース名-リソースへの参照)を返します。
自動スケーリンググループを設定したら、インスタンスが異常になったときにスケーリングポリシーをトリガーするだけです。 ELBで設定したヘルスチェックをよく見ると、アラームを設定できることがわかります。そのアラームは実際にはCloudwatchアラームです。
独自のCloudwatchアラームをセットアップするか、ELBのヘルスチェックを介してセットアップできます---alarm-actions
は、異常なノードの基準が満たされたときに自動スケーリングARNをトリガーします。
ELBはこの設定では技術的に必要ありません-自動スケーリングはそれ自体で機能します。 ELBが行うことは、インスタンスにアクセスできるDNSアドレスを提供することです(また、バックエンドが利用できない場合の何らかのエラーメッセージも提供します)。 (自動スケーリングを単独で使用する場合は、起動時にエラスティックIPを新しいインスタンスに再度関連付ける必要があります(スクリプト化可能))。
最後に、明確にするために:CloudFlareはAWSサービスではなく、CDNです(そして、DDoS攻撃を軽減することでよく知られています)。 Amazonの同等のサービスはCloudFrontです。インスタンスを再起動するためにどちらも必要ありません。必要なのはCloudWatch(Amazonの監視サービス)です。無料枠はCloudwatchといくつかのアラームの両方をカバーします。