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

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

More than 1 year has passed since last update.

これはなんですか

  • 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 を参照しない。

Hikosaburou
AWSとGCPの話題が多いです。
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