Help us understand the problem. What is going on with this article?

ELB切り替え時の動作確認 (hostsファイルを編集する)

これはなんですか

  • DNSのレコード登録が済んでないALBに対してリスナールールの動作確認をした時のメモです
  • hostファイルを編集して名前解決する方法です。

先にまとめ

  • hostsファイルはローカルで名前解決するためのもの
    • macOSのhostsファイルは /private/etc/hosts にある
    • Windowsの場合は C:\Windows\System32\drivers\etc\hosts にある
  • DNSレコード登録前にLBの動作確認がしたければ、hostsファイルにLBのIPと対象のHostを書いて名前解決の動作をエミュレートすればよい
    • HTTP接続するだけなら curl -H 'Host:example.com' 'http://xxx................' とした方が楽だが、HTTPS接続がしたければhostsを使う必要がある

hosts ファイルとは

ローカルで名前を解決してくれるやつです。以下ざっくり説明です。
https://wa3.i-3-i.info/word16969.html

mac環境のhostsファイルの置き場所は

/private/etc/hosts にあります。

Windows環境のhostsファイルの置き場所は

C:\Windows\System32\drivers\etc\hosts にあります。
http://onocom.net/blog/windows-hosts-file/#hostsWindows

やってみた

ALB の準備

  • (主にACMで) 証明書発行
  • ALB作成
    • ALBデフォルトのDNS名(Aレコード)を控えておく
  • ターゲットグループ作成&配下のターゲットへの紐づけ
  • リスナールール 設定
    • 証明書をリスナーに紐づけておく

デフォルトのDNS Nameにクエリする

ALBのIPを確認する

$ dig example-xxxxxxxxxxx.ap-northeast-1.elb.amazonaws.com +short
54.250.192.xx
52.196.88.yyy

hosts ファイルを編集する

$ cat /private/etc/hosts
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1       localhost
255.255.255.255 broadcasthost
::1             localhost

### (略)

### ALBのIPを登録
52.196.88.yyy example.com

curl する

IPがALBに向いていることを確認する

$ curl -I https://example.com/healthcheck.html -v
*   Trying 52.196.88.yyy...
* TCP_NODELAY set
* Connected to emd-dev.watashi-move.com (52.196.88.yyy) port 443 (#0)
...
< HTTP/1.1 200 OK
HTTP/1.1 200 OK
< Date: Mon, 07 Oct 2019 06:23:58 GMT
Date: Mon, 07 Oct 2019 06:23:58 GMT
...

ALBログを確認する

ログが残っていればok。

余談: digはシステムのDNSリゾルバを使わない

hostsを編集した後digしてもhostsに書いた内容が反映されなかったので調べたらこんな記事が。
https://qiita.com/kakipo/items/71f091ecd1fa27fde2ed

dig, nslookup, そして host コマンドは /etc/hosts を参照しない。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away