月額制のVPSからEC2に移行を試みるついでに手順をまとめました。
書きなぐっているため、抜け漏れがあるかもしれません。指摘大歓迎です。
Webサイト test.hogehoge.com を作ること。(事前にhogehoge.comのドメインは取得済み)
何はともあれまずはインスタンスの作成です。
今回はマイクロインスタンス + OSはAmazon Linux AMI を利用します。慣れれば3〜4分で終わりそう?
ここで鍵がダウンロードされます。
インスタンスを作成したら、早速terminalでssh接続してみます。デフォルトではec2-userという名前でログインすることになります。
(インスタンス作成時にssh – port 22を設定しておくのを忘れずに。)
# ローカル環境 # インスタンス作成時にダウンロードした鍵を指定 # .pemファイルのパーミッションは600に変更しておく $ ssh -i ~/.ssh/{鍵名}.pem ec2-user@{接続先}
上記の{接続先}というのは、ダッシュボードの下記の位置に書かれています。
$ sudo passwd
ec2-user 以外の作業ユーザーを作ります。好きな名前でログインしたいですし。
今回はtestuer という名前のユーザーを作成します。
$ sudo adduser testuer $ sudo passwd testuer # 追加したユーザをwheelグループに追加。 $ sudo usermod -G wheel testuer # sudoできるようにする。 $ sudo vi /etc/sudoers # 下記をコメントイン # wheel ALL=(ALL) NOPASSWD: ALL
# ローカル環境 $ ssh-keygen -t rsa
ローカルでssh-keygenし、testKey.pub(公開鍵)と、testKey(秘密鍵)を作成したとします。で、公開鍵の方を、authorized_keysという名前でサーバ上に設置してパーミッションを変更します。
# リモート環境 # ユーザ切り替え $ su testuer # .ssh ディレクトリを作成し、パーミッション変更 $ mkdir ~/.ssh $ chmod 700 ~/.ssh $ cd ~/.ssh/ # authorized_keys ファイルを新規作成し、ローカルのtestKey.pubの中身をコピペして保存 $ vim authorized_keys # パーミッション変更 $ chmod 600 authorized_keys # authorized_keysの所有者は testuer:testuer にする
設定をミスるとログインできなくなってしまうので、ログイン状態のタブを残しておきます。また今回は10055番に繋ぐことにします。
$ sudo vim /etc/ssh/sshd_config #Port 22 ↓ コメントインしてポート番号を変更 Port 10055 # sshリスタート $ sudo service sshd restart
EC2 ダッシュボードの「Security Groups」を開きます。
ポート番号 10055 を追加します。(22番はあとで消す?)
# ローカル環境 $ ssh -i ~/.ssh/testKey -p 10055 testuser@{ec2の接続先} __| __|_ ) _| ( / Amazon Linux AMI ___|\___|___|
つながた!
ということで、ここまでできたら、念のためインスタンスをリブートしておきましょう。
インスタンスへ固定IPを割り当てる作業です。独自ドメインを使う時に必要な作業になります。
まずEC2のダッシュボード左にある、Elastic IPsメニューを開いて下記操作します。
「Associate」を選択。
作成したインスタンスを選択。
設定が完了すると、IPアドレスが固定されます。
ダッシュボードの{接続先}部分がIPアドレスに変わっていると思います。
注)この設定をすると、sshで接続する時の接続先指定方法も変わるので注意。軽くハマりました。
# ローカル環境 ssh -i ~/.ssh/testKey -p 10055 testuser@ec2-ほげほげ〜 ↓ ssh -i ~/.ssh/testKey -p 10055 testuser@{固定したIP番号}
まず、yumをアップデートしておきましょう。ログイン時にもメッセージが出ますしね。
sudo yum update
nginxをインストールし、起動してみます。
$ sudo yum -y install nginx # nginx 起動 $ sudo /etc/init.d/nginx start
先ほど設定したIPアドレスにアクセスすると、下記画面になってると思います。nginxを動かすところまで出来ました。
お名前.comを例にしていきます。
(今回は、ドメインが「hogehoge.com」の場合、「test.hogehoge.com」と「hogehoge.com」の2つを設定します。)
DNSレコード設定画面で、ホスト名に「test」をいれたものと、空にしたものの2個を追加(両方Aレコード)。
また、ネームサーバを 01.dnsv.jp〜04.dnsv.jp に設定しておきます。
(お名前を利用している方なら、既に設定されているかと思います。)
DNSの設定は以上です。
nginxのよく使うコマンドをメモ。それぞれalias設定しておくととっても楽になります。
$ nginx -V #バージョンを調べる $ sudo /etc/init.d/nginx restart #リスタート $ sudo /etc/init.d/nginx configtest #設定ファイルのチェック $ sudo vim /etc/nginx/nginx.conf #設定ファイルを編集 $ sudo vim /etc/nginx/conf.d/virtual.conf #バーチャルホストの設定を編集
設定ファイルを変更します(今回、vhosts用の別ファイルなどは利用しません)
$ sudo vim /etc/nginx/nginx.conf # バーチャルホストの設定を追加 server { listen 80; server_name test.hogehoge.com; location / { root /var/www/vhosts/test/; index index.html; } } # ドキュメントルートは /var/www/vhosts/test/ とし、予め index.htmlを置いておきます。 # ドキュメントルートのディレクトリ所有者がtestuserになっていないと正常に動かないかもです
nginxを再起動させ、test.hogehoge.com にアクセスすると、Webサイトが表示がされると思います。これで完了。
EC2はインスタンスを作成→terminate(破棄)が簡単に出来るので、手軽に練習ができます。インスタンスを量産してこのフローを実行してみました。
という感じでした。3回繰り返せば体が覚えてきますね。今後はさくっと作れそうです。
量産する時は、マイクロインスタンスの無料枠(月750時間 / インスタンス数)を超えないように気をつけましょう。