GCPでCloud DNSを使ってお名前.comで取得したドメインを紐づける

GCP
スポンサーリンク


以前作成したNginxを利用します。
今回の設定で「http://xxx.xxx.xxx.xxx」という外部(グローバル)IPでのアクセスから「http://example.com」と言ったドメイン名でのアクセスが可能になります。

<前提条件>

GCPでnginxのWEBサーバ構築済み
お名前.comでドメイン取得済み

まだインスタンスを作成していない人はこちらを参考に作成してください。
インスタンスのOSはUbuntuでなので、今回のエントリー内のコマンドはUbuntuでのものとなります。

GCPでインスタンスを作成してNginxをインストール
GCPにも無料枠や初回登録の特典である0クレジットがあるので、それをうまく使ってみようと思います。 以前もAWSやAzureの無料枠を使って中国で生活するうえで必要不可欠なV2RAYサーバを構築しましたが、同じようにGCPでも構築可能...

ドメインを取得していない人はお名前.comで取得してください。
キャンペーンをやっていると1円から取得することができます。

スポンサーリンク

外部IP(グローバル)を固定

Lets EncryptでSSL化するのでドメイン(サブドメイン)をインスタンスに紐づける必要があるので外部IPを固定しておきます。


作成したインスタンスの名前をクリック


上部のメニューの「編集」をクリック


「ネットワークインターフェース」を展開


外部IPV4アドレスが「エフェメラル」になっているので、「IPアドレスを作成」から


任意の名前を入力して「予約」をクリック

これで外部IPが固定化されました。

Cloud DNSで

Cloud DNSは「ネットワークサービス」の中にあります。
ここの「ゾーンを作成」をクリックします。


ゾーン名は任意のものを入力、
DNS名は取得したドメイン名を入力して「作成」をクリックします。


レコードセットが作成されました。
NSレコードが必要になるので確認しておきます。


「レコードセットの作成」からAレコードを作成します。
IPv4アドレスにはインスタンスの外部IPを設定します。

お名前.comでネームサーバ設定

「ネームサーバーの設定」→「DNS設定/転送設定」
先ほど確認したNSレコードをお名前.comのネームサーバに設定します。

Nginxの設定

Nginxのconfigファイルにサーバ名を設定します。
UbuntuにNginxをインストールした場合のconfigファイルです。
CentOSの場合、configファイルの場所が違うので注意してください。


sudo vi /etc/nginx/sites-available/default

server_name _;

server_name example.com(お名前.comで取得したドメイン名);
に変更します。


server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
server_name example.com(お名前.comで取得したドメイン名);
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}

HTTPSを使う場合は「listen 443」のところのserver_nameも変更してください。

設定変更を反映させ、nginxを再起動します。


sudo nginx -t
sudo systemctl restart nginx

これでしばらく時間が経つとドメイン名でのアクセスが可能になります。