見出し画像

ネットワーク苦手エンジニアが[多少]克服できた方法

こんにちは。ネットワーク苦手エンジニアのt.g.です。

エンジニアやっていて、ネットワーク系って難しいと思いませんか。
サーバ、OS、スイッチくらいなら自分の影響範囲だけでいじれるので気楽ですが(本番環境を除く)、ラックを超えてインターネットにつながるとどんな影響でるか不安で及び腰になってしまいます。
そのため、DNS, BGP,ドメインなどには自信がありませんでした。関連してSSL証明書の設定もおっかなびっくりな状態でした。

これではいかんということで、
できるだけ安く自分用ドメインを取得し、ネットワーク(DNS, ドメイン)を弄り倒した結果、多少苦手意識を克服できた話をしようと思います


準備1 - ドメインを取得

安かったのでスタードメインで取得。
Nameserver の変更ができれば他でもOK

準備2 - AWS Route53 で DNS 登録

ここが本番。
AWS ドキュメント に従って、DNSの制御をAWS Route53に移します。
AWS リソースの作成を考えると、レジストラの管理画面を使うよりも柔軟な設定方法が試せます(CloudFormationやTerraformなど)

  1. AWS Route53 で Public hosted zone を作成

    ドメイン名は先程取得したものと同一に

  2. レジストラの Nameserver を Route53のものに変更
    StarDomain のドメイン管理メニュー -> ネームサーバの確認・変更
 ->
    ネームサーバ欄に Route53 hosted zone の Name servers (4個)を入力

Note: GCPでも同様の手順を CloudDNS に設定すれば同じことが可能です

Note: 料金について
  ホストゾーン: 0.25$/月/個
  クエリーはほとんど使わないのでまず無料

環境確認

Route53で適当なTXTレコードを追加し、ローカルPCからdig。
反映までちょっと時間がかかるかもしれません

$ dig <mytest.MYDOMAIN> TXT

; <<>> DiG 9.10.6 <<>> <mytest.MYDOMAIN> TXT
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46249
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;<mytest.MYDOMAIN>.		IN	TXT

;; ANSWER SECTION:
<mytest.MYDOMAIN>.	300	IN	TXT	"testAWS"


色々試す

こっちこそ本番
自分の好きにできるドメインとDNS が手に入ったので、より本番に即した設定でスクラップ&ビルドを好きなだけ試せるようになりました。
さしあたって以下をやってみました

  • AWS ACM で SSL 証明書を作成

    • オレオレでない正規な証明書を取得

    • ワイルドカード, マルチドメイン(SAN) 証明書などを試せる

    • ACM なら無料

  • ドメインをサーバにアサイン

    • ALB にアサイン (A または Alias)

    • CloudFront にアサイン (CNAME)

    • API Gatewayにアサイン (Alias または CNAME)

  • メールサービス(Amazon SES)の作成

    • TXTレコード

  • (そのうち) Global Accelerator も


まとめ

もっと早くやっておけばよかったです。
おっかなびっくりのSSL証明書作成や、各種DNSレコードの種類もやっと腹落ちできるようになりました。

今回は以下の設定を実施。色々調べながらで1時間程度ですみました

- ドメイン取得
- Route53 へ Nameserver 移行

その結果、以下の領域をモノにすることができました

- ドメイン, DNS
- SSL証明書 + 各種サーバ設定

やはり「習うより慣れろ」は強力ですね。クラウドのおかげで環境を瞬時に作れるのも便利ですし。
またお手軽環境で試すことがありましたら共有しようと思います。