

# チュートリアル: 開発から本番環境までの MySQL DB インスタンス環境の管理
<a name="tutorial-managing-MySQL-DB"></a>

## 序章
<a name="tutorial-managing-MySQL-DB.introduction"></a>

Amazon RDS DB インスタンスを管理する一般的なシナリオでは、初期開発から本番デプロイまでのライフサイクルを監視します。このチュートリアルでは、データベースのパフォーマンスを最適に保ち、変化する運用ニーズに合わせて適応できるように、主要なタスクを処理するためのガイダンスを提供します。さらに、開発環境と本番環境の間で行われた変更を同期して一貫性と信頼性を確保するオプションについても概説しています。

これらの手順を実行することで、次のことが理解できます。
+ Amazon RDS タグの追加と更新、ストレージの拡張、リードレプリカの作成、リソースの削除など、MySQL DB インスタンスで特定のタスクを実行する方法。
+ 包括的なテストと検証のために、本番環境から開発環境に更新を同期する方法。

 このチュートリアルを完了するには、次のタスクを実行します。

1. MySQL DB インスタンスを作成します。

1. Amazon RDS タグを追加して、DB インスタンスを開発環境として分類します。

1. DB インスタンスのストレージ容量を増やして、ワークロードの増加に対応します。

1. リードレプリカを作成して、DB インスタンスの耐障害性と可用性を強化します。

1. Amazon RDS タグを更新して、DB インスタンスを本番環境として分類します。

1. 追加コストが発生しないように、不要になった DB インスタンスを削除します。

1. 次のステップ: 開発インスタンスを本番環境と同期して、環境間で一貫性を保つ

## 前提条件
<a name="tutorial-managing-MySQL-DB.Prerequisites"></a>

