Webサイト制作コースのお申し込みはこちら Webサイト制作コースのお申し込みはこちら

AWSのELB(Elastic Load Balancing)についてまとめています。

AWSのELBは、負荷分散機能 4種類のロードバランサー

ELBはEC2インスタンスのロードバランス機能。ELBには、ウェブアプリケーションのトラフィックを負荷分散するApplication Load Balancer、ネットワークの負荷分散をおこなうNetwork Load Balancer、サードパーティの仮想ネットワークを負荷分散するGateway Load Balancer、EC2インスタンスを負荷分散するClassic Load Balancerがあります。

Application Load Balancer(ALB) は、HTTPやHTTPSのトラフィックの負荷分散用のロードバランサー。マイクロサービスやコンテナなどの、アプリケーションアーキテクチャを対象にリクエストの振り分け(リクエストルーティング)が可能です。Application Load Balancer は、Amazon VPC 内のターゲットにトラフィックの振り分けをおこないます。

Network Load Balancer(NLB) は、Transmission Control Protocol (TCP)、User Datagram Protocol (UDP)、 Transport Layer Security (TLS)の負荷分散に使います。遅延を最小限におさえつつ、1秒に数百万件のリクエストを処理できます。

Gateway Load Balancer(GLB)は、IPベースでの負荷分散に使います。サードパーティーの仮想ネットワークアプライアンスのデプロイ、拡張、実行に使います。サードパーティーアプライアンスの負荷分散と Auto Scalingが可能なGateway Load Balancer は、トラフィックの送信元・送信先に対して透過性があり、セキュリティ製品などとの連携が可能。

Classic Load Balancer は、旧式のロードバランサー。HTTPやHTTPS、TCPの負荷分散に使います。いわゆるフツーの負荷分散機能というわけですね。Classic Load Balancer は、EC2-Classic ネットワーク上に構築されたアプリケーションを対象に振り分けをおこないます。

HTTP/HTTPSベースで負荷分散をおこなうならALB、TCP、UDB、TLSベースで負荷分散をおこなうならNLB、IPベースで負荷分散をおこなうならGLBの3択から選ぶことになるでしょう。例外的に、アプリケーションがEC2 Classicネットワーク内に構築されている場合は、Classic Load Balancer を使用する必要があります。

AWS ELBの利点

ELBには、高可用性及び伸縮性、堅牢なセキュリティとモニタリング機能があるのがポイント。

Elastic Load Balancing は GSLB(グローバルサーバー負荷分散)を使わずにリージョン全体でアプリケーションの負荷分散をおこない、高可用性を実現。アベイラビリティゾーンなど、障害境界を意識して運用しなくてもよいフルマネージドサービスなんですね。容量はアプリケーションサーバの使用率をベースに自動で追加・削除されるため、トラフィックの急激な変化(スパイク)にも柔軟に対応できます。

ELBのセキュリティは、Amazon Virtual Private Cloud (VPC) での証明書管理、ユーザー認証および SSL/TLS 復号の統合などの堅牢なセキュリティ機能を提供。TLS設定の集中管理をおこない、集中的にCPUを使うアプリの不可を柔軟にバランシングします。Application Load Balancer は、AWS WAFとの統合もサポートしていて、webアプリケーションレベルでのフィルタリングが可能。悪意のあるユーザがアプリケーションに辿り着く前に保護します。

ELBを使うと、アプリの状態とパフォーマンスをリアルタイムでモニタリングできます。Amazon CloudWatch メトリクス、ロギング、リクエスト追跡を使って、アプリケーションの動作をより詳しく把握できるようになるんですね。その結果、問題の発見やアプリケーションスタックでのパフォーマンスボトルネックがどこか、問題点の特定がおこなえるようになります。ELB は、アプリケーションのサービスレベルアグリーメント (SLA)を保証するためにも役立ちます。

ほかにも、Elastic Load Balancing は、HTTP/2、gRPC、TLS オフロード、ルールベースのルーティング、コンテナサービスとの統合など、コンテナベースのワークロードに必要な機能をサポート。EC2、ECS/EKS、Global Accelerator、AWS CloudFormation や AWS 請求などの運用ツールと統合されています。

AWS ELBの使い方

ELBは、AWSマネジメントコンソールによるウェブインターフェースか、AWS CLIによるコマンドラインインタフェースからロードバランサーの作成やアクセス、管理が可能です。AWS SDKやクエリAPIを使ったアクセスも用意されています。

