Linode Managed Databasesを使ってみる

# Linode Managed Databases とは

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/61c0e90f-8fd2-b8e2-7dfa-53e0f2c9e621.png)


Linodeでは、2022年4月にMySQL、PostgreSQLのマネージドデータベースをリリースしました。
データベースはどのアプリケーションにとっても最も重要な構成要素の1つですが、クラスター環境などを用意するのには手間がかかります。
Linode Managed Databasesを使用すると、数クリックでデータベースインスタンスを作成することができ、初期構築の手間を省くことができます。

Linode Managed Databasesは、次のような機能や利点を提供しています。

簡単なセットアップ：Linode ManagerというWebベースのインターフェイスを使用して、数クリックで新しいデータベースインスタンスを作成できます。

複数のデータベースエンジン：MySQL、PostgreSQL など、複数の人気のあるデータベースエンジンから選択できます。

セキュリティ：Linode Managed Databasesには、SSL暗号化、ファイアウォール、データバックアップなど、データを保護するためのさまざまなセキュリティ機能が含まれています。

参考情報：**[Akamai、Linode Managed Database を発売](https://www.akamai.com/ja/newsroom/press-release/akamai-launches-linode-managed-database)**

:::note info
Redis、MongoDB については今後対応予定です。
:::

# Linodeのマネージドデータベースを作成する

Cloud ManagerからDatabasesを選択し、Create Database Clusterからデータベースを作成します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/073b5cd0-eb3f-be52-1658-42108ce6a5ff.png)

作成する際にはいくつかのパラメーターをセットする必要があります。

Cluster Label : 任意のクラスター名を入力
Database Engine : MySQL v5.7.x/8.0.x PostgreSQL v14.x/13.x/12.x/11.x/10.xのいずれかを選択
Region : 任意のリージョンを選択
Choose a Plan : 任意のインスタンスタイプを選択
Set Number of Nodes : 冗長構成にする場合には3 Nodesを選択
Allowed IP Address or Range : データベースの接続を許可するネットワークアドレスを入力

:::note info
Allowed IP Addressを設定しない場合、データベースには接続できません。データベースにはPublic IPも付与されるため外部から接続するためのIPも設定ができます。
:::

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/bd5bdf26-2125-f78b-3a30-381a1a822d93.png)

:::note info
データベースの作成には30分程度時間がかかります。
:::

今回はMySQLを作成しました、StatusがActiveになれば接続が可能です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/c7906d0e-aa94-dcf7-a5ef-fc963672fd37.png)


## データベースに接続する

作成したMySQLにPrivateIPが付与されているLinodeインスタンスから接続をします。

その際、接続先となるデータベースの情報はDatabasesの画面より確認ができます。

接続先はprivate network hostを利用することで転送費用がかからずに接続することができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/2bb7ff4d-b478-2112-1094-a183eca7dc5e.png)

```
root@localhost:~# mysql --host=lin-11111-1111-mysql-primary-private.servers.linodedb.net --user=linroot --password --ssl-mode=required
```

試しにMySQL Versionを確認します。

```
mysql> select version();
+------------+
| version()  |
+------------+
| 5.7.30-log |
+------------+
1 row in set (0.00 sec)
```

以上で構築は完了です。

## バックアップ

マネージドデータベースは日時バックアップが自動で取得され、7日間保存されます。

参考情報：**[Guides - Manage Backups](https://www.linode.com/docs/products/databases/managed-databases/guides/manage-backups/)**

Backupのタブから履歴を確認することが可能です。
また、特定のバックアップからリストアすることができます。

:::note alert
データをリストアすると現在のデータはすべて削除されます。リストアの時間はデータ量によって異なります。
:::

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/4d6b8c5a-84ef-3797-0220-b7fe93da3042.png)

Restore Databaseをクリックするとリストアが開始されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/c540f434-75aa-0df7-030d-8ef0e0573e24.png)

リストアを開始するとステータスがRestoringに変化します。

<img width="400" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/3e03780c-e38b-4e70-f0ef-7bfb24808a1d.png">

## 更新とメンテナンスウィンドウの設定

Linode Managed Databasesの機能として、データベースのクラスターは定期的に更新されます。これらの更新にはOSのセキュリティ更新とパッチ適用が含まれます。

更新は、ユーザーが決めたメンテナンスウィンドウで実施されます。

デフォルトでは、毎週日曜日20:00(UTC)で設定されています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/c6173bc4-a89a-ffde-f300-1762b324dec7.png)

:::note alert
データベースが1ノードで構成されている場合、更新が発生するとメンテナンスウィンドウ中にダウンタイムが発生します。ダウンタイムを回避する必要がある場合にはクラスターモードでの構築を推奨します。
:::

:::note info
データベースのソフトウェアは自動的に更新されません。新しいMySQLなどのバージョンにアップグレードするには、移行する手順を検討する必要があります。
参考情報：**[Migrate a MySQL or MariaDB Database](https://www.linode.com/docs/products/databases/managed-databases/guides/migrate-mysql/)**
:::

# まとめ

Linode Managed Databasesを利用することで、クラスター構成を簡単に構築し、運用負荷の低減を図ることもできます。

# 関連記事

アカマイ・テクノロジーズ合同会社はQiitaでLinode関連など開発者向けの記事を掲載しております。

https://qiita.com/organizations/Akamai