wordpressの移行作業でやったことまとめ[インフラっぽい編]

wordpressの移行作業でやったことまとめ[インフラっぽい編]:


とりあえずやったことをまとめてみました

移行作業には幅広く知識がいるんだなぁ・・・とこの半年で実感しました。

 純粋にどちらも環境から丸っとアップデートするという案件だったので、インフラ、ミドルウェア、フロントのあちこちをちょこっと齧るという工程を踏みます。今回は、インフラの内容でやったことについてまとめます。

コマンド前の$マークは普通のクライアントユーザーで、#はスーパーユーザーなんですね。筆者、最近知りましたので、本記事でちょいちょい使っていきます

間違っているものがあればご指摘お願いします。


何故AWSから変えるのか

古いインスタンス(仮装化タイプがPV方式)を使っていると計画再起動で立ち上がって来なくなったりする危険性もあるということで、ここから全部移行させました。移行先は、Amazon Linux 2(仮装化タイプがHVM方式)です。Amazon Linux2はLHELベースなので、CentOS7の知識が活用できます。


パッケージ管理ツール

Cent系ならyum。debian系ならapt-get。macならhomebrewなどなど・・・筆者は、初めてLinuxを触った時は、パッケージ管理ツールが沢山あって混乱しました。(確か、それぞれのOSにあったものとしらずに

Centにapt-get入れようとするなんて事までした)


管理ツールで知っておくべきこと

個々のミドルウェアの設定よりも、installしてみたらバージョン違うのが落ちて来ていたりします。原因として、パッケージ管理ツールに管理されてないバージョンのリポジトリを公式から引っ張ってくる必要があるというところですったもんだしたので、リポジトリの追加方法の種類とか、失敗した時に綺麗に消すとか知っといたほうがいいと思いました。


amazon-linux-extras

amazon linux 2から現れたExtras Libraryです。

ミドルウェアのバージョンアップがこれを利用することでお手軽に整えることができます。

コマンドがamazon-linux-extrasで、非常に長いです。

### 提供されているパッケージの名前をバージョン込みで確認 
$ amazon-linux-extras list 
 
### パッケージに含まれる中身を確認 
$ amazon-linux-extras info listで出たパッケージ名 
 
### パッケージのインストール 
$ amazon-linux-extras info install listで出たパッケージ名 
 
### パッケージのアンインストール 
$ amazon-linux-extras info disable listで出たパッケージ名 


yum

ただ、バージョンの縛りでもしかしたらextrasライブラリに無いバージョンのミドルウェアが要求されていることがあるかもしれないので、その場合はyumを利用して、環境を整えてください。

 yumはご存知、CentOSではお馴染みのパッケージ管理ツールマネージャーです。

  • yumは、Redhat系パッケージ管理ツールです
  • yumはrpmの高性能バージョンです。つまり、2代目.rpmファイルパッケージ管理ツール
  • rpmファイルの依存性解決をします
  • .rpmファイルの自動更新を行います
  • リポジトリ連携を行います
yumには上記の解釈を持っていれば問題ないかと思います。

### インストールしたパッケージのアップデート 
# yum update 
 
### yumでサポートしているリポジトリのリスト。 grep と合わせて専ら使う。 
# yum list | grep パッケージ名 
 
### リポジトリが追加されてもinstallができない場合、/etc/repos.d/epel.repoファイルのenabledが0になっていて、リポジトリが無効になっているので、直接1に書き換えてもいいですが、下記のコマンドで有効化させることができます。(yumコマンドでURLで直接インストールしてしまえばこんなのいらないですが。rpmとかwgetとかcurlでリポジトリを追加した場合、必要になります。) 
# yum-config-manager --enable リポジトリ名 
 
### yumでインストールしたパッケージのリスト 
# yum list installed 
 
### yumの使用履歴を調べる。自動更新されて知らず知らずのうちにバージョンが上がってエラー吐き倒す状況になっても、このコマンドを知っておけば一発解決 
# yum history 
 
### パッケージのインストール 
# yum install パッケージ名 or リポジトリのURL 
 
### パッケージの削除。インストールした時にパッケージによっては複数のパッケージが落ちてくるパターンがあるので、部分的にgrepかけて関連パッケージ根こそぎアンインストールする。クリーンインストールするにはディレクトリまで削除しましょう。 
# yum list installed | grep パッケージ名 
# yum remove パッケージ名  


swapファイルの作成

swapファイルは実メモリ以上のメモリが利用され始めると、使われていない部分を一時的にですが書き出しを行ってくれる仮想メモリです。新しいサーバーに載せ替えたなら、作ってあげるといいです。


