公開するためのホスティングサービスはAmazon Lightsailを選択しました。
Amazonが運営するホスティングサービスが、世界規模でサービスを展開し、大企業から個人まで利用するAmazon Web Service.通称AWSと言われるサービスになります。
非常に、自由度が高く、多岐に渡ったサービスを展開しているので、全貌が掴みにくく、インターネットのインフラに関わるエンジニアの方とかでないと、目的とするホスティングのプランの選定や、実際の使用方法が想定出来ずにいて、興味はありながらも敬遠されている方も多いのではないでしょうか。
私も、Drupalを実際に動かし公開するホスティングサービスとして、なるべく予算をかけず、学習兼サイト運営のような形が取れないかと考えていて、国内のホスティング会社が用意するVPSのサービスを検討していました。
元々、WordPressの運営や、Drupalの運営を、Xserverの共用ホスティングで行なっており、機能面での限界があるので、次のステップとしてVPSを使う事を検討したのですが、その一つとして、AWSのVPSサービスとして、Lightsailというサービスがあることを知ります。
ただ、WEBサイト上の情報を見ると、ハード面やOS、PHPやDBのバージョンが少し古く、目的としているDrupalの11.xを動かす条件が微妙なので、検討先としてはあまり考慮していませんでした。
私を含め、AWSを、日本の個人ユーザーがあまり利用していない理由に、使用方法の説明から、料金、スペックに関わる説明が基本英語で、日本語のマニュアルが整備されておらず、あっても翻訳ソフトの直訳っぽい文章で、内容を理解しにくい事があります。
そんな中、LightsailがBitnamiと提携して、シンプルにCMSを動かせるパッケージを用意しており、その一つにDrupalの最新版をインストールしている環境を見つけたので、これを使ってみようと思い、今回Lightsailを選択しました。
LightsailもAWSのサービスの一つなので、使用するにはAWSにアカウントを作成する必要があります。
ざっくりですが、LightsailにDrupalをインストールして動かすまでにした事をまとめて行きます。
- AWSの登録
- I AMでルート権限を持つルート以外の実行ユーザーを作成
- 実行ユーザーでの再ログイン
- クラウドシェルの確認
- SSH用の鍵認証の準備と確認
- AWSのコンソールからLightsailの選択
- サービスの選定 ここで”アプリとOS”がパッケージになったDrupalを選択
- Lightsailの画面から、サーバーの仕様や構成、オプションを選択
- 仕様が決まったらインストール
- Drupalのインストールが完了
- クラウドシェルコンソールからBitnamiにログイン
- Root権限はないのでsudoでコマンド処理
- インストールされたDrupalの管理画面のパスワードを確認
- Drupalの管理画面にログイン ログイン名やパスワードなどを設定
- LightsailにインストールされているDrupalは動的IPなので静的IPに変更
- この状態で、固定した静的IPアドレスで、DrupalとBitnamiのSSHログインが可能となります。
- 同様にブラウザからDrupalへのアクセスも固定した静的IPでアクセス可能となります。
- DrupalのインスタンスからSSH認証鍵を取得
- BitnamiのSSHログイン確認
- Drupalの基本設定を行い、第三者が勝手に利用出来ないようにする。
- Route53でドメインを取得し、DrupalのインスタンスでDNSの設定を行う。
- Bitnamiのコンソールからmkcertを使いSSLの設定
- Drupalを10.3.3から10.3.5にアップデート
- テーマで使用するBootstrap5のインストール
- トップページなどの体裁を整える。
- 記事や、タクソノミー、Viewsで記事のまとめページの作成
- Amazon Work Mailを使い、取得ドメインでメールアカウントを設定
- Amazon Sinple Email Serviceを使いDNSにMXレコードなどメール関係のレコードの追加
- フォームメールを使うので、bot対策にreCHAPTCHAの設定
のような流れで、WEBサイト構築の進捗が現在の状況になっています。
これまでのプロセスを全て記事にすると、かなりのボリュームになってしまい、私が中途半端に記事を書いても理解しにくい記事となってしまいます。各プロセスで参照した、AWS公式による各機能の解説やBitnami公式の解説を記事後半にまとめますので詳細は公式のガイドをご覧ください。
ApacheとDBの基本設定をBitnamiが行い、最適化したDrupalをLightsail上にインストールした、”アプリとOS”のパッケージを利用しています。このパッケージは、現状Drupal 10.3.xのインストールとなっています。
PHPのバージョンを見ると、8.2.xなのでDrupal11.xのインストールは現状出来ません。DrupalがBitnamiでパッケージ化されているので、LightsailでPHPのバージョンアップを行う影響を確認し検証するまで、しばらくはDrupal 10.3.xでWEBサイトを構築して行きます。
AWSがテストや学習用に、EC2 t2microを1年無料で用意しています。Bitnamiのパッケージに、このプラン用にDrupal 11.0.xが用意されています。最初これを選択することも考えたのですが、学習やテスト的な意味合いの強いプランなので、後々EC2のアップグレードが必要になります。
WEBサイトの公開を考えていて、多少のアクセスと記事のボリュームを考慮すると、t2microでは心許なくt5やt7あたりを選択してインストールした方が良いと考え無料版の利用を控えています。
AWSが用意する無料期間が設定されているインスタンスは、アカウント登録から1度のみの使用となっています。
今回は初めてAWSを使うので、理解しやすいLightsailに標準で用意されている、BitnamiがLightsail用に最適化した”アプリとOS”に用意されているDrupalを使用し、ハード構成は、2vCPU、2GBメモリのデュアル構成、60GBのSSDのストレージ構成で、$12/月のプランを選択しています。
Lightsailで選択したハード構成の基準としたのは、国内のホスティングサービスを展開する会社が用意する、VPSのサービス構成と価格を参考にしています。
このインスタンスも3ヶ月間無料で利用出来ます。この3ヶ月の間に仕様を決めてしまいます。
AWSの理解を難しくしている要素に、AWS内で使用する機能に対する用語が、国内のホスティングサービスで使用されている用語と異なっていることがあります。私も、使用するまで、インスタンスという用語の意味が理解できず、結局何を行えば、Drupalをインストールして使えるのか理解するのに時間がかかりました。
AWSの説明では
クラウドプロバイダーは、データセンターでハードウェアを維持し、インスタンスの形でコンピューティングリソースへの仮想アクセスを提供します。クラウドインスタンスを使用して、コンテナ、データベース、マイクロサービス、仮想マシンなど、コンピューティングを多用するワークロードを実行できます。
となっています。自身で理解できるよう解釈すると
- クラウドサービスが、ハードを切り離して考えるので仮想サービスという言葉になっている。
- ハードを切り離すと言っても、実際には使用しています。ここで言うハードを切り離すは所有権の問題
- 物理的なハードをAWSが所有し、利用者はハードを物理的に所有しない
- 利用者がハードを所有せず、ソフトウエアのみをAWSのハードを借りて使用する
- このプロセスが仮想という言葉になっている。
- インスタンスとはクラウド上で実行出来るソフトウエアの機能の単位
- クラウド上で機能するので仮想アクセスという言葉になっている。
インスタンスは、簡単に言えばクラウド上で使用するソフトウェア機能のパッケージになっています。AWSはこの機能のパッケージを必要に応じて組み合わせてWEBサイトだけでなく目的とするシステムを構築できるできるようになっています。
私のように、古い人間からすると、WEBサーバーは、一台のサーバーにWEBやDB、Mailなどの機能をインストールして動かしているものという考えが頭に残っています。この考えがAWSの基本構成を理解する妨げとなっていましたが、今回AWSを使用してみてなるほどと感じる便利さとテクノロジーの進化を感じています。
余談ですが、仮想サーバーの対にオンプレミスという言葉で占有サーバーがあります。言葉的には物理サーバーないし現実サーバーとなるのでしょうが、それでは言葉が冴えないのでオンプレミスという言葉になっているのかなと余計な事を考えてしまいました。
AWSに限らず、大手の会社が用意するホスティングサービスは、高度にクラウド化されていて、過去に、1台のサーバーに全ての機能を持たせていた状況とは異なり、全ての機能を別のサーバーに分離して専用化しています。
この事で、負荷のかかる機能は台数を増やし強化しながら、負荷のかからない機能は小規模な編成とするなど、1台のサーバーに全ての機能を持たせている状況とは異なる、自由度の高いシステムを構築する事が可能になっています。この事で、コスト面や高負荷時のスケーリングに対して、フレキシブルなシステムを構築できるようになっています。
この、機能を細分化して専門化しパッケージングされたものが、インスタンスという言葉になっています。
インスタンスの意味が理解出来ると、AWSを使用する為に必要な基本概念の理解が進み、管理画面の使い方の意味や、使用する為に必要な構成を考えていけるようになります。AWSは膨大なインスタンスが用意されていますが、その中から必要なものを選定し、どう使用していくかを考える為に必要な基本概念であり、私がAWSを理解する最初の一歩となっています。
この記事内容は私自身が理解するためのものであり、専門家ではないので、本来の意味とは異なる部分もあるかと思いますので、詳しくはAWS公式ガイドを参照下さい。
私がAWSに対して考えていた誤解が、Drupalを動かすには、”EC2”にDrupalのシステムやApacheを持たせ、"RDS"にDB機能を持たせる構成を、最低限用意する必要がある。と考えていました。
この考えていた最低限の構成のネックが、RDSは高度なDBの機能を持つ専用のDBシステムな為、小規模な個人の利用では、オーバースペックとなり料金が嵩んでしまいます。RDSは料金設定がハード面のスペックで提示される為、VPSなどのハードの構成に近いスペックを考えていくと最低$100近くかかってしまい個人の利用としては割高となってしまいます。
LightsailやAmazonが用意する1年間無料パックは、EC2とEBSというストレージにDBを持たせて、RDSを使用するコストを抑えています。私の勘違いが、RDSを使わないとDB機能を持てないので、DrupalなどのCMSが動かないという勘違いでしたが、Amazonも個人の利用は考慮しており、用途やスケールに応じたプランを用意しています。
この考えで構成している、LightsailのBitnamiのパッケージは、個人での利用や小規模なWEBサイトの公開であれば、それなりにアクセスがあっても十分稼働に問題がないスペックを持っています。
今回選択した、Lightsailのパッケージは、DrupalなどのCMSに必要な機能が全て用意されているので、しばらくこれを使用し、OSやPHPのアップデートの影響を検証するまで、10.xで利用し、11.xへのアップデートはOSやPHPの検証を行った後でも大丈夫かと考えています。
- Lightsail Drupal Bitnami -> Drupal
- Route53 -> ドメイン取得
- Amazon Work Mail -> メールアドレス取得/管理
- Amazon Simple Email service -> メール配信サービス
Drupalの設定、DBやApacheの設定はBitnamiにログインして設定出来ます。
Doute53はドメイン取得に使い、DNSはLightsailで管理しています。
Amazon Work MailはGmailやMicrosoft365のOutlookのようなメールクライアントサービス
Amazon Simple Email serviceはDrupalからの送信メールの設定や管理をするSMTPとして使用しています。
以下にインストールしたインスタンスとサービスの公式ガイドのリンクをまとめます。
AWSアカウント -> 公式ユーザーガイド/英語
アカウント作成から、セキュリテーポリシー、IAMでの実行ユーザーの管理をします。クレジットカードの情報はここで登録し請求もここで管理します。
Amazon Lightsail -> 公式ユーザーガイド
Lightsailの管理、Drupalのインストールと管理はここで行なっています。
Lightsail Drupal -> 公式ユーザーガイド
インストールから設定までのガイドになります。Bitnamiの使用方法などもここで解説されています。
Bitnami Package for Drupal for AWS Cloud -> Bitnami Drupalの公式ガイド/英語
コンソールログインの設定、SSHログイン設定、SSLの設定、Composerやdrushを使いテーマやモジュールのインストールをしています。ルート権限はないのでsudoでインストールして行きます。
Route53 -> 公式ユーザーガイド/英語
ドメインの取得をしています。AWSのサービスはここをDNSとして管理しますが、今回Lightsailを使用しているのでLightsailのインスタンスでDNSを管理しています。
Amazon Work Mail -> 公式ユーザーガイド/英語
取得したドメインのメールアカウントの設定とメールクライアントとして使用
Amazon Simple Email Service -> 公式ユーザーガイド/英語
取得したメールの送受信の設定に使用します。
- AWSアカウント取得 -> 請求とユーザー管理
- I AMで設定した実行ユーザー -> 各インスタンスのインストールや設定
- Drupalのインストールと設定 -> Bitnamiで設定
- ドメイン取得と割り当て -> Route53でドメイン取得し、LightsailのインスタンスのDNSで管理
- Amazon Wok Mail -> メールアカウントの作成とメールクライアントとして使用
- Amazon Simple Email service -> 取得したメールの送受信の設定
- Drupalでサイト構築
のようなプロセスでLightsailでDrupalを利用しWEBサイトを公開する為の基本設定を済ませます。
今回、初めてAWSに登録し、Lightsailを使ってみましたが、予想よりシンプルで、慣れると使い勝手の良いサービスとなっています。文章にすると、長い文章となってしまいますが、一つ一つの処理は文章ほど大変ではないので、ガイドにしっかり目を通して、設定情報を理解して設定を行えば、私のような初学者でもWEBサイトの公開が出来ます。
AWSって結局何?と私も思っていましたが、大規模で細分化された機能を、それぞれ分けて強化しているクラウドサービスといったところになります。今回のLightsailはパッケージ化されているので、複数の、専門的で高スペックのインスタンスを組み合わせるよりはるかに料金面でのアドバンテージがあります。
今回の説明は箇条書きのような一つ一つのプロセスをさらっとまとめている記事になっています。
次回以降、なるべく解りやすい形で各プロセスを時系列で記事としてまとめて行きたいと考えています。
ホスティングサービスとしてAWSのLightsailを選択し、Drupalのインストールを行い、新規にドメインを取得しWEBサイトを公開するまでのプロセスを駆け足で記事にしました。各項で補足説明があった方が良いと考えていますので、次項以降行ったプロセスを順を追い記事としてまとめて行きます。
AWS registration and IAM.
次項では、AWSの登録とIAMで別アカウントを登録し使用して行きます。そもそもIAMって何の機能かも理解出来ていなかったので機能の必然性などについてもまとめていければと考えています。