now.shで独自ドメイン・サブドメイン設定する方法と公開URLの挙動まとめ
公開日: 2019.6.19
サーバーレスなPassサービス「now.sh」で自身の所有する独自のドメイン・サブドメインを設定する方法と、ちょっとだけ複雑な、デプロイごとに異なる公開のされ方をまとめました。
事前準備:ドメインの設定をする
まずは、ドメイン周りの設定をしておきます。
now.shにドメインを認証する
最初に、now.shにドメインを認証させます。
管理画面から行うこともできますし、コマンドラインから追加することもできます。
now domains add XXX.com
ドメインの認証方法は、
- ドメインのネームサーバーをnow.shのものにする
- DNSのTXTレコードに認証コードを追加する
の2つの方法があります。
認証を設定すると、now.sh側で認証を行って登録メールアドレス宛に認証された旨を伝えるメールが送信されます。
手動で認証する場合は、管理画面のドメイン一覧から「Verify」をクリックするか、
now domain verify XXX.com
でコマンドラインから認証させることもできます。
ドメイン一覧の「VERIFIED」がYESになればOKです。
now.jsonに設定
続いて、now.shのプロジェクトにドメインを設定します。
now.jsonに、「alias」ブロックを追加することで、公開ドメインを追加できます。
{
"alias": "hoge.XXX.com"
}
同じサーバーレスサービスでもNetlifyはドメイン認証するだけで、自動的に公開URLが独自ドメインに変更されますが、now.shでは「あくまで設定されるだけ」であることに注意しましょう。
DNSにCNAMEを追加
独自ドメインでnow.shのプロジェクトを運用する場合は、ドメインのDNSレコードにnow.shのURLへのCNAME設定を追加する必要があります。
ドメイン or サブドメイン CNAME alias.zeit.co
これで、指定したドメインでnow.shのプロジェクトを表示できます。
独自ドメインでnow.shに公開する
ドメインの設定が済めば、あとはnow.shにプロジェクトをデプロイするだけです。ただし、ここがnow.shのユニークなところで、デプロイ方法によって挙動が違います。
ここからは、それぞれの挙動を見ていきます。
nowコマンドでデプロイした場合
コマンドラインから
now
でデプロイした場合は、now.shから付与された「プロジェク名.ユーザー名.now.sh」アドレスにデプロイされます。先程、now.jsonのaliasで設定したドメインにはデプロイされません。
独自ドメインに適応したい場合は、管理画面からデプロイを指定して「CREATE ALIAS」で設定します。ここは、自由にドメインを指定できるので、ドメインが認証されていれば、自由にドメイン・サブドメインを設定できます。
nowコマンドに「--target production」を付与した場合
コマンドラインからのデプロイのする際に、
now --target production
と「 --target production」を付与すると、now.jsonのaliasに設定したドメインと、先程の「プロジェク名.ユーザー名.now.sh」アドレスの両方にデプロイされます。
いきなり本番公開したい場合は、こちらが使います。
gitレポジトリにPUSHした場合
そしてもう一つ、Githubなどのリモートレポジトリに開発環境からPUSHした場合です。
Netlifyなどでは、指定したブランチにPUSHすると、自動で最新版をPULLしてデプロイして独自ドメインに公開しますが、now.shの場合は、「プロジェク名-git-master.ユーザー名.now.sh」というアドレスにデプロイされます。now.jsonのaliasで設定したドメインにはデプロイされません。
こちらも管理画面からドメインaliasを設定することができます。
デプロイごとのURLも生成される
ここまでは、独自ドメイン、自動付与URLという固定のURLにデプロイされる挙動を見てきましたが、実はnow.shではデプロイごとにURLが生成されて、デプロイごとにアプリの状況を確認できます。
URLは、「プロジェク名-乱数.now.sh」となっていて、管理画面から一覧で確認ができます。
こちらも管理画面からドメインaliasを設定することができるので、何かエラーが起こった時に、「公開するには、一旦ここのデプロイのもので!」ということも出来て、とても便利です。
now.shのデプロイとURLの挙動まとめ
それぞれのデプロイ方法と、公開されるURLの挙動を表にしてみました。
URL | nowコマンド | now --target production | git push |
---|---|---|---|
プロジェク名-乱数.now.sh | ○ | ○ | ○ |
プロジェク名-master.ユーザー名.now.sh | ☓ | ☓ | ○ |
プロジェク名.ユーザー名.now.sh | ○ | ○ | X |
alisで設定したドメイン | X | ○ | X |
独自ドメインでの公開という点で言えば、「now --target production」でのデプロイ以外は、すべて手動での対策が必要ということです。
逆に言えば、デプロイごとにしっかりと公開テストを行うことができるということです。
now.shで独自ドメインを設定する方法、デプロイの挙動を見てきました。
ブログなどの静的サイトを公開する前提のNetlifyと違って、node.jsなどの複雑な動的プログラムも公開できるnow.shは、公開の挙動もだいぶ違うことがわかります。
APIなどの複雑なプログラムを公開するケースでは、公開前に事前検証をしたい場合も多いので、now.shのように「いきなり本番にいかない」というのは、かなり助かります。
逆に、ブログのように「すぐに公開したい」プロジェクトの場合は、Netlifyのほうが使いやすいかもしれません。
一言に「サーバーレスサービス」といっても、実際に触って挙動を確認することで、プロジェクトごとの向き不向きもわかるので、実際に触って体験してみてください。
価格は記載がある場合を除き、すべて税込みです。
関連キーワード
サーバレスの新着記事
- サーバレスCloudflare R2の料金体系・無料枠まとめ 2024.8.21
- サーバレスCloudflare R2をCyberduckで使う方法 2024.7.31
- サーバレスAIの学習ボット・クローラーからサイトを守るメリットとブロックする方法 2024.7.19
- サーバレスCloudFlare Pagesのビルド環境の違い 2024.5.9
- サーバレスCloudflare D1の料金体系・無料枠まとめ 2024.3.25
- サーバレスCloudflare PagesでNuxt3のビルド時に「ENOENT: no such file or directory」エラーの対象方法 2024.3.21
- サーバレスGitlab CLIでpush時に「glab auth not found」となった際の対処方法 2024.3.19
- サーバレスCloudFlare Workers AIの料金体系・無料枠まとめ 2024.2.2