Habrahabrの読者に、Enterprise Compute Cloudの一部であるElastic Load Balancerサービスについて説明したいと思います。 多くは長い間ELBサービスを使用してきましたが、サービスが内部からどのように機能するかを知りません。 私はこの情報について少し知識があります-AWSサポートとの何時間ものミーティングは、サイト上のドキュメントよりもはるかに有益な場合があります。
それでは、基本から始めて、ニュアンスに移りましょう。
ELBとは何ですか。
Elastic Load Balancerは、EC2 / VPCインスタンス間のリクエストバランシングを提供するサービスです。 したがって、ELBには2つのタイプがあります。
- インターネットから見える-EC2 / VPC
- インターネットから見えない-VPC
ELB機能
ELBは次のプロトコルをプロキシできます。
- http
- https
- tcp
- ssl(セキュアtcp)
さらに、リスナーと受信者の両方を任意に組み合わせることができます。 たとえば、 http-http (プロキシのみ)またはtcp-https (SSL終了がインスタンス側で行われる場合)
ELBはポートをプロキシできます:
- 25
- 80
- 443
- 1024-65535
ELBセットアップ
コンソールで、ロードバランサーのアイテムを見つけ、[ロードバランサーの作成]をクリックします。 最初の画面では、ポートとプロトコルを構成します。
さらに、 HTTPSを選択したため、SSL終了のための証明書が必要です。 AWSは設定を求めます:
次に、helcheckを構成します-ホストの状態を確認します。 ヘルプが肯定的である場合、インスタンスはバランス調整のリストに含まれます。 負-リクエストはインスタンスに送信されません:
Helschekiは、バランシングと同じプロトコルで構成できます。http/ httpsでは、ページ名またはパスを追加できます。
さて、最後に-ELBの下に追加するインスタンスを選択する必要があります(スクリーンショットでは単なる例です)
最後の画面は、いつものように、詳細を確認しています。
私たちは見て、すべてが大丈夫だと判断し、ELBを作成しました。
ELBでドメインをセットアップする方法
EC2 ELBには、アクセスできる3つのアドレスがあります。 これらはIPアドレスではなく、URLです。
- myelb-1161081434.us-east-1.elb.amazonaws.com(レコード)
- ipv6.myelb-1161081434.us-east-1.elb.amazonaws.com(AAAAレコード)
- dualstack.myelb-1161081434.us-east-1.elb.amazonaws.com(AまたはAAAAレコード)
ELBでドメインを構成する方法は2つあり、使用するネームサーバーによって異なります。 Amazon Route 53が推奨されます ELBと統合され、すべてがAレコードを通じて簡単に構成されます。
他のDNSサービス/サーバーを使用している場合-CNAMEパス。
スティッキーセッション
ELBはスティッキーセッションのCookieを処理できます。 これらの機能は、ELBの作成後に構成で構成できます。
ELB自動スケーリング
ここで、ELBがどのようにスケーリングし、負荷がかかったときにどのように動作するかについてお話したいと思います。 ELB、NGINX、HAproxyのパフォーマンスを比較した記事をすでに公開しています。 そこでスケーリングの瞬間に触れました。 t1.mictoからm1.smallに垂直にスケーリングされたELB:
Amazon Web Servicesのテクニカルサポート担当者によると、ELBの負荷が増加すると、サーバーが拡張されるまでに1〜7分かかります。 IPアドレスは変更できるため、ドメインにIPアドレスを使用することはお勧めしません(上記の状況から抜け出す方法を説明しました)。
個々のケースでは、ELBを「ウォームアップ」して希望の形状にすると、重い負荷に耐えることができます。 テクニカルサポートへのリクエストを通じて「ウォームアップは完了しました」。
自動スケールEC2 / VPC
ELBはEC2インスタンスの自動スケーリングで重要な役割を果たします。 ELBという名前は、自動スケールグループの構成に示されており、実際にはすべてがグループを中心に展開されます。 私の記事でこれについてもっと読むことができます。
ELBにはまだ多くの作業のニュアンスがありますが、私は主なことを話しました。
ELBの経験はありますか? 興味深い事実?