モーダルを閉じる工作HardwareHub ロゴ画像

工作HardwareHubは、ロボット工作や電子工作に関する情報やモノが行き交うコミュニティサイトです。さらに詳しく

利用規約プライバシーポリシー に同意したうえでログインしてください。

工作HardwareHub ロゴ画像 (Laptop端末利用時)
工作HardwareHub ロゴ画像 (Mobile端末利用時)
目次目次を開く/閉じる

AWS ELB の基本的な設定例

モーダルを閉じる

ステッカーを選択してください

モーダルを閉じる

お支払い内容をご確認ください

購入商品
」ステッカーの表示権
メッセージ
料金
(税込)
決済方法
GooglePayマーク
決済プラットフォーム
確認事項

利用規約をご確認のうえお支払いください

※カード情報はGoogleアカウント内に保存されます。本サイトやStripeには保存されません

※記事の執筆者は購入者のユーザー名を知ることができます

※購入後のキャンセルはできません

作成日作成日
2015/05/02
最終更新最終更新
2017/11/17
記事区分記事区分
一般公開

目次

    アカウント プロフィール画像 (サイドバー)

    サーバーレスとDevOpsに注力中。AWSを使った効率的なインフラ構築が得意です。

    0
    ステッカーを贈るとは?

    負荷分散および耐障害性の向上などに利用される AWS ELB (Elastic Load Balancing) の設定例を記載します。リージョンは Tokyo です。

    VPC 外部からのアクセスを振り分ける ELB

    VPC 関連の設定

    以下のように設定します。EIP の設定は今回は不要です。ELB 経由でアクセスするためです。

    VPC

    • Name tag: myvpc
    • CIDR block: 192.168.0.0/16
    • Tenancy: Default

    インターネットゲートウェイ

    • Name tag: mygateway

    サブネット二つ

    • Name tag: mysubnet-000[1-2]
    • VPC: myvpc
    • AZ: ap-northeast-1[bc]
    • CIDR block: 192.168.[1-2].0/24

    ルーティング設定

    • Destination: 0.0.0.0/0
    • Target: igw-(mygatewayのid)

    EC2 インスタンスの起動

    • myinstance-0001 (private ip: 192.168.1.4, public ip: なし)
    • myinstance-0002 (private ip: 192.168.2.4, public ip: なし)

    ELB の作成を開始

    myinstance-000[1-2] に対するアクセスを振り分ける ELB を用意します。EC2メニューの Load Balancers にある Create Load Balancer から作成します。以下のように設定します。

    • Load Balancer name: myelb
    • Create LB Inside: myvpc
    • Create an internal load balancer: いいえ
    • Listener Configuration: TCP 2222 => TCP 22
    • Select Subnets: mysubnet-000[1-2]

    今回の例では、VPC 外から ELB の TCP 2222 番へのアクセスを EC2 インスタンス TCP 22 番に割り振るように設定しています。

    セキュリティグループの設定

    外部から TCP 2222 へのアクセスが可能なものを選択します。必要であれば既存のものを編集または新規作成します。

    ヘルスチェックの設定

    EC2 インスタンス TCP 22 への Ping が実行される設定にします。自動入力された内容のままで問題ありません。

    EC2 インスタンスの登録およびタグ付け => 完了

    myinstance-000[1-2] を登録します。更に以下のようにタグ付けして完了です。

    • Key: Name
    • Value: ssh_servers

    動作検証

    ELB に割り当てられた DNS Name に対して VPC 外部から SSH 接続します。

    $ ssh ec2-user@myelb-2137309337.ap-northeast-1.elb.amazonaws.com -i mykeypair.pem -p 2222 \
    -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null
    

    数回繰り返すと 192.168.1.4 および 192.168.2.4 の両ホストにバランシングされていることが確認できます。ヘルスチェックが通らないと ELB はインスタンスを OutOfService と判断してパケットの転送を行わないことに注意します。今回の場合 22 番ポートで待ち受けている sshd を停止するとヘルスチェックに通らなくなり ELB はインスタンスを InService でないと判断して切り離します。

    補足

    ELB に視認性のよいドメインを与えるためには myelb-2137309337.ap-northeast-1.elb.amazonaws.com に対する CNAME を Route53 などの DNS に登録します。

    VPC 内部のトラフィックを振り分ける ELB

    「VPC 外部からのアクセスを振り分ける ELB」の手順で以下の項目にチェックを入れると内部 ELB が作成できます。

    Create an internal load balancer: いいえ

    注意

    • VPC 外部からは内部 ELB にアクセスできない
    • 内部 ELB は外部 ELB と同様にどのサブネットにも属さない

    用途

    • 冗長化できておらず同じ機能の仕組みが別に存在しない片系の運用を回避したい場合
    • SES にリレーする SMTP サーバを二台用意して、内部 ELB で内部ホストから 25 番ポートへのリクエストを分散することで一方をメンテに入れやすくする。耐障害性も上がる

    SSL 通信に対応した ELB

    Listener Configuration の Load Balancer Protocol で HTTPS または SSL を選択すると証明書および秘密鍵のアップロードを求められます。ELB が SSL 通信に対応して証明書の配布や通信の暗号化/復号化を行える必要があるためです。バックエンドサーバに対して復号化した内容を HTTP で転送する場合は ELB が SSL アクセラレータとして機能することになります。バックエンドサーバは暗号化および復号化の処理を行う必要がなくなり負荷が軽減します。そうではなく、バックエンドサーバに対して HTTPS で転送することもできます。この場合、暗号化は ELB にアップロードされた秘密鍵で行うのではなくバックエンドサーバの証明書から取り出した公開鍵で行います。クライアントから ELB への通信を一旦復号化して、更にバックエンドサーバの証明書で暗号化するため低速になります。また、ELB で一旦復号化するためクライアントが ELB との通信で使用している証明書に対応した秘密鍵をバックエンドサーバにインストールする必要がない点にも注意します。バックエンドサーバー認証を行わない場合はバックエンドサーバはいわゆるオレオレ証明書でもよいということになります。

    運用上の注意

    ELB に接続されたインスタンスを再起動すると、自動的には ELB に再接続されません。明示的に再度接続する必要があります。

    0
    詳細設定を開く/閉じる
    アカウント プロフィール画像 (本文下)

    サーバーレスとDevOpsに注力中。AWSを使った効率的なインフラ構築が得意です。

    記事の執筆者にステッカーを贈る

    有益な情報に対するお礼として、またはコメント欄における質問への返答に対するお礼として、 記事の読者は、執筆者に有料のステッカーを贈ることができます。

    さらに詳しく →
    ステッカーを贈る コンセプト画像

    Feedbacks

    Feedbacks コンセプト画像

      ログインするとコメントを投稿できます。

      関連記事

      • AWS EC2 インスタンスの選定方法
        準仮想化と完全仮想化 AWS のインスタンスタイプが準仮想化と完全仮想化のどちらの仮想化技術を採用したハードウェアであるかによって、使用できる AMI (OS) が異なるのは以下の理由によります。 準仮想化 ParaVirtualization (PV) において OS は自分が仮想化用のハードウェア上で動作していることを知っています。つまり仮想化用にカスタマイズされた専用の OS が必要になりま...
        yuki_coderyuki_coder9/30/2017に更新
        いいねアイコン画像0
      • OpenVPN で二つの VPC をつなぐための設定
        インターネット VPN (Virtual Private Network) には二拠点間の通信を暗号化する方式によって IPsec-VPN や SSL-VPN などがあります。OpenVPN は SSL-VPN の実装のひとつです。AWS VPC を二つ用意してそれらを OpenVPN で接続してみます。 VPC の構成 myvpc-1 (10.1.0.0/16) mysubnet-1-1 (10...
        takuyatakuya9/11/2017に更新
        いいねアイコン画像0
      • Windows Server EC2 インスタンスへの CAL インストール
        サムネイル画像-8bae43ea3b
        Windows サーバを AWS EC2 インスタンスとして起動した後は、RDP 接続が必要となります。RDP 接続を行なうためには Remote Desktop Services (RDS) ライセンスが必要となります。 Windows Server のライセンスは、管理用途の RDS 接続を許可しています。その際に RDS ライセンスは不要です。ただし、[同時接続数が 2 という制限があります...
        けんちゃんけんちゃん12/18/2023に更新
        いいねアイコン画像0
      • AWS Lambda の基本的な使い方
        サムネイル画像-9285163f6b
        AWS Lambda はイベントドリブンな「関数」を登録できるサービスです。例えば S3 に画像がアップロードされたときにサムネイル用のサイズに加工する処理が記述された関数を登録できます。基本的な使い方をまとめます。 事前準備 関数の登録はブラウザで AWS コンソールにログインして行うこともできますが、本ページでは AWS C
        yuki_coderyuki_coder2/18/2020に更新
        いいねアイコン画像0
      • AWS 落穂拾い (Data Engineering)
        Kinesis Kinesis Streams データは 3 AZ にレプリケーションされます。Amazon Kinesis Data Streams FAQs 24 時間 (既定値) から 1 年までデータ保持できます。[Changing the Data Retention Period](https://docs.aws.amazon
        yuki_coderyuki_coder1/22/2025に更新
        いいねアイコン画像0