{"componentChunkName":"component---src-templates-post-template-js","path":"/posts/aws-alb-concepts","result":{"data":{"markdownRemark":{"id":"f3a590d6-0d98-5c9b-aac7-6bc530108d6d","html":"<h2 id=\"はじめに\" style=\"position:relative;\"><a href=\"#%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB\" aria-label=\"はじめに permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>はじめに</h2>\n<p>AWS ALB を使おうとすると、リスナー、ターゲットグループといった設定が登場し、どの設定が何を意味しているのか理解するのが結構たいへんです。</p>\n<p>この記事では、そんな ALB の主な設定をまとめます。</p>\n<h2 id=\"全体像\" style=\"position:relative;\"><a href=\"#%E5%85%A8%E4%BD%93%E5%83%8F\" aria-label=\"全体像 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>全体像</h2>\n<p>ALB の主な設定の全体像は以下の通りです。</p>\n<p><img src=\"/media/AWS_ALB.png\" alt=\"AWS_ALB\"></p>\n<p>以下、順に説明していきます。</p>\n<h2 id=\"リスナー\" style=\"position:relative;\"><a href=\"#%E3%83%AA%E3%82%B9%E3%83%8A%E3%83%BC\" aria-label=\"リスナー permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>リスナー</h2>\n<p><img src=\"/media/AWS_ALB-listener.png\" alt=\"AWS_ALB-listener\"></p>\n<p>リスナーは、外部からアクセスするプロトコルやポートの設定です。</p>\n<p>ロードバランサに対して、複数のリスナーを設定することができます。</p>\n<p>ALB は HTTP と HTTPS に対応しているため、その両方か片方をリスナーとして登録することになります。</p>\n<h2 id=\"リスナールール・条件・アクション\" style=\"position:relative;\"><a href=\"#%E3%83%AA%E3%82%B9%E3%83%8A%E3%83%BC%E3%83%AB%E3%83%BC%E3%83%AB%E3%83%BB%E6%9D%A1%E4%BB%B6%E3%83%BB%E3%82%A2%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3\" aria-label=\"リスナールール・条件・アクション permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>リスナールール・条件・アクション</h2>\n<p><img src=\"/media/AWS_ALB-listener-rule.png\" alt=\"AWS_ALB-listener-rule\"></p>\n<p>リスナーに対して、複数のリスナールールを紐付けることができます。</p>\n<p>リスナールールには優先順位の設定があり、順に条件を満たすか判定されます。</p>\n<p>条件を満たすと、そのリスナーに対応するアクションが呼び出されます。</p>\n<h2 id=\"アクションの種類\" style=\"position:relative;\"><a href=\"#%E3%82%A2%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE%E7%A8%AE%E9%A1%9E\" aria-label=\"アクションの種類 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>アクションの種類</h2>\n<p><img src=\"/media/AWS_ALB-action.png\" alt=\"AWS_ALB-action\"></p>\n<p>アクションは 2020/7/8 時点で上図の 5 種類があります。</p>\n<p>メンテナンス用の固定レスポンスを返す設定や、HTTP を HTTPS にリダイレクトする設定もできます。</p>\n<p>アクションがフォワードの場合、フォワード先として指定されたターゲットグループが呼び出されます。</p>\n<h2 id=\"ターゲットグループ\" style=\"position:relative;\"><a href=\"#%E3%82%BF%E3%83%BC%E3%82%B2%E3%83%83%E3%83%88%E3%82%B0%E3%83%AB%E3%83%BC%E3%83%97\" aria-label=\"ターゲットグループ permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>ターゲットグループ</h2>\n<p><img src=\"/media/AWS_ALB-target-group.png\" alt=\"AWS_ALB-target-group\"></p>\n<p>ターゲットグループは、フォワード先として指定する、ターゲットを取りまとめたものです。</p>\n<p>つまり、ロードバランシングする対象群のことです。</p>\n<p>ターゲットに対してどのようにリクエストを振り分けるかというルーティングのアルゴリズムなどが設定可能です。</p>\n<p>また、ターゲットに接続するポートもここで設定できますが、ターゲットごとに上書きすることが可能です。</p>\n<h2 id=\"ターゲット\" style=\"position:relative;\"><a href=\"#%E3%82%BF%E3%83%BC%E3%82%B2%E3%83%83%E3%83%88\" aria-label=\"ターゲット permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>ターゲット</h2>\n<p><img src=\"/media/AWS_ALB-target.png\" alt=\"AWS_ALB-target\"></p>\n<p>最終的な接続先がターゲットです。</p>\n<p>接続先は、ターゲットグループでターゲットの種類として設定した、インスタンス・IP・Lambda のどれかに限られます。</p>\n<p>EC2 の AutoScaling グループや ECS のサービスに接続する場合は、AutoScaling グループや ECS のサービス側の設定でターゲットグループと紐付けることになります。</p>\n<p>すると、ターゲットグループ側では、その AutoScaling グループや ECS サービスに紐付くインスタンス・コンテナがターゲットとして指定されるようになります。</p>\n<h2 id=\"おわりに\" style=\"position:relative;\"><a href=\"#%E3%81%8A%E3%82%8F%E3%82%8A%E3%81%AB\" aria-label=\"おわりに permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>おわりに</h2>\n<p>ALB の設定は入口から出口までが非常に遠く、一度設定したことがあっても迷子になりやすいです。</p>\n<p>でも実は</p>\n<ol>\n<li>ロードバランサー</li>\n<li>リスナー</li>\n<li>リスナールール</li>\n<li>アクション</li>\n<li>ターゲットグループ</li>\n<li>ターゲット</li>\n</ol>\n<p>という流れでリクエストが進んでいくようなイメージを持つことができれば、あとはどこが何の設定だったか確認するだけです。</p>\n<p>この記事が ALB を初めてさわる方の理解の助けになれば幸いです。</p>\n<h2 id=\"参考\" style=\"position:relative;\"><a href=\"#%E5%8F%82%E8%80%83\" aria-label=\"参考 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>参考</h2>\n<p>Web</p>\n<ul>\n<li><a href=\"https://docs.aws.amazon.com/ja_jp/elasticloadbalancing/latest/application/introduction.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">公式ドキュメント</a></li>\n</ul>","fields":{"slug":"/posts/aws-alb-concepts","tagSlugs":["/tag/aws/","/tag/elb/"],"autoRecommendPosts":["aws-copilot-v0-1-0","ecs-on-fargate-deployment-tools-ver-2022","how-to-study-aws-basics","4295010650"]},"frontmatter":{"date":"2020-07-07T15:40:43.727Z","description":"AWS ALB を使おうとすると、リスナー、ターゲットグループといった設定が登場し、どの設定が何を意味しているのか理解するのが結構たいへんです。この記事では、そんな ALB の主な設定をまとめます。","tags":["aws","elb"],"title":"AWS ALB の設定方法は？リスナー？ターゲットグループ？","socialImage":null,"recommendPosts":["https://www.kanzennirikaisita.com/posts/how-to-study-aws-basics","https://www.kanzennirikaisita.com/posts/aws-saa-c02-books","https://www.kanzennirikaisita.com/posts/software-developer-books-index"]}}},"pageContext":{"slug":"/posts/aws-alb-concepts"}},"staticQueryHashes":["251939775","3942705351","401334301"]}