AWS Elastic Beanstalk Django アプリケーション (7) 静的IPアドレスの設定とドメインの取得とDNSの設定
- (1) Django起動まで
- (2) (TIPS) SSH、RDSへの接続
- (3) (TIPS) ログの確認とデプロイ結果の確認
- (4) いくつかのトラブルシュート
- (5) アプリケーションの作成
- (6) createadmin スクリプトの実行のトラブルシュート
- (7) 静的IPアドレスの設定とドメインの取得とDNSの設定
- AWS Elastic Beanstalk RDS の文字コードをutf-8に設定しなおす
- Djangoでバッチ処理を行う(AWS Elasticbeanstalk)
ドメインを取得し、静的なグローバルIPを設定し、DNSに登録するまで。
1.ドメインを登録
1.1 Route 53 でドメイン入手
ドメインも AWSのRoute53というサービスから登録することができる。
AWS のサービスリストから、Route53 を選んで、ドメイン名を検索して適当に(?)購入してみた。
有効になるまで、1日くらいかかった気がする。
他のドメイン登録サービスで取得したドメインでも、後述するDNSを設定すれば利用できるはず。
2.静的IDアドレスの設定
2.1 EC2のインスタンスに 静的IP(Elastic IP)アドレスを割り当てる
EC2 インスタンスにElastic IPアドレスを割り当てる。Elastic IP は、静的なIPアドレスを、EC2インスタンスへマッピングする仕組み。EC2は起動時に動的にグローバルアドレスが付与されるが、EIPを使用して、固定IPをインスタンスへマッピングすることができる。(リソースを有効活用するため、インスタンスと関連付けられていないEIPには、料金が発生するようだ)。
EC2の管理画面から、Elastic IPs を選択して、Allocate New Addressを行う。
3.DNSの設定
DNSの設定も、Route53 サービスで行う。
3.1 ドメインとIPアドレスの紐づけ(Aレコードの登録)
Route53 のTopページに行くと、一番右の丸印に”1″となっていて、ドメインが有効化されたことがわかる。ドメインに、上記で設定した、IPアドレス(Elastic IP)を紐づけよう。
一番左側の丸印のHosted Zone のリンクを踏むと、DNSの設定画面に入る。Create Hosted Zone ボタンを押す。
ドメイン名の入力を求められるので、上記で取得したドメインを入力し、Create
これで、ホストするゾーンの設定が行われた。Go to Record Set ボタンを押す。
ゾーンの権威ネームサーバー(NS)と、権威の開始(SOA) レコードがデフォルトで登録されている(図左側ペイン) ので、に、Create Record Set ボタンを押下し、出現した右側のペインで、Nameをブランクのままとし、Type に IP v4(A)レコードを選択し、Valueに、上記静的IP(EIPs)アドレスを記述、Create ボタンで作成する。
追加でサブドメイン(example.comに対して、www.example.com)を構成する場合など、ここから、Nameに値を設定(たとえば、www)Aレコードを追加すればよい。
ここまでの作業で、Hosted Zone に 1が設定された。
Health Check が 0 のままだが、死活監視をするには料金が発生するようなので、今のところ設定せずにおく。
以上で、EC2インスタンスと静的IPアドレスとのマッピング、静的IPアドレスとドメイン名とのマッピングは完了。
4.補足
4.1 Hosted ゾーンを削除して作り直すとDNSの設定が有効にならない
一旦、Hosted ゾーンを削除して再作成すると、ネームサーバーが上記3.1のように設定されるのだが、当初ドメインに設定されているネームサーバと違うものに設定されてしまう。
Hosted ゾーンで設定されたネームサーバーをメモし、ダッシュボードの Registered Domains から、登録したドメインを選択
Name Servers から、Add/Edit Name Servers を選択し、値を設定しなおす。
4.2 DNSのAレコードにロードバランサーを設定する
Hosted ゾーンの レコードセットの設定で、A レコードの Alias を Yes とすると、Alias Target にロードバランサーを設定できるようになる。