KusanagiをAWS EC2 に導入
ある案件で、AWS EC2 上に構築されたワードプレス周りのシステムについて相談があったので、調べてみました。
Amazon EC2とは?
Amazon が提供するVPS(バーチャルプライベートサーバー)です。
Kusanagiとは?
OSとWebサーバーやミドルウェア(PHPなど。) をWordPressなどのフレームワークに最適化したサーバー環境の事です。
https://kusanagi.tokyo/about/
EC2で使用する場合は、仮想マシンイメージAWSに準備されており、それを基にEC2インスタンスを立ち上げるだけで、WordPressを動作させるための環境が整います。
(多少の初期設定は必要ですが簡単です。)
Xserverなどの共有ホスティングサービスとは異なり、VPSでWordPressの動作をさせるまでの準備は結構大変です。OSの準備、Webサーバーの準備、ミドルウェアの準備、各種ツールの準備、SSL対応の準備、それらの整合性などを考慮しなければなりません。
まして、パフォーマンスを追求しようとすれば、それなりの知識が必要となります。
しかし、Kusanagiを利用すると、そういった下準備がほとんど不要となります。
Kusanagiの肝となっているのは、各種独自ツールであり、それらの賢いツールが各種設定を良しなに行ってくれます。
特殊なことをしているわけではないので、わかる人は独自で各種サーバーソフトウェアやミドルウェア等を使用することもできます。
EC2の場合は、データベース(MariaDB)も最初から設定済みですので、すぐに動作できます。
データベースを後で、Amazon RDS(やAurora) に変更することももちろん可能です。
なお、CentOS7ベースのKusanagi から、CentOS Stream 8 ベースとなった Kusanagi9 が最新版となっています。ワードプレスを立ち上げるのが主目的ならこちらが推奨されます。
導入方法
- AWSのEC2を用意し、 インスタンス(仮想マシン)の作成を行います。
- AWS Marketplaceから、「KUSANAGI for AWS (WordPress)」を選択します。
- 通常のEC2と同様、インスタンスタイプ・セキュリティグループを設定します。
- キーペアを作成します。
- 完了すると、動的IPでインスタンスが起動します。
- DNSレコードを登録できる環境なら、動的IPをFQDNと紐づけておきます。インスタンスが停止しない限りIPは変わりません。
例) kusanagi.example.com A 動的グローバルIP
注)EC2インスタンスは、セキュリティグループで許可しない限りping に応答しません。 - SSHでログインします。中身はCentOSです。
- yumを実行してOSを最新にします。また、kusanagi に必要なパッケージをインストールします。
- kusanagi の初期設定スクリプトを動かします。
Let’s Encrypt の設定までやってくれます。 - ブラウザからワードプレスの初期設定画面が表示されれば成功です!
感想
導入は思ったより簡単でした。一からCentOSやUbuntuを準備しワードプレスを動かすために各種サーバーデーモンやミドルウェアの設定まで作業した経験がある人は、なんて便利!と思う事でしょう。
AWSのメリットとしてのロードバランサーやオートスケールなどの可用性が必要とする場合、非常に良いと思います。
一方VPSは結局OSやミドルウェアの保守を自分たちで行う必要があるため、詳しくない人が行うとほったらかしになる場合があり、それがセキュリティリスクになるかと思います。
kunsanagiは、基本FTP(SFTP)やSSHは最初一つのユーザーしかサポートされていません。増やす場合や、バーチャルホストごとにユーザーを分けたいなどの場合は、自力でopenssh, vsftpd などを設定する必要があります。
ロードバランサーを使っている場合は、インスタンス間で同期も取られているかモニターする必要もあります。
ですから、要件によってはアプリケーション層のみ面倒を見ておけばよい共有ホスティングでも良いと思っています。
コメント