メモリの利用状況を確認します。

$ free -t -h 


swapファイルを作成する。

/dev/zeroは前の記事で書いた/dev/nullと同じ、スペシャルファイルの1つ。この特定サイズの内容が何もないファイルを/var/swapのファイルとして、1メガバイトで1024ブロック分をコピーしろというものです。

# dd if=/dev/zero of=/var/swap bs=1M count=1024 


swapファイルのフォーマットをします

# mkswap /var/swap 


swapファイルを適応します。

もう一度freeコマンドを打てば、swapファイルが作られているのを確認できると思います。

# swapon /var/swap 
 
# free -t -h 
 
             total       used       free     shared    buffers     cached 
Mem:          1.0G       301M       722M        54M         0B       3.5M 
-/+ buffers/cache:       298M       725M 
Swap:         1.0G       185M       838M 
Total:        2.0G       487M       1.5G 


mysqlの拡張用ボリュームをマウントする

wordpressを利用する際に使っていると刻一刻と増えていくのは、アップロードされた画像などです。なので、1つのインスタンスタイプのボリュームだけでは足りない可能性があるので、データベース用のボリュームを追加します。

最初の時点では、

$ lsblk 
 
NAME          MAJ:MIN RM SIZE RO TYPE MOUNTPOINT 
nvme1n1       259:0    0  51G  0 disk  
nvme0n1       259:1    0   8G  0 disk 
├─nvme0n1p1   259:2    0   8G  0 part / 
└─nvme0n1p128 259:3    0   1M  0 part 
このように、追加でアタッチされたボリュームはマウントポイントが無いと思います。/でマウントされている方が元々作ったボリュームです。


マウントする前に、ボリュームにファイルシステムを作成する必要があるかどうかを確認します。

# file -s /dev/lsblkで出したデバイス名 
新しく作ったボリュームの場合、今コマンドではNO file systemと出ますので、作成が必要です。

# mkfs -t ファイルシステム デバイス名 
Linuxには使用されるファイルシステムは四つほどあり、用途に応じて使い分けます。

名前 最大ファイルサイズ
ext2 2TB
ext3 16GB~2TB
ext4 16TB
ReiserFS 16TB
今回、私はext4を使いました。このファイルシステムが一番メジャーなようです。

作成されると、先ほどのfileコマンドをもう一度叩くと、ファイルシステムやUUIDが表示されます。


マウントポイントを作成します。

マウントポイントというのは、ボリュームをマウントした際のディレクトリ構造のことで、ここでファイルの読み書きの実行がなされます。

# mkdir マウントポイント 
 
(ex: mkdir hogehoge /opt/data  


マウントします。

# mount デバイス名 マウントポイント 


システムが起動したら自動的にマウントするようにfstabに設定を追記します。

これでマウントができたわけですが、このままですと、システムが落ちたときや、再起動した時などにこのボリュームが外れてしまいます。

/etc/fstab

UUID= マウントポイント ファイルシステムタイプ オプション ダンプ ファイルシステムチェック 
 
(ex: UUID=XXXXXXXXXXXXX /opt/data ext4 nofail 0 0 
例では、オプションのnofailが、デバイスが存在して入ればマウントし、なければ無視する、それぞれの0はダンプとチェックはしないという意味になります。


最後に、fstabに正常にマウントできるようにします。

# mount -a 


mysqlのデータをこのボリュームの方へ入るようにします。

もともと、mysqlのデータは、 /var/lib/mysqlに入るので、ここを/opt/dataへと変更してやれば良いので、シンボリックリンクを貼ってあげれば良い。

$ ln -s 実際にあるパス 貼りたいパス 
(ex: ln -s /var/lib/mysql /opt/data/ 
まちがえちゃいそうなのは、貼りたいパスにも/mysqlまで書いてしまうこと。/opt/data/mysqlと書いてしまうと、/opt/data/mysql/mysqlでシンボリックリンクが貼られてしまうので、注意する。


権限をmysqlに変更してください。

# chown -r mysql:mysql /var/data/mysql 
ひとまず、サーバーの引っ越しの際にやったことは以上になります。

コメント

このブログの人気の投稿

投稿時間:2021-06-20 02:06:12 RSSフィード2021-06-20 02:00 分まとめ(3871件)

投稿時間:2021-04-30 23:37:32 RSSフィード2021-04-30 23:00 分まとめ(42件)

投稿時間:2023-02-05 02:09:04 RSSフィード2023-02-05 02:00 分まとめ(9件)