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
2月 06 15:47:01 ip-172-31-39-100.ap-northeast-1.compute.internal systemd[1]: ...
2月 06 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コマンドを使う
この記事が気に入ったらサポートをしてみませんか?