AWSのリソースにドメインを設定する

別にIP直打ちでもamazon-xxxでもいいですが、せっかくウェブサイトを作るならドメインをつけてみたい。
知識ゼロからググりつつやってみる。

ドメインレジストラでドメインを取得する

解説で一番見かけたお名前.comを利用することにした。
とりたいドメインで検索したら利用可能なトップドメインが出てきたので選んで決定。
ドメイン保有者の登録をお名前.com名義でやってくれるサービスの「Whois情報公開代行」を忘れないようにする。
支払いはクレジットカードかコンビニ振込みか銀行振り込みが選択できる。
とりあえず3年分で4000円買ってみた。

AWS Route53でホストゾーンを作成する

「DNS Management」から「Create Hosted Zone」を選択する。
さっき取得したドメインとコメントを入力して作成するとNS4つとSOA1つが作成されました。
NSは今回の目的のネームサーバ。
SOAは権威DNSサーバが最初に見に行く設定がある場所が書かれているとか何とか。
基本的に触っちゃいけない部分みたいで今回は関係なし。

ドメインレジストラでネームサーバを登録

  1. お名前.comに戻ってドメインNaviにログイン(IDはメールに記載、パスは自分で設定したもの)。
  2. Navi Topから作ったドメインの「ネームサーバー」列の「変更する」ボタンを押す。
  3. 「ほかのネームサーバを利用」タブを開くと5つの入力欄があるので上からNSを4つ入力する
  4. 登録

AWS Route53でレコードを作成する

  1. 「Create Record Set」を押す
  2. サブドメインとレコードタイプを選択して保存

感想とかメモとか

  • ごにょごにょしないと反映が遅いとか見かけたけど、別にそんなことはなかった

  • S3を使うときの注意

    • バケットポリシーで匿名ユーザの読み込みを許可する
      • 設定画面にサンプル集のリンクがあるのでそこからコピペ
    • ドメイン名とバケット名が一致する必要がある
      • aaa.bbb.comみたいなバケット名にする
  • ec2を使うとき

    • port80を設定する

    • npm(node)をsudoできるようにする

      • which,whereisでインストール先を確認
      • sudo ln -s /PATH/TO/INSTALL/bin/node /usr/bin/node
      • sudo ln -s /PATH/TO/INSTALL/bin/npm /usr/bin/npm
    • ec2上にグループとユーザを作る

      • sudo groupadd node
      • sudo useradd -g node -m -s /bin/false node
    • listenのコールバック関数でさっき作ったユーザになる(rootのままでいないため)

      server.listen(config.port, config.ip, function() {
        if (process.getuid() === 0) {
        process.setgid('node');
        process.setuid('node');
        }
        console.log('Express server listening on %d, in %s mode', config.port, app.get('env'));
      });
      
    • デフォルトのユーザディレクトリ下に置かない

      • /home/ec2-user/www/...なんてところに置いたら作ったユーザでアクセスできない