はじめに
AWSのroute53でDNSを登録すると毎月料金が発生します。
GCPでは無料で使えるのでご紹介させていただきます。
Compute Engineの作成
「Compute Engine」の「VMインスタンス」を作成します。
us-east-4(北バージニア)以外のusリージョン、f1-microタイプはは無料で使えます。
今回はUbuntu16.04LTSで作成してみます。
1分位待つとVMインスタンスに接続ができるようになります。
「ブラウザウィンドウで開く」を選ぶとブラウザ上でインスタンスに接続ができます。
Apacheのインストール
ubuntuを最新化します。
sudo apt-get update
sudo apt-get upgrade
apacheをインストールします。
sudo apt-get install apache2
apacheのステータスを確認します。
systemctl status apache2
自分の外部IPを確認して、ブラウザに移します。
apacheのインストールができました。
Domain登録
https://freenom.comで無料ドメインを取得します。
GCPのネットワークサービスにあるCloud DNSで「DNSゾーンの作成」を選択します。
freenom.comで取得したDNS名で作成します。
NSタイプのデータをfreenom.comのネームサーバーに設定します。
Aレコードを作成します。
IPv4アドレスに自分のGCEインスタンスの外部IPを入力します。
少し時間が過ぎると、freenom.comで取得したDNS名で接続ができます。
ApacheのSSL化
apacheに「Let's Encrypt」と「certbot」を利用してSSL接続ができるようにしましょう。
Let's Encryptとは
wikipediaから抜粋
Let's Encrypt(レッツ・エンクリプト)は、2016年4月に正式に開始された認証局である。自動化された発行プロセスにより、TLSのX.509証明書の発行を無料で行っている。
certbotとは
https://certbot.eff.orgから抜粋
Certbot is a free, open source software tool for automatically using Let’s Encrypt certificates on manually-administrated websites to enable HTTPS.
certbotのインストール
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install certbot python-certbot-apache
SSL認証
sudo certbot --apache -d [自分のDNS名]
メールアドレスと同意の「a」とno-redirectの「1」を入力するとSSL認証ができます。
ブラウザーでSSLされているのを確認できます。
certbotの自動更新
「Let's Encrypt」は90日が有効期間です。
毎月1回は有効チェックするのをおオススメします。
crontabに
1 0 1 * * sudo certbot renew
を登録すると毎月初日00:01に認証書を更新します。
終わりに
簡単にGoogle Cloud PlatformにSSLウェブサーバーを作ってみました。
certbotがあれば、SSLの更新に気にする必要がないから開発に集中できると思います。
ありがとうございます。