Amazon Lightsailを準備して静的サイトをデプロイする(Apache2.4+PHP7)【#np2020】

Amazon Lightsail
新しいサーバの引っ越し先としてAmazon Lightsailを選ぶことにしました。


Lightsail

Amazon Web Service(AWS)にしては価格が安く、それまで利用してきたさくらVPSとだいたい同じようなスペックで同じようなコストになりそうだというのが選択の理由です。詳しくはこの辺に書きました。

「さくらのVPS」ではなく「Amazon Lightsail」の利用を検討【#np2020】 | mutter

で、さっそく契約して、比較的移行が簡単な、静的ファイルベースであまり更新がないサイトを移行してみました。移行したサイトは例えば僕がお世話になっているバー「The Weller’s Club」のサイト。扉ページも含めて全部で4ページしかなく非常にシンプルな設計で、機能的にもスケジュールを掲載したページでGoogleカレンダーと連携しているぐらいです。

移行を機にそれをbootstrap4+Vue.jsで書き直し、GitHubでソース管理を行うようにしました。今までであれば、サーバ側でSVN周りの設定をあれこれする必要がありましたが、今回からは目的の場所でgit pullするだけでデプロイ可能です。便利。まあ普通なんですけどね。




まず、OSとインスタンスの種類の選択

これまでずっとさくらのVPSではCentOSを使っていました。仕事で触っているサーバも皆CentOSでわかりやすかったので揃えていたのですが、今回のLightsailではOSとして「Amazon Linux」を選択しています。CentOSライクなAmazon独自のLinux OSらしいです。選んだポイントは3つで、

  • CentOSと同じで無償
  • 更新が比較的頻繁
  • yumコマンドでメジャーアップデートまで出来る

コマンド一発でメジャーアップデートとか怖すぎてなかなか出来ませんけど、でも今回引っ越すことになった理由の1つに、OS5が古くなってGitHubと連携出来なかったからというものがあるので、いざという時コマンドでアップデート出来るのは助かります。万が一コマンドでアップデートを試みてサイトが何日か止まることになってもね、あくまで個人サイトなので別に良いかっていう気安さもあります。

Amazon Linuxの特徴とCentOSとの違い まとめ | DevelopersIO


次にインスタンスの種類を選びます。基本的にはLAMP環境でOKなんですけど、MySQLは現在のDBサーバからLightsailのマネージドデータベースに移行する予定なので、アプリケーションとしては必要ありません。というわけで、OSのみインストールしてアプリは自分で入れることにしました。



静的IPアドレスの割り当て

設定が完了するとIPアドレスが付与されていてそのIPアドレスでサーバにアクセス出来るようになっていますが、このアドレスは動的アドレスなので再起動すると変更されてしまいます。というわけで、静的IPアドレスを取得して設定します。AWSではお馴染みの「ElasticIP」ですね。インスタンスにアタッチされている限りは無料です。

詳しい手順はこちらの2-1から2-3をどうぞ。

AmazonのVPSサービス(Lightsail)を使い、独自ドメイン・SSL対応したWordPressを構築($3.50〜/月) | DevelopersIO



SSH接続してアプリのインストール

SSH接続はものすごく簡単です。Lightsailをセットアップした時点で、IAMにSSHキーが作成されるのでそれをダウンロードしてきて秘密鍵として設定してアクセスするだけです。注意する点といえばログインユーザーが「ec2-user」になることぐらいでしょうか。

rootユーザーではログイン出来ませんが、

  1. ec2-userでログインする
  2. sudo su –

という手順で簡単にrootユーザーになれるので特に問題はないです。
開始時に入れるアプリは、

  • Apache 2.4
  • PHP 7
  • Composer
  • Git

ぐらい。全然楽勝ですね。Amazon Linuxにはあらかじめリポジトリが2つ入っていて、例えば普通に「yum install php」とするとPHP5.3が入りますが、「update」という名前の方に最新版がいろいろと入っているので、「yum installphp72」とすることで特にリポジトリを指定することなくPHP7.2を入れることが出来ます。Apacheも同じです。めっちゃ便利だしめっちゃ速い。速効でインストールが終わります。



適当にディレクトリを作ってデプロイ

適当な場所に行って、

git clone https://ユーザーID:パスワード@github.com/ユーザーID/リポジトリ名.git

とするだけでデプロイ完了です。


あとはApacheのVirtualHostを設定し、ドメインのネームサーバを変更したらページが表示されるようになる。はず。ソースコードは事前に準備出来ていましたし、デプロイ自体に掛かった時間はサーバの準備を含めても30分ぐらい。簡単ですね。



まとめ:今のところ特に問題なし

まだまだ静的ファイルベースのサイトを3つ移行しただけなので特に問題は起きていません。最小構成のストレージは20GBと少ないのでいずれ追加しないと行けませんが、まだ1.5GBしか使っていないのでもうちょっとは大丈夫そうです。今後、Wordpressの導入を含めもう少しサイズの大きな移行を順次していきますが、その時どうなるか。順次やっていきたいと思います。

あ、その前にサイトのSSL対応ですね。Lightsail+CloudFrontで、月額100円ぐらいでSSL対応し放題です。マジか。


それについてはまた次の記事で。