【サイト制作手順】AWSとさくらレンタルサーバーで比較

2019年09月21日
731 view

今回は、当サイトを公開するまでの流れを備忘録的に書いていきます。
まず、このサイトはLaravelで開発しています。(現状のような静的コンテンツのみのサイトであればWordPressなどのCMSを使った方が楽だと思いますが)
実は最初は勉強用程度にAWS EC2の無料枠で開発するつもりだったのですが、せっかくならちゃんと公開しようと思い、さくらレンタルサーバーにプロジェクトを移しました。
なぜEC2をやめてさくらに移したのか、またその手順など以下に完結に記載していきます。

1. AWS EC2無料枠で構築

まずAWSの1年間無料枠を使って何か作ろうと考えた末、自己紹介程度にブログでも作ろうと思い開発し始めました。 手順は以下のような感じ。

① EC2インスタンスを作成

  • 無料枠のAmazon Linux AMI, t2.microを選択
  • Elastic IPを割り当てる
  • セキュリティグループを設定し、SSH、HTTP接続を有効にする

② LAMP環境の構築

  • SSHでログイン接続する
ssh ec2-user@「インスタンスのIP」 -i 「秘密鍵のパス」

③ Laravelプロジェクトの作成

  • Composerとライブラリのインストール
    ここで注意しないといけないのは、インストールするパッケージのバージョンです。(すごくハマった。。) このサイト(Laravel5.8)の場合、すべてphp72でインストールするとうまくいきました。
$ curl -sS https://getcomposer.org/installer | sudo php
$ sudo cp composer.phar /usr/local/bin/composer
$ sudo ln -s /usr/local/bin/composer /usr/bin/composer
$ sudo yum install -y php72-mbstring php72-pdo php72-mysqlnd
  • Laravelプロジェクトの作成
    プロジェクトを作成するディレクトリに移動して作成
$ cd /var/www
$ ~/composer.phar create-project --prefer-dist laravel/laravel 「プロジェクト名」
  • Apatchのドキュメントルート変更と.htaccessを有効化
$ sudo vim /etc/httpd/conf.d/custom.conf
# ↓custom.confの中身
DocumentRoot "/var/www/「プロジェクト名」/public"

Alias /adminDataBase "/var/www/html/phpMyAdmin"

# .htaccess 有効化
<Directory /var/www/「プロジェクト名」/public>
    AllowOverride All
</Directory>
  • 権限の変更
    作成したプロジェクト内に移動して以下を実行
$ cd /var/www/「プロジェクト名」
$ sudo chmod -R 777 storage
$ sudo chmod -R 775 bootstrap/cache
  • Apatchの再起動
$ sudo service httpd restart
  • .env.exampleをコピーして.envを作成する

ここまででElastic IPをブラウザで確認するとLaravelのページが表示されると思います。
またプロジェクトの作成や「composer install」をしたりするとメモリが足りなくてエラーになったりするので php.iniファイルでメモリの制限値を上げます。

memory_limit = 512M
私の場合それでもだめだったのでMySQLを一旦停止してから実行するといけました。

こうして開発して記事を書き始めたのですが、どうせならSSL対応してちゃんと公開しようと思い調べたところ、 ELB(ロードバランサー)を使用しなければならず、どうやら毎月数千円かかるようでした。
それにインスタンスも無料期間が終わるとこれもまた数千円かかりそう、、、 ということでAWSは個人サイトには向かない(高すぎる)なと判断し、別のレンタルサーバーを検討しました。

2. さくらレンタルサーバー

AWSの代替で何を使うか、GCP、herokuやその他レンタルサーバーなど調べてみて、 さくらレンタルサーバーのスタンダードプランなら容量100GB、MySQLも最大20個使用できて月額数百円で使用できます。 安い。。しかもSSL対応も無料で完結します。ということで迷わず移行しました。

あとはサーバーにsshログインしてGit pullしてくるだけです。(ファイルマネージャーを使って簡単にアップロードすることもできます)

まとめ

今回、一からウェブサイトの公開をしてみて初めての事もあり勉強になったなと思います。 仕事では開発がメインなので、サーバーの選定やドメインの取得など、普段の業務ではあまり触れないところも経験できました。 わりと大変だったのがデザインでした。。画像を作ったりいい感じにstyleあてたり、、、(仕事ではデザイナーさんがいるので自分でそこまでしない)
あとは記事がある程度増えたら新しいページや機能を付け加えていこうと思います。


thumb_upオススメ記事
commentコメント

Yoshiyuki Uemoto

Twitter :@yu___space
1991年生まれ / フリーランス webエンジニア
主にSalesforce、PHP(Laravel)等が専門です。物理学科出身で特に宇宙分野(素粒子など)が好きです。
プログラミング / 物理学 / 宇宙 など、その時々に思ったことを書いていきたいと思います。