くりーむわーかー

プログラムとか。作ってて ・試しててハマった事など。誰かのお役に立てば幸いかと。 その他、いろいろエトセトラ。。。

DNS

AWSでDockerのビルドが上手くいかないやつ

Dockerfileで例えばapt updateとかしてると下記エラー。

Err:1 http://security.debian.org/debian-security buster/updates InRelease
  Temporary failure resolving 'security.debian.org'

どうも、名前解決が出来てない。

理由は色々あると思うのですが、ホスト側のnameserverがdocker側のプライベートIP的なのと

似た感じになってるとdockerから見れて無くてエラーになるっぽい。

この場合はdockerのdns指定して立ち上げるようにする。

dnsはGoogleが公開してるDNSサーバ(8.8.8.8)使う事が多い模様

コマンドでやる場合

docker run --dns 8.8.8.8 -it busybox nslookup www.example.com

docker-compose

dns: 8.8.8.8

ただ、docker-composeはどうもうまくいかなかった。

docker-composeの場合、ホスト側の 「/etc/resolv.conf」がそのまま取り込まれてるっぽいのですが、

上記のdnsの指定が効かないんですよね。。。

何でなんだろ。

dockerのサービスに登録しちゃう場合

下記ファイルを編集(無かったら作成)

sudo vi /etc/docker/daemon.json

{
    "dns": ["8.8.8.8"]
}

# あとリスタート
sudo systemctl restart docker

※多分このやり方はあまりお勧めじゃないように思うけど、compose側の設定効かない時はこれでいくしかなさそう。


参考

AWS EC2でドメイン取得してHTTPSのサーバ作る流れ

何となく、とりあえずやりたい場合の全体的な手順ってあまり見ないので、

とりあえずやるって場合で肝のところ。


構成

だいたいこんな感じ。

sample01

流れ

  • ドメイン取得とDNS(Route 53)
  • インスタンス(EC2)
  • LB作る(証明書も)
  • DNS側にLBのAレコードを作る
  • セキュリティーグループとかの設定

ドメイン取得とDNS(Route 53)

Route53のサービスからドメイン登録選んで色々入力。

個人の管理者なら画像くらいの情報で。ここはちゃんとした情報を入力しないとダメ。

ドメイン名は結構取られてる事が多いと思うので頑張ってひねり出す。

個人的な利用なら.netでいいかなと思いました。

sample00

sample00-1

sample00-2

昔は個別にDNSやらなきゃいけなかったみたいですが、今はここで登録すれば

DNS側も勝手に登録してくれる。↓のところで確認。

sample05

インスタンス直にEIPとか関連付けてそっちにドメインつけたい場合は、ここのDNSに該当インスタンスへのAレコードを登録してあげる。(今回はLB側に付けるのでここまででOK)

インスタンス(EC2)

いったんインスタンス作る。インスタンスは適当に。Webサーバなら何でもいい。

LB作る(証明書も)

sample06

sample07

sample08

※ HTTPSを選んでおかないと、次のステップでその辺の設定が出てこない。

sample09

ACMを選択して、ACMで新しく証明書作るのリンクから証明書作りに行く。

sample10

sample11

sample12

検証中の状態になったら、上記の詳細を開いて、ここからRoute53へCNAMEレコードを追加する。手でやってもいいかもだけど、何か上手くいかなかったのでここからやった方が無難。

登録されたかどうかは、Route53で該当のホストゾーンの中のレコードを見る。CNAMEが追加されてるはず。↓

sample13

証明書の検証自体は、数分~10数分くらいで終わるはず。終わったら下記の発行済み状態になる。

sample14

↑まで終わったら、元のLBの登録の画面に戻って、「証明書の名前」のところに今のモノを入れる。

あとは適当にLBの設定をして作る。

DNS側にLBのAレコードを作る

LB作り終わったら、DNSにLBの情報を入れてあげる。

sample20

sample21

sample22

↑。対象のLBを選択。

セキュリティーグループとかの設定

あと、セキュリティというかACLの設定。

Webサーバ側にLBのセキュリティグループを追加してあげないとダメ。

問合せ