AWS Lightsail LAMP インスタンス作成 初回時メモ

今回は、AWS Lightsailで、新規のインスタンス作成を行った際のメモとなります。

  • LAMP環境インスタンス生成
  • Apache挙動確認
  • DB挙動確認

基本的には、AWS Lightsailの公式ドキュメントに記載されている内容と同じものになります。

Amazon Lightsail インスタンスを作成する

ただし、こちらのメモでは、個人的に確認したかった工程が多く含まれていますので、

純粋な手順を確認したい方は、公式ドキュメントを参照頂くことをお勧めします。

LAMP(PHP7)の構成について

今回私が、Lightsailのインスタンスとして用意する構成は、以下の内容となります。

・スペック:512 MB RAM、1 vCPU、20 GB のSSD

・構成:Debian 10、LAMP(Apache2、MySQL8、PHP7)

AWS Lightsail LAMP 内容

単一のインスタンスに、全てを含めます。

LAMP環境 インスタンス生成

まずは、Lightsailの画面を開きます。

AWS マネジメントコンソールのサービスのLightsailをクリックするか、

ソリューションの構築の仮想サーバーを使用して構築するをクリックします。

その後、Lightsailのホーム画面が表示されたら、インスタンスの作成のボタンをクリックします。

 

インスタンスのロケーションと、インスタンスイメージを選択します。

今回の場合、アプリ + OS を選択して、LAMP(PHP7)を選択します。

 

続けてオプションの選択を行います。

オプションは、インスタンス生成後にも変更することができます。

SSHキーペアマネージャーは、後から指定することにしました。

私の場合、作成したインスタンスのバックアップをこまめに取りたかったので、

自動スナップショットを有効にしました。

スナップショットはバックアップの様なもので、

残しておくと、スナップショットを作成したインスタンスの内容で、

新しいインスタンスを作成することができます。

(現時点では、スナップショットを自身のインスタンスに直に反映させる術はありません。)

ただし、インスタンスのボリュームに比例したサイズのスナップショットが生成されるため、

毎日スナップショットが生成されると、ディスク使用率が増加して、

結果的に料金が増加する可能性があるので、注意が必要です。

 

次に、インスタンスのプランを選択します。

今回は、検証用であり、そこまでのスペックは必要ないので、

月次:$3.5USD、メモリ:512MB、CPU:1 vCPUを選択します。

次に、インスタンス名を決めて入力します。

キータグなどは、インスタンス生成後でも設定できますので、

一旦追加なしで、インスタンス生成ボタンをクリックします。

 

インスタンスが生成されると、インスタンスの管理画面が表示されます。


Apache 挙動確認

インスタンスが生成された時点で、LAMPが起動しています。

完全に自動化されているため、不備がある可能性は低いですが、

構成状況の確認も兼ねて、動作の確認を行います。

 

まず、接続タブにて、割り振られたパブリックIPを確認します。

 

確認したパブリックIPをブラウザのURL欄に入力してアクセスすると、以下の画面が表示されます。

こちらの画面が表示されていれば、Apacheが起動しています。

 

念のため、SSHで接続して内容を確認します。

接続タブSSHを使用して接続ボタンをクリックすると、SSHの接続を行えます。

 

デフォルトの設定では、以下のディレクトリにhttpのアクセスログ、エラーログが出力されます。

/opt/bitnami/apache2/logs/

先ほどブラウザでページの表示確認を行ったので、

正常にApacheが動作していれば、access_logが出力されているはずです。

尚、デフォルトの設定のままの場合、

Apacheのドキュメントルートは、以下のパスになっています。

/opt/bitnami/apache2/htdocs/

こちらのパスに配置されているindex.htmlが、先ほどブラウザで表示されたhtmlとなります。

 


bitnamiアプリケーション パスワード確認

AWS Lightsailで自動生成されるLAMP環境は、bitnamiを利用して整備されています。

bitnamiには、アプリケーションパスワードが存在しています。

sshでDBにアクセスする場合などに、アプリケーションパスワードが必要になりますので、

念のため、確認しておきます。

 

パスワードは、以下のコマンドを実行すると、bitnamiアプリのパスワードを確認できます。

cat bitnami_application_password

※homeディレクトリ以外で実行する場合は、環境変数を利用して以下のように実行します。

cat $HOME/bitnami_application_password

 


MySQL 設定 挙動確認

  • MySQLログイン確認

デフォルトでは、MySQLのルートユーザーのパスワードは、

bitnamiアプリケーションのパスワードが設定されていますので、

bitnamiパスワードでログインを行います。

初回は以下の様にrootでログインします。

mysql -u root -p;

ログインを行った後は、ユーザーを作成することをお勧めします。

ユーザー作成・権限設定のコマンドは以下のメモを参考に頂ければと思います。

MySQL インストール 接続 基本コマンド

 

  • MySQLセキュリティ設定

MySQLの最低限のセキュリティ設定を行います。

私がインスタンスを作成した際に、望ましいセキュリティ設定は、

mysql_secure_installationを実行することだった為、

一旦こちらでセキュリティ強度を高めることにしました。

※セキュリティ設定は、最適解が変わりやすいです。

こちらを実施頂く前に、最新のMySQLのセキュリティ設定方法を、調べて頂くことをお勧めします。

 

以下このコマンドを実行して、セキュリティ設定を行っています。

mysql_secure_installation

【注意点】

こちらのセキュリティ設定を全てYesで行うと、以下を行えなくなります。

実施頂く場合、事前準備を行ってください。

  • rootユーザーでのリモートログインが行えなくなる。(他のユーザーが存在しない場合、MySQLにログインできなくなります)
  • sshでMySQLにリモートアクセスできなくなります。

まず、rootユーザーのパスワードを入力します。

※rootユーザーのパスワードを変更していない場合、bitnamiパスワードを入力します。

VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?

まず、パスワード設定時の強度確認用のコンポーネントを追加するか確認が入ります。

問題なければ、yを入力します。

Using existing password for root.
Change the password for root ? ((Press y|Y for Yes, any other key for No) :

次に、rootパスワードの変更確認が入ります。

問題なければ、yを入力して変更します。

Remove anonymous users?

MySQLに存在する匿名ユーザーの削除確認が入ります。

問題なければ、yを入力します。

Disallow root login remotely?

rootユーザーのリモートログインを禁止するか確認が入ります。

問題なければ、yを入力します。

Remove test database and access to it?

テストデータベースの削除確認が入ります。

問題なければ、yを入力します。

Reload privilege tables now?

権限テーブルの再読み込み確認が入ります。

問題なければ、yを入力します。

 


 

以上となります。

今回の内容は、かなり個人的な確認事項が多く含まれています。

Lightsailは、EC2に比べて費用を抑えることができます。

もちろん、セキュリティ面や保守も自分で行う必要はありますが、

最近はコンテナも利用できる様になりましたので、

色々なサービスを利用できるので便利です。

 

都内でエンジニアをやっています。 2017年に脱サラ(法人設立)しました。 仕事で調べたことや、気になったことをメモしています。
投稿を作成しました 173

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


関連投稿

検索語を上に入力し、 Enter キーを押して検索します。キャンセルするには ESC を押してください。

トップに戻る