ライブドアブログからAWS EC2のCloudFront、S3、Nginxを使ったサーバ移転

  • 投稿日:
  • 射精:1回
  • カテゴリ:WEBマスター

一般的なWEBサイトを運営しても集客できない場合、大抵アダルトブログになってしまうことが有ります。 しかし利用しているブログサービスの規則に反してしまうと、このブログのように一発退場となってしまう危険性が有ります。

また、ライブドアブログだと最速かつ頑丈で安定したWEBサーバで、軽足なサイトを無料で持つことができます。 どれだけサイズの大きく、枚数も多い画像を晒しても重くなることはありません。FC2は重くなります。

重くなると閲覧したユーザに不快な印象を与えるだけではなく、Google検索に引っかかりにくくなります。また、ライブドアブログでは初期のテンプレートHTMLで完璧なSEO対策されています。 これだけ素晴らしく画期的なライブドアブログですので、利用数も圧倒的に多いです。ネックな部分はスマホデザインがいじれず、画面下に固定されたライブドア広告が付くというだけです。

そして、ライブドアブログ並の強豪なWEBサーバを他で使用するとなると、月額10万円程する高価なサーバを用意しなければ追いつきません。アクセス数や記事の材質によりますが3~5万円では読み込み速度が遅くなります。

通常WEBサイトの読み込み速度というのは2秒以内というのが一般的です。 WEBSPEEDGTMETRIX
スピードこそがWEBを制するというのが私のモットーです。アクセスが多く、軽いサイトが一番上に来ます。検索アルゴリズムの順位をアソートしているのは人間ではなく、コンピュータです。”良質なコンテンツ”はロボットでは判断できません。 それらを踏まえた上で最速のWEBサイトを作る方法を1から書いていきます。

AWSに登録

https://aws.amazon.com/jp/ からサインアップもしくは新規登録して、こちらの画面になるまで進めてください。『まずは無料で始める』というのは嘘です。無料利用枠範囲内でも月額$2くらいかかることが有ります。
AWSSIGNIN

登録するとこのような画面になるのでEC2を選択
EC2

インスタンスの作成
Instance

STEP1.AmazonAWSマシンイメージ
左のAWS MarketPlaceから、CentOSを選択。他にも色々有りますが私の知る限りではCentOSが主流です。
AWSSIGNIN

STEP2.インスタンスタイプの選択
ここでサーバ速度が変わってきます。当然料金も大幅に変わります。ここはやる気と年収に合わせて設定してください。料金はこちらで確認できます。ただ注意して欲しいのは、マシンタイプの料金はあくまでも固定費であって、他にも転送量などで料金も増えていきます。

次の手順:インスタンスの詳細設定をクリック
MASINTYPE

ちなエロジンのような弱小サイトはこの程度の料金で間に合います。
0.732*24 = 17.568*30 = $527.04 = 月額6.40155472万円+転送量+a
AWSSIGNIN

STEP3.インスタンスの詳細の設定
本来ならVPCを設けてELBロードバランサを行いますが、今回は省きます。これはこのまま次へ
NEXT

STEP4.ストレージの追加
汎用SSDかマグネティックか迷うところですが、進めていくと汎用SSDを推奨してくるので汎用SSDを選択し次へ
SSD
MAGNETIC

STEP5.インスタンスのタグ付け
タグは無視して次へ
AWSSIGNIN

STEP6.セキュリティグループの設定
ルールの追加からHTTPを追加する。SSHの送信元を任意の場所からマイIPに変更して次へ。
AWSSIGNIN

STEP7.インスタンスの作成の確認
確認して次へを押すと、キーペアというのをダウンロードしなければならないので任意の名前を付けてダウンロード。後からPuTTYを使う際必要なのでわかりやすいところに保存。おすすめはマイドキュメント>PuTTY>Keyの中。.pemファイルがダウンロードされたら作成クリック
AWSSIGNIN

インスタンスは現在作成中の画面になりますのでインスタンスの表示をクリック
AWSSIGNIN

インスタンスが下記図のようにrunning, 2/2のチェック完了で準備が整います。
AWSSIGNIN

初期状態ではIPアドレスが再起動するたびに変わってしまうので、それを防ぐために固定IPアドレスを設定します。 左のサイドバーからネットワーク&セキュリティ欄にあるElesticIPを選択し新しいアドレスの割当をクリック、確認メッセージが表示されますので関連付ける
AWSSIGNIN
AWSSIGNIN

Instance欄をクリックすると自動で出てくるのでそれを選択し、関連付ける。これで最初に付与されたIPアドレスが変わり固定されたIPアドレスが付与されます。
AWSSIGNIN

EC2インスタンスをSSHソフトPuTTYで起動

ブラウザの画面はそのままで新しいタブからPuTTYをダウンロードしインストールします。
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
下記図のようにputty.exeとputtygen.exeをご利用の環境に合わせてダウンロードして下さい。
AWSSIGNIN

はじめにputtygen.exeを起動してください。PuTTYではpemファイルは読み込みませんのでPuTTYgenでPuTTY用の.ppkに変換してあげないとダメです。ConversionsからImport keyをクリックし先ほどAWSでダウンロードしたkey.pemファイルを読み込みます。
AWSSIGNIN

読み込んで、save private keyをクリックしpemファイルと同じ名前で保存します。拡張子は.ppkのままです。
AWSSIGNIN