【関連記事】
AWSを集中管理したい!AWS マネジメントコンソールを使いこなそう!

例えば、AWS CLIでHTTPSロードバランサーを作成するには、以下のコマンドを実行します。

【関連記事】
AWS CLIのインストール方法 AWSアクセスキーの登録と疎通確認

aws elb create-load-balancer --load-balancer-name my-load-balancer --listeners "Protocol=HTTP,LoadBalancerPort=80,InstanceProtocol=HTTP,InstancePort=80" "Protocol=HTTPS,LoadBalancerPort=443,InstanceProtocol=HTTP,InstancePort=80,SSLCertificateId=arn:aws:iam::123456789012:server-certificate/my-server-cert" --subnets subnet-15aaab61 --security-groups sg-a61988c3

ロードバランサー名「my-load-balancer」で、HTTP、HTTPSでのロードバランシングをおこないます。SSL通信に必要なサーバ証明書、サブネットやセキュリティグループの指定もおこなっています。以下が出力例です。

{
    "DNSName": "my-load-balancer-1234567890.us-west-2.elb.amazonaws.com"
}

AWS CLIでロードバランスのポリシーを出力するには、いかのコマンドを実行します。

aws elb describe-load-balancer-policies --load-balancer-name my-load-balancer

ロードバランサー名「my-load-balancer」のポリシーを出力しています。ロードバランスに使うクッキー名やクッキーの期限などが表示されています。

{
  "PolicyDescriptions": [
    {
      "PolicyAttributeDescriptions": [
        {
          "AttributeName": "ProxyProtocol",
          "AttributeValue": "true"
        }
      ],
      "PolicyName": "my-ProxyProtocol-policy",
      "PolicyTypeName": "ProxyProtocolPolicyType"
    },
    {
        "PolicyAttributeDescriptions": [
            {
                "AttributeName": "CookieName",
                "AttributeValue": "my-app-cookie"
            }
        ],
        "PolicyName": "my-app-cookie-policy",
        "PolicyTypeName": "AppCookieStickinessPolicyType"
    },
    {
      "PolicyAttributeDescriptions": [
        {
          "AttributeName": "CookieExpirationPeriod",
          "AttributeValue": "60"
        }
      ],
      "PolicyName": "my-duration-cookie-policy",
      "PolicyTypeName": "LBCookieStickinessPolicyType"
    },
    .
    .
    .
  ]
}

AWS ELBのまとめ

ポテパンダの一言メモ
  • AWS ELBは、EC2インスタンス用の負荷分散機能
  • AWS ELBには、Application Load Balancer、Network Load Balancer、Gateway Load Balancerと旧タイプのClassic Load Balancerがある
  • ELBの設定はAWSマネジメントコンソールか、AWS CLIで操作が可能

エンジニアになりたい人に選ばれるプログラミングスクール「ポテパンキャンプ 」

ポテパンキャンプは卒業生の多くがWebエンジニアとして活躍している実践型プログラミングスクールです。 1000名以上が受講しており、その多くが上場企業、ベンチャー企業のWebエンジニアとして活躍しています。

基礎的な学習だけで満足せず、実際にプログラミングを覚えて実践で使えるレベルまで学習したいという方に人気です。 プログラミングを学習し実践で使うには様々な要素が必要です。

それがマルっと詰まっているポテパンキャンプでプログラミングを学習してみませんか?

卒業生の多くがWebエンジニアとして活躍

卒業生の多くがWeb企業で活躍しております。
実践的なカリキュラムをこなしているからこそ現場でも戦力となっております。
活躍する卒業生のインタビューもございますので是非御覧ください。

経験豊富なエンジニア陣が直接指導

実践的なカリキュラムと経験豊富なエンジニアが直接指導にあたります。
有名企業のエンジニアも多数在籍し品質高いWebアプリケーションを作れるようサポートします。

満足度高くコスパの高いプログラミングスクール「ポテパンキャンプ」

運営する株式会社ポテパンは10,000人以上のエンジニアのキャリアサポートを行ってきております。
そのノウハウを活かして実践的なカリキュラムを随時アップデートしております。

代表の宮崎もプログラミングを覚えサイトを作りポテパンを創業しました。
本気でプログラミングを身につけたいという方にコスパ良く受講していただきたいと思っておりますので、気になる方はぜひスクール詳細をのぞいてくださいませ。