この記事はAWSを独学で勉強している私が特に気になった内容を留めておくものです。
インフラ素人、高校の情報のテストで赤点取った人が「なんとなく」AWSを理解することをテーマに勉強した内容や気になった内容をまとめてます。
ロードバランサーとは
ロードバランサーとは、サーバーの負荷を分散し、サーバーの可用性、耐障害性を高めるための仕組みです。すごく平たく言えば、複数台用意したサーバーをコントロールし、複数のサーバーに対してユーザーからのアクセスを振り分けてくれる仕組みです。
インフラ屋ではなく、私のようなアプリ屋の人間でも、理解しておくべき内容です。なぜなら、それなりに利用人数の多いシステムであれば、導入されることがほとんどだからです。
そのうち、AWSが提供するロードバランサーのことをELB(Elastic Load Balancing)と呼ばれます。
ELBとは
ELBにはいくつかの種類があります。
・ALB(Application Load Balancer)
HTTPまたはHTTPSのリクエストを負荷分散します。
・NLB(Network Load Balancer)
HTTP、HTTPS以外のリクエストを負荷分散します。
・CLB(Classic Load Balancer)
古いタイプのロードバランサーです。以前の構成との互換性のために機能としては残っていますが、新しく設定する場合にはALB、NLBを選択すれば問題ありません。
ELBの設定
今回は、ALBの設定方法を説明します。
作成するイメージは次のような感じです。(素人のイメージ)
手順としては大きく次の3Stepです。
①セキュリティグループの作成
ELB用のセキュリティグループを作成します。
②ターゲットグループの作成
ELBに管理される(ターゲットとされる)EC2サーバー群を1つのグループとして設定します。
③ロードバランサーの作成
ロードバランサーそのものを作成します。
ELB用のセキュリティグループの作成
セキュリティグループとは、AWSリソースに対して付与するファイアウォール設定です。
EC2をはじめとする大抵のAWSリソースには、セキュリティグループを付与すると思っておけばまずは良いのかなという理解です。(だいぶ乱暴です。)
ELBもEC2同様にセキュリティグループを付与することで、ELBに対するトラフィック、つまり許可する通信を定義します。
①EC2メニューから、セキュリティグループを選択し、セキュリティグループを作成を行います。
②セキュリティグループを作成します。
このセキュリティグループを使用するVPCを選択します。
次に、インバウンドルールを定義します。今回は、ELBを作成する予定のため、HTTP通信を選択します。そして、ソース、つまりどこからの通信を許可するか、については、すべての出所(0.0.0.0/0)から通信を許可します。
アウトバウンドのルールは作成不要とします。
③作成されたセキュリティグループを確認します。
ターゲットグループの作成
続いて、ターゲットグループを作成します。
ELBに直接、”このEC2サーバーを管理してね”という設定をするのではなく、一度管理したいEC2サーバーをグループとしてまとめておき、そのグループ(ターゲットグループ)を後ほど作成するELBそのもに与えるという作り方となります。
今回は、まずはじめにEC2サーバーを1つ含むターゲットグループを作成し、その後、ターゲットグループを編集する形でもう一つのEC2サーバーをターゲットグループに含めていきます。
①ターゲットグループを作成します。
②基本設定を行います。
③ターゲットグループを作成するVPCを指定します。
④ヘルスチェック設定を行います。
ヘルスチェックとは、ELBがターゲットグループに設定されたターゲット(インスタンス)が正常化どうかをチェックする機能です。
正常稼働しているインスタンスのみにリクエストを送信し、異常なインスタンスを検知します。
⑤ターゲットを登録します。
ターゲットグループに含めるEC2インスタンスを指定します。
⑥ターゲットグループの中身を確認し、ターゲットグループを作成します。
⑦作成されたターゲットグループを確認します。
⑧2代目のEC2インスタンスを指定します。
※先ほどまではEC2インスタンスが1台の状態で実施していましたが、EC2インスタンスをもう一台作成した形となります。
作成されたターゲットグループから、ターゲットを登録を行います。
⑨追加したいEC2インスタンスを指定します。
⑩ターゲットの中に、追加したいインスタンスが追加されていることを確認し、保留中のターゲットを登録を押します。
⑪ターゲットが増えたことを確認します。
ここまでで、ターゲットグループで管理したいEC2インスタンスを2台指定することに成功しました。
ロードバランサーの作成
続いて、ロードバランサー(ELB)本体を作成し、先ほど作成したターゲットグループをELBと関連付けしていきます。
①ロードバランサーを作成します。
EC2メニューからロードバランサーを選択し、ロードバランサーの作成を押します。
②今回作成するロードバランサーのタイプを指定します。
今回は、HTTP、HTTPS通信を負荷分散することができるALBを選択します。
③基本設定を行います。
ELBを作成すると、設定したELB名を含めDNS名が取得されます。
スキームによって、このDNS名にパブリックIPアドレスを紐づけるか、プライベートIPアドレスを紐づけるかの選択を行います。
インターネット向けの場合、ELBのDNSにはパブリックIPアドレスが付与されます。そのため、外部からインターネット経由でアクセスできます。今回はインターネットからの接続を想定しているため、インターネット向けを選択します。
内部向けの場合、ELBのDNSにはプライベートIPアドレスが付与されます。外部からのアクセスは受付ず、内部でのアクセスのみを許可します。
④ELBが管理するネットワークを指定します。
今回、インターネット向けのELBとなるため、インターネットに面しているサブネット、つまりパブリックサブネットを、このELBのネットワーク情報としてマッピングします。
これにより、このELBはここで指定したサブネット間での負荷分散をします。
⑤セキュリティグループを指定します。
先ほど作成しておいたELBに対するトラフィックを制御する、セキュリティグループを指定します。
⑥リスナーとルーティングを指定します。
ここでいよいよ、先ほど作成したターゲットグループを、このELBに割り当てます。
内容としては、HTTP通信80番ポートに来た通信については、転送先として「target-user1」のターゲットグループに転送するという設定を意味しています。
これで関連付けができました。
⑦その他の設定は特段変更なく、ロードバランサーの作成を行うことができます。
⑧作成されたELBを確認します。
DNS名を確認します。このDNS名を使って、ブラウザに、「http://xxxxxxx」を入力することで、このELBにアクセスすることができます。そして、このELBが転送先であるターゲットグループに含まれるEC2インスタンスに通信を転送し、EC2インスタンスに接続することができるようになります。
⑨接続してみます。
今回はWordpressをインストールしたEC2インスタンスを2台用意したうえで、ELBによる負荷分散を実施してみた例です。
実際に、ブラウザからHTTP通信を行うことで、接続確認できたことがわかります。
最後に
自分用の備忘録的な感じで、なんとなくの理解でまとめました。
ELBの概要がなんとなく理解できていたら嬉しいです。
以上です。
コメント