{"id":6192,"date":"2022-08-23T17:04:31","date_gmt":"2022-08-23T08:04:31","guid":{"rendered":"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=6192"},"modified":"2022-08-25T16:55:33","modified_gmt":"2022-08-25T07:55:33","slug":"%eb%8f%84%eb%a9%94%ec%9d%b8%ec%9c%bc%eb%a1%9c-nomad-client-cluster-%ec%a0%91%ec%86%8d","status":"publish","type":"post","link":"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=6192","title":{"rendered":"\ub3c4\uba54\uc778\uc73c\ub85c Nomad client cluster \uc811\uc18d"},"content":{"rendered":"<h1>\ub3c4\uba54\uc778\uc73c\ub85c Nomad client cluster \uc811\uc18d<\/h1>\n<p>AWS Elastic Load Balancing \uc11c\ube44\uc2a4\ub97c \uc774\uc6a9\ud574,<br \/>\n\ud560\ub2f9\ubc1b\uc740 \ub3c4\uba54\uc778\uc73c\ub85c,<br \/>\nNomad client cluster \uc5d0 \uc811\uc18d\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<h2>ELB \ub3c4\uba54\uc778\uc744 \uc774\uc6a9\ud55c \uc811\uc18d<\/h2>\n<ul>\n<li>\n<p>health check \ub97c \uc704\ud55c Job \uc744 \uc0dd\uc131\ud569\ub2c8\ub2e4.<\/p>\n<p><a href=\"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=6203\">\ucc38\uc870<\/a><\/p>\n<\/li>\n<li>\n<p>\ube0c\ub77c\uc6b0\uc800 -&gt; AWS ELB -&gt; Nomad client cluster<\/p>\n<\/li>\n<\/ul>\n<p>Nomad client cluster \ub97c \uc0dd\uc131\ud55c \ud3f4\ub354\uc5d0 \uc544\ub798 \ud30c\uc77c\uc744 \ucd94\uac00\ud569\ub2c8\ub2e4.<\/p>\n<pre><code class=\"language-bash\">vi elb.tf\n-----------------------------\nresource &quot;aws_elb&quot; &quot;nomad_client_elb&quot; {\n  name               = &quot;${var.stack_name}-nomad-client-elb&quot;\n  availability_zones = var.availability_zones\n  internal           = false\n  idle_timeout       = 360\n  security_groups    = [ aws_security_group.client_lb.id ]\n  instances          = aws_instance.nomad_client.*.id\n\n  lifecycle { create_before_destroy = true }\n\n  listener {\n    instance_port      = 2390              # \ub0b4\ubd80 \ud3ec\ud2b8\n    instance_protocol  = &quot;http&quot;\n    lb_port            = 2020              # \uc678\ubd80 \ud3ec\ud2b8\n    lb_protocol        = &quot;http&quot;\n  }\n\n#  access_logs {\n#    bucket  = &quot;weblog&quot;\n#    prefix  = &quot;www.myexample.com-&quot;\n#    enabled = true\n#  }\n\n  health_check {\n    healthy_threshold   = 8\n    unhealthy_threshold = 2\n    timeout             = 3\n    target              = &quot;HTTP:2390\/&quot;\n    interval            = 30\n  }\n}\n-----------------------------<\/code><\/pre>\n<pre><code class=\"language-bash\">vi outputs.tf\n-----------------------------\noutput &quot;elb_dns_name&quot; {\n    value = &quot;${aws_elb.nomad_client_elb.dns_name}&quot;\n}\n-----------------------------<\/code><\/pre>\n<pre><code class=\"language-bash\">vi sg.tf\n-----------------------------\n  # health check\n  ingress {\n    from_port   = 2390\n    to_port     = 2390\n    protocol    = &quot;tcp&quot;\n    cidr_blocks = var.allowlist_ip\n  }\n-----------------------------<\/code><\/pre>\n<p>ELB \uac00 \uc791\ub3d9\ud558\ub824\uba74 1-2\ubd84 \uc815\ub3c4\uc758 \uc2dc\uac04\uc774 \ud544\uc694\ud569\ub2c8\ub2e4.<\/p>\n<p><code>DNS_PROBE_FINISHED_NXDOMAIN<\/code> \ub77c\ub294 \uc624\ub958\ubb38\uad6c\uac00 \ub728\uba74<br \/>\n\uc544\uc9c1 DNS \uc124\uc815\uc774 \ubc18\uc601\uc548\ub41c \uc0c1\ud0dc\uc785\ub2c8\ub2e4.<\/p>\n<p>\uc811\uc18d\ud558\ub824\ub294 \uc11c\ubc84 \ud3ec\ud2b8\uc640 health check \ud3ec\ud2b8\ub294 public access \uac00 \ud5c8\uc6a9\ub418\uc57c \ud569\ub2c8\ub2e4.<\/p>\n<p>\ube0c\ub77c\uc6b0\uc800\ub97c \uc774\uc6a9\ud574 <a href=\"http:\/\/my-nomad-client-elb-19628203.ap-northeast-2.elb.amazonaws.com:2020\">http:\/\/my-nomad-client-elb-19628203.ap-northeast-2.elb.amazonaws.com:2020<\/a> \uc5d0 \uc811\uc18d\ud558\uba74 hello_world \uc5d0 \uc811\uc18d\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p><a href=\"https:\/\/www.skyer9.pe.kr\/wordpress\/wp-content\/uploads\/2022\/08\/2022-08-25-01.png\"><img decoding=\"async\" src=\"https:\/\/www.skyer9.pe.kr\/wordpress\/wp-content\/uploads\/2022\/08\/2022-08-25-01.png\" alt=\"\" \/><\/a><\/p>\n<h2>\ub85c\uadf8\ud655\uc778<\/h2>\n<p>http_x_forwarded_for \uc5d0 \uc811\uc18d\ud55c \ud074\ub77c\uc774\uc5b8\ud2b8 \uc544\uc774\ud53c\uac00 \uc81c\uacf5\ub429\ub2c8\ub2e4.<\/p>\n<pre><code class=\"language-bash\">ssh &lt;\ub178\ub9c8\ub4dc\ud074\ub77c\uc774\uc5b8\ud2b8\uc11c\ubc84&gt;\nsudo docker ps\nsudo docker logs &lt;CONTAINER ID&gt;\n\n172.31.25.58 - - [25\/Aug\/2022:07:53:26 +0000] &quot;GET \/ HTTP\/1.1&quot; 200 7231 &quot;-&quot; &quot;Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/104.0.0.0 Safari\/537.36&quot; &quot;183.101.XXX.XXX&quot;\n172.31.25.58 - - [25\/Aug\/2022:07:53:27 +0000] &quot;GET \/ HTTP\/1.1&quot; 200 7231 &quot;-&quot; &quot;Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/104.0.0.0 Safari\/537.36&quot; &quot;183.101.XXX.XXX&quot;\n172.31.25.58 - - [25\/Aug\/2022:07:53:27 +0000] &quot;GET \/health HTTP\/1.1&quot; 200 7237 &quot;-&quot; &quot;Consul Health Check&quot; &quot;-&quot;\n172.31.25.58 - - [25\/Aug\/2022:07:53:27 +0000] &quot;GET \/ HTTP\/1.1&quot; 200 7231 &quot;-&quot; &quot;Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/104.0.0.0 Safari\/537.36&quot; &quot;183.101.XXX.XXX&quot;\n172.31.25.58 - - [25\/Aug\/2022:07:53:27 +0000] &quot;GET \/ HTTP\/1.1&quot; 200 7231 &quot;-&quot; &quot;Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/104.0.0.0 Safari\/537.36&quot; &quot;183.101.XXX.XXX&quot;\n172.31.25.58 - - [25\/Aug\/2022:07:53:28 +0000] &quot;GET \/ HTTP\/1.1&quot; 200 7231 &quot;-&quot; &quot;Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/104.0.0.0 Safari\/537.36&quot; &quot;183.101.XXX.XXX&quot;\n172.31.25.58 - - [25\/Aug\/2022:07:53:28 +0000] &quot;GET \/ HTTP\/1.1&quot; 200 7231 &quot;-&quot; &quot;Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/104.0.0.0 Safari\/537.36&quot; &quot;183.101.XXX.XXX&quot;\n172.31.25.58 - - [25\/Aug\/2022:07:53:28 +0000] &quot;GET \/ HTTP\/1.1&quot; 200 7231 &quot;-&quot; &quot;Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/104.0.0.0 Safari\/537.36&quot; &quot;183.101.XXX.XXX&quot;\n172.31.25.58 - - [25\/Aug\/2022:07:53:28 +0000] &quot;GET \/ HTTP\/1.1&quot; 200 7231 &quot;-&quot; &quot;Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/104.0.0.0 Safari\/537.36&quot; &quot;183.101.XXX.XXX&quot;\n172.31.25.58 - - [25\/Aug\/2022:07:53:29 +0000] &quot;GET \/ HTTP\/1.1&quot; 200 7231 &quot;-&quot; &quot;Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/104.0.0.0 Safari\/537.36&quot; &quot;183.101.XXX.XXX&quot;\n172.31.25.58 - - [25\/Aug\/2022:07:53:29 +0000] &quot;GET \/ HTTP\/1.1&quot; 200 7231 &quot;-&quot; &quot;Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/104.0.0.0 Safari\/537.36&quot; &quot;183.101.XXX.XXX&quot;\n172.31.25.58 - - [25\/Aug\/2022:07:53:37 +0000] &quot;GET \/health HTTP\/1.1&quot; 200 7237 &quot;-&quot; &quot;Consul Health Check&quot; &quot;-&quot;<\/code><\/pre>\n<h2>\uc790\uccb4 \ub3c4\uba54\uc778\uc744 \uc774\uc6a9\ud55c \uc811\uc18d<\/h2>\n<ul>\n<li>\n<p>ELB \uc124\uc815\uc774 \ub05d\ub09c \uc774\ud6c4\uc5d0 \uc544\ub798 \uc124\uc815\uc744 \ucd94\uac00\ud569\ub2c8\ub2e4.<\/p>\n<\/li>\n<li>\n<p>\ub3c4\uba54\uc778\uc740 Route 53 \uc5d0 \uc758\ud574 \uad00\ub9ac\ub418\uace0 \uc788\uc5b4\uc57c \ud569\ub2c8\ub2e4.<\/p>\n<\/li>\n<li>\n<p>\ube0c\ub77c\uc6b0\uc800 -&gt; \uc790\uccb4\ub3c4\uba54\uc778(Route 53) -&gt; AWS ELB -&gt; Nomad client cluster<\/p>\n<\/li>\n<li>\n<p>https \uc778\uc99d\uc11c \uc0dd\uc131 : <a href=\"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=6222\">\uc5ec\uae30<\/a> \ub97c \ucc38\uc870\ud574\uc11c \uc778\uc99d\uc11c\ub97c \uc0dd\uc131\ud569\ub2c8\ub2e4.<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"language-bash\">vi domain.tf\n-----------------------------\ndata &quot;aws_route53_zone&quot; &quot;skyer9_pe_kr_zone&quot; {\n  name = &quot;skyer9.pe.kr&quot;\n}\n\nresource &quot;aws_route53_record&quot; &quot;nomad_client&quot; {\n  zone_id = data.aws_route53_zone.skyer9_pe_kr_zone.zone_id\n  name    = &quot;nomad-client.skyer9.pe.kr&quot;\n  type    = &quot;A&quot;\n\n  alias {\n    name                   = aws_elb.nomad_client_elb.dns_name\n    zone_id                = aws_elb.nomad_client_elb.zone_id\n    evaluate_target_health = true\n  }\n}\n-----------------------------<\/code><\/pre>\n<pre><code class=\"language-bash\">vi acm.tf\n-----------------------------\ndata &quot;aws_acm_certificate&quot; &quot;cert_nomad_client_skyer9_pe_kr&quot; {\n  domain = &quot;nomad-client.skyer9.pe.kr&quot;\n}\n-----------------------------<\/code><\/pre>\n<pre><code class=\"language-bash\">vi elb.tf\n-----------------------------\nresource &quot;aws_elb&quot; &quot;nomad_client_elb&quot; {\n  # ......\n  listener {\n    instance_port      = 2390              # \ub0b4\ubd80 \ud3ec\ud2b8\n    instance_protocol  = &quot;http&quot;\n    lb_port            = 2020              # \uc678\ubd80 \ud3ec\ud2b8\n    lb_protocol        = &quot;https&quot;\n    ssl_certificate_id = data.aws_acm_certificate.cert_nomad_client_skyer9_pe_kr.arn\n  }\n  # ......\n}\n-----------------------------<\/code><\/pre>\n<h2>\ub85c\uadf8\ud655\uc778<\/h2>\n<p>http_x_forwarded_for \uc5d0 \uc811\uc18d\ud55c \ud074\ub77c\uc774\uc5b8\ud2b8 \uc544\uc774\ud53c\uac00 \uc81c\uacf5\ub429\ub2c8\ub2e4.<\/p>\n<pre><code class=\"language-bash\">ssh &lt;\ub178\ub9c8\ub4dc\ud074\ub77c\uc774\uc5b8\ud2b8\uc11c\ubc84&gt;\nsudo docker ps\nsudo docker logs &lt;CONTAINER ID&gt;\n\n172.31.25.58 - - [25\/Aug\/2022:07:38:07 +0000] &quot;GET \/health HTTP\/1.1&quot; 200 7237 &quot;-&quot; &quot;Consul Health Check&quot; &quot;-&quot;\n172.31.25.58 - - [25\/Aug\/2022:07:38:12 +0000] &quot;GET \/ HTTP\/1.1&quot; 200 7231 &quot;-&quot; &quot;ELB-HealthChecker\/1.0&quot; &quot;172.31.26.97&quot;\n172.31.25.58 - - [25\/Aug\/2022:07:38:17 +0000] &quot;GET \/health HTTP\/1.1&quot; 200 7237 &quot;-&quot; &quot;Consul Health Check&quot; &quot;-&quot;\n172.31.25.58 - - [25\/Aug\/2022:07:38:20 +0000] &quot;GET \/ HTTP\/1.1&quot; 200 7231 &quot;-&quot; &quot;Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/104.0.0.0 Safari\/537.36&quot; &quot;183.101.XXX.XXX, 172.31.26.97&quot;\n172.31.25.58 - - [25\/Aug\/2022:07:38:21 +0000] &quot;GET \/ HTTP\/1.1&quot; 200 7231 &quot;-&quot; &quot;Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/104.0.0.0 Safari\/537.36&quot; &quot;183.101.XXX.XXX, 172.31.26.97&quot;\n172.31.25.58 - - [25\/Aug\/2022:07:38:21 +0000] &quot;GET \/ HTTP\/1.1&quot; 200 7231 &quot;-&quot; &quot;Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/104.0.0.0 Safari\/537.36&quot; &quot;183.101.XXX.XXX, 172.31.26.97&quot;\n172.31.25.58 - - [25\/Aug\/2022:07:38:22 +0000] &quot;GET \/ HTTP\/1.1&quot; 200 7231 &quot;-&quot; &quot;Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/104.0.0.0 Safari\/537.36&quot; &quot;183.101.XXX.XXX, 172.31.26.97&quot;\n172.31.25.58 - - [25\/Aug\/2022:07:38:22 +0000] &quot;GET \/ HTTP\/1.1&quot; 200 7231 &quot;-&quot; &quot;Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/104.0.0.0 Safari\/537.36&quot; &quot;183.101.XXX.XXX, 172.31.26.97&quot;\n172.31.25.58 - - [25\/Aug\/2022:07:38:22 +0000] &quot;GET \/ HTTP\/1.1&quot; 200 7231 &quot;-&quot; &quot;ELB-HealthChecker\/1.0&quot; &quot;172.31.43.57&quot;\n172.31.25.58 - - [25\/Aug\/2022:07:38:22 +0000] &quot;GET \/ HTTP\/1.1&quot; 200 7231 &quot;-&quot; &quot;Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/104.0.0.0 Safari\/537.36&quot; &quot;183.101.XXX.XXX, 172.31.26.97&quot;\n172.31.25.58 - - [25\/Aug\/2022:07:38:22 +0000] &quot;GET \/ HTTP\/1.1&quot; 200 7231 &quot;-&quot; &quot;Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/104.0.0.0 Safari\/537.36&quot; &quot;183.101.XXX.XXX, 172.31.26.97&quot;\n172.31.25.58 - - [25\/Aug\/2022:07:38:23 +0000] &quot;GET \/ HTTP\/1.1&quot; 200 7231 &quot;-&quot; &quot;Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/104.0.0.0 Safari\/537.36&quot; &quot;183.101.XXX.XXX, 172.31.26.97&quot;\n172.31.25.58 - - [25\/Aug\/2022:07:38:23 +0000] &quot;GET \/ HTTP\/1.1&quot; 200 7231 &quot;-&quot; &quot;Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/104.0.0.0 Safari\/537.36&quot; &quot;183.101.XXX.XXX, 172.31.26.97&quot;\n172.31.25.58 - - [25\/Aug\/2022:07:38:27 +0000] &quot;GET \/health HTTP\/1.1&quot; 200 7237 &quot;-&quot; &quot;Consul Health Check&quot; &quot;-&quot;<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\ub3c4\uba54\uc778\uc73c\ub85c Nomad client cluster \uc811\uc18d AWS Elastic Load Balancing \uc11c\ube44\uc2a4\ub97c \uc774\uc6a9\ud574, \ud560\ub2f9\ubc1b\uc740 \ub3c4\uba54\uc778\uc73c\ub85c, Nomad client cluster \uc5d0 \uc811\uc18d\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. ELB \ub3c4\uba54\uc778\uc744 \uc774\uc6a9\ud55c \uc811\uc18d health check \ub97c \uc704\ud55c Job \uc744 \uc0dd\uc131\ud569\ub2c8\ub2e4. \ucc38\uc870 \ube0c\ub77c\uc6b0\uc800 -&gt; AWS ELB -&gt; Nomad client cluster Nomad client cluster \ub97c \uc0dd\uc131\ud55c \ud3f4\ub354\uc5d0 \uc544\ub798 \ud30c\uc77c\uc744 \ucd94\uac00\ud569\ub2c8\ub2e4. vi elb.tf &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; resource &quot;aws_elb&quot; &quot;nomad_client_elb&quot;\u2026 <span class=\"read-more\"><a href=\"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=6192\">Read More &raquo;<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[31],"tags":[],"class_list":["post-6192","post","type-post","status-publish","format-standard","hentry","category-nomad"],"_links":{"self":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/6192","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=6192"}],"version-history":[{"count":21,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/6192\/revisions"}],"predecessor-version":[{"id":6232,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/6192\/revisions\/6232"}],"wp:attachment":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=6192"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=6192"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=6192"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}