スクリーンショット_2020-01-30_00

AWS習得編 ゼロからわかるAWS超入門 CHAPTER4

https://www.amazon.co.jp/ゼロからわかる-Amazon-Services超入門-はじめてのクラウド-かんたんIT基礎講座-ebook/dp/B07TFTGHMX/ref=dp_kinw_strp_2
こちらの書籍について学んだことです。

CHAPRET4 LAMPサーバーでWordPressを動かそう

目的はEC2の使い方を習得すること。

仮想サーバーではブログを動かすために必要となるApacheとMySQL(実際には互換のあるMariaDB)とPHPという3種のソフトをインストールしたLAMPシステムの構築をする


4-1 ブログサーバーの仕組みと作り方

ブログは、記事を投稿するとそれを保存して整形してブラウザで見れるようにするシステム
その稼働にはサーバーが必要
AWSではサーバーをEC2インスタンスとして構成する

WordPressが動くサーバーを構築する

4-1-1 ブログを動かすためのサーバー

ブログはWebブラウザを使って記事を投稿したり閲覧したりできるシステム
このシステムは、Webサーバーとして構成する

S3では無理
記事の投稿とか閲覧はWebサーバーに置いたプログラムで実行して処理しなきゃいけないから

EC2
サーバー=EC2インスタンス

4-1-2 EC2インスタンスをWebサーバーにする

EC2はインスタンス作成ときに初期設定を指定でき、最初からOSが入ってる
Linuxはよく使われる

4-1-3 ブログサーバーにする

ブログサーバーはWebサーバーに更に肉付けが必要
LinuxOSの上にApacheとMariaDB
Apacheの上にPHPとライブラリ
PHPとライブラリの上にWordPress

4-1-4 さまざまな場面で使われるLAMPサーバー

Linux
Apache
MySQL
PHP

4-2 EC2の特徴と料金

特徴と料金について

4-2-1 EC2インスタンスとネットワーク

違うシステムは、別のVPCで分けることができる
Virtual Private Cloud

4-2-2 デフォルトのVPCとデフォルトのサブネット

デフォルトVPCなるものがある

一応VPCやサブネットを自分で作るおさらい

VPCダッシュボードを開く

VPCの作成をポチ

1個のパブリックサブネットを持つVPCを選択し、選択ボタンをポチ

IPv4CIDRブロックに172.168.0.0/16
IPv6なし
VPC名はマイVPC
AZは指定なし
サブネット名はパブリックサブネット

4-2-3 EC2インスタンスの作成

①スペック決定
②OSが入っているイメージ決定
③ディスク容量と種類決定

4-2-4 スペックを決めるインスタンスタイプ

T2
M5
C5
tiny
small
medium
large
xlarge

t2.micro

m5は汎用サーバー

性能はあとでいじれるからとりまt2.microでいい説

4-2-5 ディスクイメージを指定するAMI

Amazon Linux2を使う

AmazonLinuxはRHEL6を使っててAmazonLinux2はRHEL7を使う

4-2-6 データを保存するディスクを構成するEBS

Elastic Block Store

HDD,SSHとか
可用性は99.999%を満たすように設計されてる

ディスクのスナップショットを作ってバックアップや複製に使える

スケールアップ簡単

HDDからSSDに変えるとかできる。すげえ。

4-2-7 EC2の料金

EC2の料金=①インスタンス使用量+②EBS費用+③通信費用+④その他オプション

t2.microなら無料

EBSは月30GBまで無料

15GBまで通信量は無料

固定IPアドレスを割り当てると有料

4-3 EC2の操作と通信


4-3-1 IPアドレスとDNS名


パブリックIP,パブリックDNS
外との通信で使う

プライベートIP,プライベートDNS
VPC内の通信で使う

ENI仮想ネットワークカード

4-3-2 EC2にリモートで接続して操作する

EC2インスタンスにはリモートで接続する。ssh使う。
macの場合terminalで行ける。

4-3-3 認証に使うキーペア

公開鍵でssh通信

4-3-4 通信の許可・拒否を設定するセキュリティグループ

どのような種類の通信を通すのかを設定するファイアウォール機能がある。

これをセキュリティグループという。

入っていくデータのセキュリティをインバウンド
出ていくデータのセキュリティをアウトバウンド
で設定する

4-4 この章での操作の流れ

EC2インスタンスを作り、ApacheでWebサーバー化する
そして、WordPressとPHPとMariaDBでブログサーバーを作成する。

①EC2インスタンスをデフォルトのサブネットに配置する
今回のブログサーバーはインターネットからアクセスできるもの。

EC2インスタンスをデフォルトのサブネットに作成

②SSH接続

③ApacheやPHP、MariaDB、WordPressのインストール

4-5 EC2インスタンスを作成する

