2022/05/27

AWS CLIを活用してAmazon RDSを管理する方法とは?AWSCLIを利用するメリットについても紹介

 
  

そもそもAmazon RDSとは

Amazon RDSは、AWSが提供するクラウド上で使えるリレーショナルデータベース(RDB)です。今使われているWebサービスのほとんどが、RDBを利用していることから、RDBはWebサービスに必須の機能と言えるでしょう。 そして、そのようなRDBを、サーバーを設定することなく、安全にクラウド上で使えるサービスがAmazon RDSです。次から、Amazon RDSに何ができるかを中心に、その機能を紹介します。

サーバー構築が不要

一般的にデータベースを利用しようとする場合、サーバーにデータベース管理ソフトをインストールして利用するのが一般的です。この方法は、AWSならAmazon EC2でサーバーを設定することで利用できます。 しかし、データベースの規模が大きくなると、その管理は簡単ではありません。例えばサーバーのリソースは十分でしょうか。さらに、バックアップやレプリケーションなどの十分な障害対策も必要です。他にも配慮が必要な項目は幾つもあります。 そのような、面倒なサーバー構築やデータベース実行環境の管理をAWSに任せて、データベースの機能だけを利用できるのがAmaozn RDSです。

使えるデータベースの選択肢が多い

Amazon RDSでは、オープンソースで利用者の多いMySQL、MariaDB、PostgreSQLや、商用データベースで利用する企業の多いOracle DAtabase、Microsoft SQL Server、さらに、AWSがクラウド上で性能を発揮できるようにカスタマイズしたAmazon Auroraから選べます。 そのため、Webシステムを新規に構築する場合はもちろん、既存のシステムをAWS上のサービスで作り直す、といった用途でも利用可能なサービスです。 さらに、Amazon RDSでは、複数のDBの運用をコンソールから一元管理できるので、システムの拡張などにも容易に対応できます。

支払いは使った分のみ

Amazon RDSを使用すると、データベースインスタンス1つごとに月額料金が発生します。つまり、データベースインスタンスが少ない場合は費用を抑えられますが、多い場合は高い費用がかかります。 実際のWebサービスで使われるデータベースでは、本番環境の他に、同じテーブル構造を持つテスト環境や開発環境が幾つも作られて、いろいろな用途で使われます。 Amazon RDSでは、その全てを稼働状態にしておけば費用がかかりますが、普段使わないデータベースを停止状態にしておけば課金されません。このように、実際に使った分だけの費用の支払いで、データベースを利用できる点もAmazon RDSのメリットです。

AWS CLIでAmazon RDSを管理

先ほど説明したように、クラウドで運用するデータベースとしてメリットの多いAmazon RDSには、管理する手段としてWebブラウザから使えるRDSマネジメントコンソールと、コマンドラインから操作するCLIが用意されています。 次から、コマンドラインから操作するCLIを使った、管理方法について解説します。

AWS CLIとは

AWS CLIは、LinuxやmacOSのターミナル、または、Windowsのコマンドプロンプトから実行する、AWSサービスを管理するための統合ツールです。専用ツールからコマンドを打ち込んで実行するのが基本ですが、スクリプトに書くことで、処理の自動化にも利用されます。 なお、AWS CLIの専用ツールは、AWSの公式サイトからダウンロードして、インストールして利用してください。また、利用するためには、アクセスキーIDとシークレットアクセスキーの設定が必要です。 そして、コマンドラインから実行する場合、多くのオプションからやりたい機能を選ばなければなりません。AWSには、リファレンスマニュアルが用意されているので、使用する前にチェックしてください。

AWS CLIでRDSに対してできること

先ほど説明したように、Amazon RDSは、クラウド上で利用できるリレーショナルデータベースです。そして、ほとんどの操作は、Webブラウザからアクセスする管理コンソールで実施できます。 ただし、Amazon EC2のサーバーに設定したデータベースのように、クライアントソフトを利用した細かい設定はできません。そのような細かい設定に使われるのが、AWS CLIです。 AWS CLIには、データベースを新規に作るといった簡単な機能から、レプリケーションの管理といった高いスキルを必要とする設定まで対応しています。

AWS CLIを利用するうえでの注意