PuTTYを起動します。最初は使いづらいですが、慣れると好きになれます。途中で設定変更した場合、必ずsaveしなければ反映されないというのが面倒です。HostNameの部分にEC2画面のパブリックIPをコピペします。ConnectTypeはSSH、Portは22。SavedSessionに名前を付けてsave。
AWSSIGNIN

Puttyを接続し放置すると勝手に接続が切れてしまうのを防ぐために、左のCategoryからConnectionを選択しSeconds between keepalivesを60に、また、Internet ProtocolをIPv4しか使わないので設定。
AWSSIGNIN

PuTTUgenで変換したキーファイルを反映させるために、左のCategoryからConnection>SSH>Authを選択し、Authentication parametersのPrivate key file authentication:にBrowseを押して作ったppkファイルを選択。で、左のCategoryから最初のSessionに戻りSavedSessionsに名前を付けてSaveしてopen

AWSSIGNIN

変なメッセージが表示されますがフィンガープリントというよくわからないやつなのでOK
AWSSIGNIN

このような画面になれば成功。ならなければググるなり見直すなりしましょう。
AWSSIGNIN

最新CentOS7 初期設定と最新Nginx、最新MariaDB、最新PHP、最新WordPressを最新インストール

打ち込みます。コピペ可ですが打ち込んで慣れたほうが良いです。

sudo su –
yum -y update


AWSSIGNIN

Complete!になれば次を入力、

vi /etc/selinux/config

打ち込むとこのような画面になります。キーボードが半角英数字になっていることを確認して、「a」を打ち込むと、編集することができます。下記図のようにLINUX=enforcingをLINUX=disabledにして、キーボードの「ESC」「:wq」を入力。
AWSSIGNIN


AWSSIGNIN


AWSSIGNIN

最新のNginxをインストールします。viコマンドを打ち込むとnginx.repoファイルが生成されますので下記のように記述します。コピペする場合は一度「a」を入力してから右クリックでペーストできます。そのまま右クリックでペーストするとコピーされたテキストの「a」「i」いずれかの文字から始まる部分から貼り付けられます。

vi /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/
gpgcheck=0
enabled=1

コピペしたら先ほどのように「:wq」で上書き保存し、さらに下記を入力

yum install nginx

Nginx公式サイトから最新版かどうか確認して、そのようならyを押して実行します。最新に拘る必要はあります、セキュリティアップデートや脆弱性から保護するためだけでなく、高速に改善される場合もあるのです。ちなみに現在のバージョンは1.9.6ですが、頻度が高くほとんど月単位でバージョンアップしていきます。インストール後は簡単にyum updateでアップデートできます。
AWSSIGNIN
AWSSIGNIN

systemctl start nginx
systemctl enable nginx

入力後、パブリックIPにアクセスしてNginxが表示されれば完成です。
AWSSIGNIN

最新MariaDBインストール

MariaDBはバージョンがややこしく10.0のタイプ、10.1のタイプ、5.5のタイプがあります。10.1は10.0の最新版というわけではなく、さらに別々にバージョンが有ります。今回は10.1をインストールします。下記URLから
https://downloads.mariadb.org/mariadb/repositories/#mirror=yamagata-university
CentOS>CentOS7(64bit)>10.1と選択していき文字が表示されますのでコピー。
AWSSIGNIN

先ほどと同じようにviコマンドから新規repoファイルを作成し、空白状態に「i」を押して右クリックでコピペしたあと「:wq」で保存されます。

vi /etc/etc/yum.repos.d/MariaDB.repo

[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

上書き保存したら画像にも書いてあるとおり下記を入力しインストールします。途中で何か聞かれますが全て「y」でいいです。

yum install MariaDB-server MariaDB-client

インストール完了後下記を入力

systemctl start mysql
systemctl enable mariadb
mysql_secure_installation

下記画面になるので各自設定していく。最初にエンターを押してパスワードを二回入力すればあとは全部yで良い。

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we’ll need the current
password for the root user. If you’ve just installed MariaDB, and
you haven’t set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none): #入力せずエンター
OK, successfully used password, moving on…

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] y #rootユーザーにパスワードを設定
New password: #パスワード入力しても文字は表示されません。
Re-enter new password: #再度パスワード入力
Password updated successfully!
Reloading privilege tables..
… Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y #初期状態に匿名アカウントが存在するので削除
… Success!

Normally, root should only be allowed to connect from ‘localhost’. This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] y #リモートログインを拒否する
… Success!

By default, MariaDB comes with a database named ‘test’ that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y #初期状態にテスト用データベースがあるので削除
– Dropping test database…
… Success!
– Removing privileges on test database…
… Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y #今まで設定したことを反映
… Success!

Cleaning up…

All done! If you’ve completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

これでMariaDB最新版がインストールされました。これが「データベース」であって、これさえあればブログを作り記事を描くことができます。文字入力ばかりでグラフィック化されずやりづらいですが、慣れると楽しくなります。 ただこれではやりづらいので、WordPressをインストールします。MariaDBにWordpressで作成した全てのデータが書かれていきます。階層を説明すると、まずデータベースを何個か作ることができ、そのデータベースの中にテーブルをいくつも作ることができ、その中にそれぞれ項目と値を作られていきます。 例えばWordpressなら、WordpressというDBをwp_dbという名前で作成。wp_dbの中にテーブルpostをwp_postという名前で作成、wp_postの中に記事名、カテゴリ名、更新日、記事内容、タグなどが作られていきます。

概要とその他