実際に作っていく

4-5-1 EC2インスタンスを作るのに当たって決めること

色々先に決めとく
AMI Amazon Linux2
インスタンスタイプ t2.micro
リージョン 東京
VPC デフォルトVPC
サブネット 優先順位なし
ストレージの容量と種類 8GBSSD
EC2インスタンスの名称 WordPressWebServer
セキュリティグループ my-webserver-sg

4-5-2 EC2ダッシュボード

EC2開く

リージョン東京

4-5-3 EC2インスタンスの作成

インスタンスの作成をポチ

Amazon Linux2 AMI(64bit x86)を選択

t2.microを選択

インスタンスの詳細の設定をポチ

VPCとサブネットを選択

ストレージの追加をポチ

デフォルトでいいのでタグの追加をポチ

タグのキーをName、値をWordPressWebServerにして次のステップをポチ

セキュリティグループ名を分かりやすい名前にする
my-webserver-sg
說明も分かりやすく
HTTP/HTTPS enable

ルールの追加をポチ
HTTPでつなげるようにする
HTTPSでつなげるようにする

確認と作成をポチ

起動をポチ

キーペア作成画面になるのでキーペア名をmyserverkeyに変更

キーペアのダウンロードをポチ

インスタンスの作成をポチ

4-5-4 インスタンスの情報を調べる

ec2-54-65-30-164.ap-northeast-1.compute.amazonaws.com
54.65.30.164

4-5-5 IPアドレスとDNS名を確認する

54.65.30.164
ec2-54-65-30-164.ap-northeast-1.compute.amazonaws.com


4-6 SSHで接続する


4-6-1 SSHクライアントの準備

windowsはteraterm
macはterminal

4-6-2 ターミナルソフトからEC2インスタンスに接続する

ディレクトリを変更する
cd Dropbox/【フリーランスエンジニアに必要なデータ】/001\ ブログ/001\ 未経験からWeb系エンジニアへ/013\ AWS習得編

アクセス権を400に設定
sudo chmod 400 myserverkey.pem

接続
ssh -i myserverkey.pem ec2-user@54.65.30.164

4-6-3 SSHでの操作とrootユーザーへの切り替え

Apacheをインストールする

4-7 Apacheのインストール


4-7-1 Apacheをインストールする

yum install httpd

このコマンドを実行するにはrootである必要がありますと出た
管理者権限で実行しろってこと
sudo yum install httpd

で行けた

4-7-2 Apacheの起動

sudo systemctl start httpd

実際に起動しているかどうかを確認するコマンドは下記の通り

sudo systemctl status httpd

----------------------------------------
[ec2-user@ip-172-31-39-100 ~]$ sudo systemctl status httpd
● httpd.service - The Apache HTTP Server
  Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
  Active: active (running) since 木 2020-02-06 15:47:01 UTC; 20s ago
    Docs: man:httpd.service(8)
Main PID: 3739 (httpd)
  Status: "Total requests: 0; Idle/Busy workers 100/0;Requests/sec: 0; Bytes served/sec:   0 B/sec"
  CGroup: /system.slice/httpd.service
          ├─3739 /usr/sbin/httpd -DFOREGROUND
          ├─3740 /usr/sbin/httpd -DFOREGROUND
          ├─3741 /usr/sbin/httpd -DFOREGROUND
          ├─3742 /usr/sbin/httpd -DFOREGROUND
          ├─3743 /usr/sbin/httpd -DFOREGROUND
          └─3744 /usr/sbin/httpd -DFOREGROUND
206 15:47:01 ip-172-31-39-100.ap-northeast-1.compute.internal systemd[1]: ...
206 15:47:01 ip-172-31-39-100.ap-northeast-1.compute.internal systemd[1]: ...
Hint: Some lines were ellipsized, use -l to show in full.
[ec2-user@ip-172-31-39-100 ~]$ 
----------------------------------------

activeって出てたらおk

4-7-3 ブラウザで確認する

54.65.30.164

で表示された


4-7-4 Webサーバー機能の完成

ここまでで、S3での動作と同等のことができるようになった。

4-8 PHPのインストール

PHPをインストールしていく

4-8-1 PHPをインストールする

sudo yum install php

4-8-2 WordPressに必要なライブラリのインストール

sudo yum install php-mysql php-mbstring php-gd

php-mysqlはPHPからMySQLに接続するためのライブラリ。必須。
php-mbstringはPHPで日本語などの多バイト文字を扱うためのライブラリ。必須ではないが、文字化けする
php-gdは画像を扱うためのライブラリ。必須ではないが、画像のアップロードに支障をきたす


4-8-3 Apacheの再起動

sudo systemctl restart httpd

4-9 MariaDBのインストール


4-9-1 MySQL代替のMariaDBをインストールする