開始する前に、以下のセクションのステップを完了してください。
+ [AWS アカウントへのサインアップ](CHAP_SettingUp.md#sign-up-for-aws)
+ 

## タグを追加して DB インスタンスを開発環境として分類する
<a name="tutorial-managing-MySQL-DB.add-RDS-Tags"></a>

DB インスタンスを開発環境として分類するには、作成したインスタンスに Amazon RDS タグを追加します。Amazon RDS タグは、定義して RDS インスタンスに関連付けるキーと値のペアです。AWS リソースにタグを付けることで、開発リソースと本番環境用 AWS リソースを区別しやすくなります。Amazon RDS タグの詳細については、「[ Amazon RDS リソースのタグ付け](USER_Tagging.md)」を参照してください。

1. Amazon RDS コンソールで、**[データベース]** を選択します。

1. タグを付ける DB インスタンスを選択します。

1. [詳細] セクションで、**[タグ]** セクションまでスクロールします。

1. **[タグを管理]** を選択し、**[新しいタグを追加]** を選択します。

1. [**タグキー**] と [**値**] の値を入力します。例えば、タグキーとして environment を使用し、値を dev に設定することで、そのデータベースインスタンスが開発環境の一部であることを指定できます。

1. **[新しいタグを追加]**、**[変更を保存]** の順に選択します。

これで、DB インスタンスが開発環境としてタグ付けされました。これにより、DB インスタンスの識別と、このリソースに関連するコストの管理が容易になります。

## DB インスタンスのストレージ容量を増やして、データニーズの増加に対応する
<a name="tutorial-managing-MySQL-DB.increase-DB-storage"></a>

次に、追加のデータに対応するために、MySQL DB インスタンスのストレージ容量を変更します。初期状態では、DB インスタンスのストレージ容量は、アプリケーションの即時のニーズを満たすように設定されています。ただし、データボリュームの増加に応じて、データベースのパフォーマンスと安定性が維持されるようにストレージ設定を調整する必要がある場合があります。このプロセスでは、DB インスタンスの割り当て済みストレージを増やします。DB インスタンスのストレージ容量の変更に関する詳細については、「[Amazon RDS DB インスタンスのストレージを使用する](USER_PIOPS.StorageTypes.md)」を参照してください。

1. Amazon RDS コンソールで、**[データベース]** を選択します。

1. 変更する DB インスタンスを選択します。

1. **[Modify]** (変更) を選択します。

1. ストレージで、**ストレージ割り当て**を増やします。変更後のストレージの値は、現在の値よりも大きくなければなりません。

1. [**続行**] をクリックしてください。

1. **[変更のスケジューリング]** では、**[すぐに適用]** を選択して DB インスタンスにストレージの変更をすぐに適用するか、**[次回のメンテナンス時間帯に適用]** を選択して、次のメンテナンス時間中に変更を適用できます。

1. 設定が適切な場合は、**[DB インスタンスを変更]** を選択します。

これで DB インスタンスのストレージ容量が増加しました。これにより、より大きなデータボリュームを効果的に処理でき、アプリケーションのデータニーズの増加に応じてパフォーマンスと安定性が維持されます。

## リードレプリカを作成して DB インスタンスの耐障害性と可用性を強化する
<a name="tutorial-managing-MySQL-DB.create-read-replicas"></a>

MySQL DB インスタンスのリードレプリカを作成します。リードレプリカは、DB インスタンスの耐障害性と可用性を強化します。プライマリ DB インスタンスの読み込みトラフィックを減らすには、DB インスタンスのリードレプリカを作成します。これにより、クエリがリードレプリカにルーティングされ、負荷の分散とデータベース全体のパフォーマンスの向上に役立ちます。DB インスタンスのリードレプリカの詳細については、「[DB インスタンスのリードレプリカの操作](USER_ReadRepl.md)」を参照してください。

MySQL DB インスタンスがレプリケーションのソースとして機能するには、ソース DB インスタンスで自動バックアップを有効にする必要があります。これを行うには、バックアップ保持期間の値を 0 以外の値に設定します。MySQL リードレプリカの詳細については、「[MySQL リードレプリカの使用](USER_MySQL.Replication.ReadReplicas.md)」を参照してください。

1. Amazon RDS コンソールで、**[データベース]** を選択します。

1. リードレプリカのソースとして使用する DB インスタンスを選択します。

1. [アクション] で **[リードレプリカを作成]** を選択します。

1. **[DB インスタンス識別子]** に、リードレプリカの名前をすべて小文字で入力します。

1. インスタンス設定を選択します。リードレプリカでもソース DB インスタンスと同等以上の DB インスタンスクラスとストレージタイプを使用することをお勧めします。

1. **AWS リージョン** では、リードレプリカの作成先のリージョンを指定します。

1. デフォルト設定のままにするか、必要に応じて変更します。

1. [**Create read replica**] を選択します。

リードレプリカは、RDS コンソールの **[データベース]** ページのソース DB インスタンスの下に表示されます。ロール列に**レプリカ**が表示されます。

## タグを更新して DB インスタンスを本番環境として分類する
<a name="tutorial-managing-MySQL-DB.update-tags"></a>

DB インスタンスを開発段階から本番環境に移行する準備ができたら、移行を反映してタグを更新することが重要です。DB インスタンスを運用戦略とモニタリング戦略に合わせるため、DB インスタンスが本番環境の一部になったことを示すように初期タグを更新します。これにより、データベースの可視性と管理が向上します。

1. Amazon RDS コンソールで、**[データベース]** を選択します。

1. 更新する DB インスタンスを選択します。

1. [詳細] セクションで、**[タグ]** セクションまでスクロールします。

1. **[タグを管理]** を選択します。

1. 開発環境を示している初期タグを**削除**します。

1. **[新しいタグを追加]** を選択します。

1. **[タグキー]** と **[値]** に新しい値を入力します。例えば、タグキーとして environment を使用し、値を prod に設定することで、その DB インスタンスが本番環境の一部であることを指定できます。

1. **[新しいタグを追加]**、**[変更を保存]** の順に選択します。

DB インスタンスのタグが更新され、データベースが本番環境に移行されたことを示します。

### 追加コストが発生しないように、不要になった DB インスタンスを削除する
<a name="tutorial-managing-MySQL-DB.delete-unecessary-resources"></a>

このチュートリアルを終了する前に、リソースの管理を行うことが重要です。不要になったリソースがある場合は、追加コストが発生しないように削除し、クラウド環境を最適化する必要があります。

1. Amazon RDS コンソールで、**[データベース]** を選択します。

1. 削除する DB インスタンスを選択します。

1. [アクション] で、**[削除]** を選択します。DB インスタンスを削除すると、そのすべてのコンテンツと関連リソースを含むインスタンスが完全に削除されます。

1. **[削除]** を選択して、DB インスタンスの削除を確定します。

または、DB インスタンスを将来使用するために維持することを選択した場合でも、本番環境の一部として引き続き管理できます。これには、包括的なテストと検証を容易にするために、同期された開発環境を維持することが含まれます。詳細については、「[次のステップ: 開発インスタンスを本番環境と同期して、環境間で一貫性を保つ](#tutorial-managing-MySQL-DB.next-steps-synch-env)」を参照してください。

### 次のステップ: 開発インスタンスを本番環境と同期して、環境間で一貫性を保つ
<a name="tutorial-managing-MySQL-DB.next-steps-synch-env"></a>

#### 開発環境を作成する
<a name="next-steps-synch-env.create-development-env"></a>

本番環境を管理するには、包括的なテストと検証のために、同期された開発環境を維持することが重要です。新しい開発環境を作成するには、まず現在の本番環境 DB インスタンスの DB スナップショットを作成します。DB スナップショットは、ストレージボリュームスナップショットを作成して DB インスタンス全体をキャプチャします。Amazon RDS コンソールで DB スナップショットを作成する方法については、「[Amazon RDS のシングル AZ DB インスタンスの DB スナップショットの作成](USER_CreateSnapshot.md)」を参照してください。

本番環境の DB スナップショットを作成したら、DB スナップショットを復元して、開発環境用の新しい DB インスタンスを作成します。復元された DB インスタンスは、デフォルトの DB パラメータグループとオプショングループに自動的に関連付けられます。ただし、カスタムパラメータグループとオプショングループは、復元中に指定することで適用できます。DB スナップショットの復元手順については、「[チュートリアル: DB スナップショットからの Amazon RDS DB インスタンスの復元](CHAP_Tutorials.RestoringFromSnapshot.md)」を参照してください。

最後に、Amazon RDS タグを更新して、新しい DB インスタンスを新しい開発環境として指定します。この変更を反映するために Amazon RDS タグを更新する方法については、前のセクション「[タグを更新して DB インスタンスを本番環境として分類する](#tutorial-managing-MySQL-DB.update-tags)」を参照してください。

これで、本番環境のデータベース設定をミラーリングする新しい開発環境ができました。

#### 開発環境と本番環境を同期する
<a name="next-steps-synch-env.synchronize-environments"></a>

新しい開発環境が確立されたら、本番環境で発生した変更と同期を保つ必要があります。これにより、開発環境に本番環境の現在の状態が正確に反映されます。これは、効果的なテスト、検証、トラブルシューティングに不可欠です。Amazon RDS には、開発環境を本番環境の最新の状態に保つさまざまな方法が用意されています。これらのオプションの詳細については、「[Orchestrating database refreshes for Amazon RDS and Amazon Aurora](https://aws.amazon.com/blogs/database/orchestrating-database-refreshes-for-amazon-rds-and-amazon-aurora/)」を参照してください。

開発環境と本番環境を同期する主な方法の 1 つは、DB スナップショットを作成して復元することです。DB スナップショットを使用すると、スナップショットの作成時の本番環境のデータベース設定を反映する開発環境を作成できます。DB スナップショットの詳細については、「[手動バックアップの管理](USER_ManagingManualBackups.md)」を参照してください。DB インスタンスの復元の詳細については、「[DB インスタンスへの復元](USER_RestoreFromSnapshot.md)」を参照してください。

DB スナップショットは、以下のユースケースで特に有用です。
+ 開発環境の初期設定: DB スナップショットは、スナップショット作成時の本番環境の正確な状態を反映する一貫したベースラインを提供するため、テスト用の初期開発環境を作成する際に役立ちます。
+ 高トラフィックアプリケーション: 継続的な運用が重要な本番環境では、スナップショットにマルチ AZ 配置を使用すると、プライマリデータベースの I/O 停止を回避し、中断のないパフォーマンスと高可用性を確保できます。
+  異なる RDS アカウント間でのデータ共有: DB スナップショットを異なる AWS アカウント 間で共有できるため、アカウントまたはリージョン間でのデータ転送が容易になります。これは、さまざまな目的でデータ共有が必要となる共同プロジェクトやシナリオで役立ちます。詳細については、「[Amazon RDS の DB スナップショットを共有する](USER_ShareSnapshot.md)」を参照してください。

このチュートリアルでは、DB インスタンスのライフサイクル全体にわたる管理に不可欠なタスクについて学びました。DB インスタンスの作成、Amazon RDS タグの追加と更新、ストレージの拡張、リードレプリカの作成方法を学習しました。また、これらの基本的な操作を基にして、本番環境を効果的に管理する方法についても学びました。これには、テスト用の開発環境を確立し、一貫性を保つために本番環境と同期することが含まれます。これらのタスクを行うことで、データベースインフラストラクチャの耐障害性とスケーラビリティを維持し、Amazon RDS 環境を効率的に運用できます。