EC2慣れしてしまった人に向けたAmazon Lightsailの備忘録

# はじめに
EC2に慣れていると、Lightsailでのコマンドやパスの違いに毎回戸惑うので、備忘録としてここに記します。

# ドキュメントルート
```console
$ pwd
/home/bitnami/htdocs
```

# パス
## Apache
```console
$ sudo cat /opt/bitnami/apache2/conf/bitnami/bitnami.conf
```

### ログファイル
```console
$ pwd
/opt/bitnami/apache2/logs
```

## PHP
```console
$ sudo cat /opt/bitnami/php/lib/php.ini 
```

## MariaDB
```console
$ sudo cat /opt/bitnami/mariadb/conf/my.cnf
```

## Supervisor
```console
$ sudo cat /etc/supervisor/conf.d/xxxxx.conf
```

# 起動
ApacheやMariaDBの起動コマンド。

## Apache
```console
$ sudo /opt/bitnami/ctlscript.sh start apache
Started apache
```

## MariaDB
```console
$ sudo /opt/bitnami/ctlscript.sh start mariadb
Started mariadb
```

## Supervisor
```console
$ sudo supervisorctl reload
Started supervisord
```

## エラーに関する備忘録
### ERROR 2002 (HY000): Can't connect to local server through socket '/opt/bitnami/mariadb/tmp/mysql.sock' (13)

ローカルのMariaDBの起動時に上記のエラーになる場合があります。
原因には下記の3つが考えられます。

1. そもそもMariaDBが起動していない
2. `mysql.sock`ファイルが存在しない
3. `my.cnf`に記述された`mysql.sock`ファイルのパスが間違っている

私の場合は、なぜか2が原因でMariaDBの起動に失敗する事が多いので、2の対処方法について記します。

通常、MariaDBの再起動で`mysql.sock`ファイルが作られるのですが、再起動コマンドに失敗してしまう事があります。
そんな場合は`mysql.sock`ファイルを手動で作成してからMariaDBを再起動します。

```console
$ sudo touch /opt/bitnami/mariadb/tmp/mysql.sock
$ sudo chown mysql:mysql /opt/bitnami/mariadb/tmp/mysql.sock
$ sudo chmod 660 /opt/bitnami/mariadb/tmp/mysql.sock
```

やっぱり再起動コマンドに失敗する場合は、Lightsailのコンソールからインスタンスの再起動をするとうまく起動してくれます。

# 停止
ApacheやMariaDBの停止コマンド。

## Apache
```console
$ sudo /opt/bitnami/ctlscript.sh stop apache
Stopped apache
```

## MariaDB
```console
$ sudo /opt/bitnami/ctlscript.sh stop mariadb
Stopped mariadb
```

## Supervisor
```console
$ sudo supervisorctl stop
Stopped supervisord
```

# 再起動
ApacheやMariaDBの再起動コマンド。

## Apache
```console
$ sudo /opt/bitnami/ctlscript.sh restart apache
Restarted apache
```

## MariaDB
```console
$ sudo /opt/bitnami/ctlscript.sh restart mariadb
Restarted mariadb
```

## Supervisor
```console
$ sudo supervisorctl reload
Restarted supervisord
```

# ステータス確認
ApacheやMariaDBのステータス確認コマンド。

## まとめて確認
```console
$ sudo /opt/bitnami/ctlscript.sh status
apache already running
mariadb not running
php-fpm already running
```

## 個別に確認
### Apache
```console
$ sudo /opt/bitnami/ctlscript.sh status apache
apache already running
```

### MariaDB
```console
$ sudo /opt/bitnami/ctlscript.sh status mariadb
mariadb already running
```

### Supervisor
```console
$ sudo supervisorctl status
xxxxx-queue:xxxxx-queue_00       RUNNING   pid 11296, uptime 0:00:02
xxxxx-queue:xxxxx-queue_01       RUNNING   pid 11297, uptime 0:00:02
```

## エラーに関する備忘録
### Cannot find any running daemon to contact. If it is running, make sure you are pointing to the right pid file (/var/run/gonit.pid)

ステータス確認コマンドの実行時に、何らかの理由で`gonit`プロセスが停止していてステータスが取得できず、上記のエラーになる場合があります。
そんな時は`gonit`を実行してステータスの再取得を行います。

```console
$ sudo gonit
Starting gonit daemon
```

```console
$ sudo gonit status

Uptime                         4s
Last Check                     2024-02-07 09:32:15.746035815 +0900 JST m=+0.011323676
Next Check                     2024-02-07 09:34:15.746035815 +0900 JST m=+120.011323676
Pid                            1797
Pid File                       /var/run/gonit.pid
Control File                   /etc/gonit/gonitrc
Socket File                    /var/run/gonit.sock
Log File                       /var/log/gonit.log
Process 'apache'
  status                                        Running
  pid                                               737
  uptime                                             4s
  monitoring status                           monitored

Process 'mariadb'
  status                                        Stopped
  uptime                                             0s
  monitoring status                           monitored

Process 'php-fpm'
  status                                        Running
  pid                                               681
  uptime                                             4s
  monitoring status                           monitored
```

# 参考サイト
https://lightsail.aws.amazon.com/ls/docs/ja_jp/all

# おわりに
以上、Lightsailに関する備忘録でした。