sudo yum install mariadb mariadb-server

4-9-2 MariaDBの起動と初期設定

sudo systemctl start mariadb

4-9-3 mysqlコマンドを使ってデータベースを操作する

mysql -u root -p

4-9-4 rootパスワードを変更する

update mysql.user set password=password('foobar') where
user = 'root'; flush privileges;

4-9-5 データベースとユーザーを作成する

ユーザーを作成する
create user 'wordpress'@'localhost' IDENTIFIED BY 'mypassword';

データベース作成
create database wordpressdb;

権限設定
grant all privileges on wordpressdb.* to 'wordpress'@'localhost';
FLUSH PRIVILEGES;

データベース表示してみる
show databases;

exitでさよなら

4-10 WordPressをインストールして設定する

LAMPシステムが構築できて、wordpressを利用するまでの下準備ができた。
WordPressをインストール・設定する

4-10-1 WordPressをダウンロードしてインストールする

ssh接続
ssh -i myserverkey.pem ec2-user@54.65.30.164

作業用ディレクトリを作成する
sudo mkdir /home/wordpress
sudo cd /home/wordpress

wordpressダウンロード
sudo wget https://wordpress.org/latest.tar.gz

展開
sudo tar xzvf latest.tar.gz

Apacheから見える場所に移動する
sudo mv wordpress/* /var/www/html/

Apacheユーザーに、/var/www/htmlディレクトリ書き込み権限を与える
sudo chown apache.apache -R /var/www/html
sudo chmod +w -R /var/www/html

http://ec2-54-65-30-164.ap-northeast-1.compute.amazonaws.com/wp-admin/install.php

またwordpressが真っ白な画面で開かない

解決方法
php-mysqlを削除しておく
sudo yum remove -y php-mysql

phpのバージョンを指定してインストール
sudo amazon-linux-extras install php7.3

php-mysqlはphp7.3インストール時に同等のものがインストールされているので不要
sudo yum install php-mbstring php-gd
これは実行しても無意味だった

終わったら再起動
sudo systemctl restart httpd

もっかい以下を開く
http://ec2-54-65-30-164.ap-northeast-1.compute.amazonaws.com/wp-admin/install.php

wordpressが表示された!!

日本語を選択して続けるをポチ

さあ、始めましょう!をポチ

データベース名をwordpressdb
ユーザー名をwordpress
パスワードをmypassword
データベースのホスト名をlocalhost
テーブル接頭辞をwp_

送信をポチ

インストール実行をポチ

サイトのタイトルを僕のブログ
ユーザー名をadmin
パスワードは適当
メアドはel93019205_2@yahoo.co.jp

wordpressをインストールをポチ
ログインをポチ

アドレスとパスワードを入力

ログイン完了!


4-10-2 WordPressの完成

完成!管理ページで記事を書いてけば記事は増えてく

4-10-3 さらなる発展

パブリックIPアドレスは変わる
固定化するならElastic IPを使用

独自ドメインじゃない
Route53を使う

通信を暗号化したい
ELBを使う

自動起動に設定したい
sudo enable httpd
sudo enable mariadb

課金を防ぐ
EC2を停止

EC2は仮想サーバー機能を提供するアンマネージドサービス
構築した仮想サーバーのことをEC2インスタンスと呼ぶ
EC2インスタンスはどこかのVPCならびにサブネットに配置する
デフォルトのVPC、デフォルトのサブネットに配置するとインターネットに接続可能になる
EC2のAMIを選ぶことでOSが決まる。
ストレージはEBSで作成する Elastic Block Store
EC2の料金は、インスタンスの使用量+EBSの費用+通信量+その他オプション
EC2の性能は、インスタンスタイプとインスタンスサイズで決まる
開発やテスト目的ならT2やT3、本番ならM5またはM4を使うのが一般的
EC2インスタンスにはパブリックIPとプライベートIPが割り当てられ、インターネットでは前者で接続
Webサーバーとして扱う際はApacheなどのWebサーバーのインストールが必要
WordPressを使う場合、PHPとMySQLが必要。AmazonLinux2では、MySQL互換のMariaDBを使う。
EC2インスタンスは、SSHなどを使ってリモートから操作する。
AmazonLinux2の場合、ユーザー名はec2-userで、あらかじめダウンロードした鍵ペアを使って接続する。
EC2インスタンスにソフトなどをインストールするときは、「sudo -i」などのコマンドを使ってrootユーザーに切り替えてから操作しないとsudoコマンドをつけなきゃいけなくてめんどくさいことこの上ない
AmazonLinux2でソフトをインストールするときのコマンドはyum
Amazon Linux2で各種サービスを起動したり停止したりするにはsystemctlコマンドを使う


この記事が気に入ったらサポートをしてみませんか?