ポートフォリオも成果物も完成してデプロイも全部終わったので、備忘録も兼ねてデプロイの流れをざっくりと書いていきます。
利用するサーバーや言語によって自動化・簡略化できる部分があったりしますが、大まかな流れは以下の通り
になります。
1.サーバーを契約
どのサービスを使うか決定し、サーバーを契約します。
herokuなどの無料で借りられるサーバーもあれば、ロリポップサーバー、さくら、AWS(EC2)のような有料のサーバーもあります。
会社選び、プラン選びは慎重に!
私は勉強のつもりでAWSをやりたくて契約しましたが、情報が少なかったり、サーバー構築に必要になる固定IPやドメインが他社より高く、少しびっくりしました。
(だって作業手順も料金も、日本語で書かれてるはずなのに横文字ばっかりで分かりづらいんだもんw)
2.プロジェクトファイルをサーバーに入れる(githubをインストール・リポジトリと紐づけると便利かも?)
ローカルで作業する時と同様に、リモートリポジトリとサーバーを連携させて、git cloneでプロジェクトファイルを持ってきます。ファイルを編集した場合も同様にgitpullします。
もちろん.envなどの隠しファイルはgit cloneできないので、サーバー内でコマンドを叩いて直接編集します。
3.ドキュメントルートの設定(サーバーにアクセスがあった時に、サーバーの中のどのページを表示するかという設定)
デフォルトだと、サーバーのテストページが表示されたりするので、サーバー内に入れたプロジェクトファイルのパスを指定して、そこを表示させるように設定します。
4.固定IPアドレスの取得・サーバーとの関連付け
これは契約するサーバーによって省略できることもあります。
herokuだと無料枠内ではIPアドレスを固定化しない場合が多いです。IPアドレスはネットワーク上の機器(サーバー、PC、スマホなど)を識別するために割り当てられるものであり、重複してはいけないものなので、herokuの場合はアクセスするたびに、どのIPアドレスが空いているか調べて空いているものを使うような形になります。
AWSのように省略できないサーバーの場合は、固定IPアドレスを自分で取得します。
固定IPアドレスの取得や保持にはお金がかかったりするのでそこはご注意を!
5.プロジェクトファイルを動かすのに必要な言語・コマンド・データベースをインストール
これらをインストールするために、ひたすらコマンドを叩いていく段階です。
言語をインストールする時は、コードをを書いた時のバージョンと整数部分が違うものをインストールしてしまうと、バグの原因になるので注意!!
バージョンの整数部分が違うと、コードの書き方が違ってくるからです。
逆に少数部分が違うものはインストールして大丈夫です。小数部分の数が大きくなるのは、言語のセキュリティホールが発覚してそれを改善した時だからです。
このタイミングでデータベースと接続し、プロジェクトに必要となるデータベースを作成してマイグレーションを行います。
6.独自ドメインを取得・固定IPアドレスとの関連付け
好きなドメイン名を考えて、契約します。
プロジェクトを複数上げたい場合は、ドメインを1つ取ってそのサブドメインを設定してもいいですが、セキュリティなどの設定がややこしくなることがあるので、少しハードルが高い場合もあります。AWSはそうでした。涙
独自ドメインは2年目から料金が高くなることがあるので、気をつけましょう。
同じようなドメイン名でも会社によって料金がかなり違います。
それから取得したドメインと固定IPアドレスを関連付けていきます。
ドメインは、IPアドレスを人間にとって覚えやすい形にしてIPアドレスと紐づけるものです。
「このドメインでアクセスされたら、このIPアドレスのサーバーに指示を送るよ~」というのを決めるんです。
7.SSL証明書を取得してウェブページを常時SSL化
SSLは、情報を暗号化して送受信するための仕組みです。
この仕組みで暗号化(SSL化)するには、SSL証明書というものが必要になります。
SSL証明書も、無料のものと有料のものがあります。
また、SSL化できているウェブページはURLの先頭が「http://」ではなく「https://」となっています。
さらに、「http://」のつくURLでアクセスされた場合に強制的に「https://」にする設定もした方がいいです。
セキュリティ面もそうですが、SEO対策に不利になることがあるからです。
8.完成!
これでウェブページが公開できました!
「さすがにここは説明が足りないんじゃないの?」という点があったら、コメントをお願いします!