Amazon RDSをAWS CLIから管理するうえで、注意してほしいことは、コマンドを実行したら、それがすぐに反映されるとは限らない点です。 これは、Amazon RDSには、幾つもの障害対策が施されており、設定がその全てに反映されるまでに、時間がかかります。そのため、すぐに設定が完了するとは限りません。 なお、AWS CLIには、設定した内容が反映されたかをチェックする機能もあるので、それらをうまく活用してください。

AWS CLIでRDSの管理を自動化

AWS CLIを利用するメリットの1つは、スクリプトに組み込んで、定期的に自動実行できる点です。さらに、データベースの稼働状況をCSVファイルに定期的に書き出して、表計算ソフトでチェックする、といったこともできます。 AWSには、Amazon EC2で複数のWebサーバーを稼働している場合、AWS CLIを組み込んだスクリプトを定期的に実行して管理する例が紹介されていますが、Amazon RDSに対しても同じような管理が可能です。 次から、そのようなAWS CLIでRDSの管理を自動化する例を紹介します。

RDSのインスタンスを自動で停止する

リレーショナルデータベースを運用する際、本番環境の他に、テスト環境や開発環境を利用します。しかし、使っていないテスト環境や開発環境でも、Amazon RDSでは費用が発生することから、こまめな起動と停止が必要です。 そして、そのようなケースでは、定期的にRDSのインスタンスを自動で停止するスクリプトが使われます。AWS CLIでインスタンスを停止するコマンドは、次のとおりです。
AWS CLIでインスタンスを停止する例
aws
 rds stop-db-instance\
 --db-instance-identifier ${INSTANCENAME}
これは、awsコマンドの「rds stop-db-instance」により、データベースのインスタンスを停止する例です。「${INSTANCENAME}」で停止するインスタンスを指定しています。 同じように、起動するスクリプトを作成する場合は、次のコマンドを使います。
AWS CLIでインスタンスを起動する例
aws
 rds start-db-instance\
 --db-instance-identifier ${INSTANCENAME}

RDSのスナップショットを定期的に実行する

Amazon RDSには、標準で障害対策が施されており、障害が発生してもすぐに復旧できます。しかし、古いスナップショットは保存されていません。 そのため、毎月1回、1年分のスナップショットを残す、といったケースでは、AWS CLIを利用して別途スナップショットを作らなければなりなせん。 そして、AWS CLIのRDSのスナップショットを作成する機能が利用したコマンドをスクリプトに組み込み、それを定期的に実行すれば、スナップショットは簡単に作れます。
AWS CLIでRDSのスナップショットを作るコマンドの例
aws \
 --output text\
 rds copy-db-snapshot '\
 --source-db-snapshot-identifier ${SNAPSHOT}\
 --target-db-snapshot-identifier ${PREFIX}-${INSTANCE}-${DAY}
この例は、awsコマンドの「rds copy-db-snapshot」により、スナップショットを作るコマンドです。「${SNAPSHOT}」にソースDBスナップショットの識別子を指定し、「${PREFIX}-${INSTANCE}-${DAY}」でスナップショットのコピーの識別子を指定しています。

AWS CLIでAmazon RDSの管理を自動化しよう

これまで解説したように、AWS CLIを利用することで、Amazon RDSの管理を自動化することが可能です。Amazon RDSは、クラウド上で、サーバーにインストールしたよりも多機能なリレーショナルデータベースが利用できる点がメリットです。 AWS CLIを利用して、そのようなAmazon RDSをうまく運用してください。]]>

ITエンジニアへのキャリアチェンジならキャリアチェンジアカデミー

この記事の監修者・著者

株式会社オープンアップITエンジニア
株式会社オープンアップITエンジニア
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞

おすすめの動画

  • 【未経験からIT業界へ転職するなら】相談窓口とスキルの獲得はここで解決!IT転職が一気に有利に!【キャリアチェンジアカデミー】

  • 【費用一切不要】未経験からIT業界へ転職するならまずはここへ相談!【キャリアチェンジアカデミー】

  • 【何のエンジニアになれるのか?】未経験からITエンジニアを目指すとこんな道がある【キャリアチェンジアカデミー】