ヤマムギ

growing hard days.

*

AWS RDS でMySQLインスタンスを構築する

      2015/05/16


Amazon Web ServiceにはAmazon Relational Database Service というデータベースサービスがあります。
EC2に立ち上げたOSにデータベースを構築してもいいのですが、データベース管理タスクをサービスとして機能提供してくれているので、AWS上でシステム構築するのであれば、基本的にはRDSを使っていこうと思います。

EC2インスタンス上ではなくRDSでデータベースを構築するメリット

公式サイトに様々な情報がありますが、特筆すべきは下記と思います。

  • 自動バックアップとディザスタリカバリ
  • ソフトウェアの自動パッチ適用
  • CPU、ディスク、メモリ使用量に関する測定値をダッシュボードに表示
  • ホットスタンバイ(Multi-AZ配置)

MySQLインスタンスを構築する

他のサービス同様に数プロセスで完了します。

aws-rds-1

[Services]で[RDS]を選択してRDSの画面で[Instances]-[Launch DB Instance]を押します。

aws-rds-2

[Select Engine]でMySQL,PostgreSQL,ORACLE,SQLServerから選択出来るので、[MySQL]を選択して[Select]を押します。

aws-rds-3

とりあえず今回は無料利用枠をなるべく使いたいので、[No, this instance is intended for use outside of production or under the RDS Free Usage Tier]を選択して、[Next Step]を押します。

aws-rds-4

デフォルトから変更した項目

  • [DB Instance Class] まずは最低の[db.t1.micrp – 1vCPU,0.613 GiB RAM]を選択。
  • [Multi-AZ Deployment] ホットスタンバイですが、どれぐらい料金が発生するのかも知りたいのと、本番稼働するのであれば必須だろうと思い、Yesにしてます。
  • [DB Instance Identifier] インスタンス名
  • [Master Username],[Master Password],[Confirm Password]

[Allocated Storage]は後でも増やせるので最低の5GBで始めます。

[Next Step]を押します。

aws-rds-5

[Network & Security]は何も変更していません。
既存のセキュリティグループも使用出来ますが、OSのセキュリティグループの設定に引きずられるのも違うかと思いまして、[Create new Security Group]にしています。

[Database Options]では、[Database Name]を設定しています。

まだ続きがあるので下にスクロールします。

aws-rds-6

バックアップとメンテナンスの設定をします。

  • [Backup Retension Period] バックアップ保持期間は1日にしました。
  • [Backup Window] 実行時刻を2時-5時で設定しました。(UTCなので-9時間)
  • [Auto Minor Version Upgrade] 自動でパッチをあてるようにします。
  • [Maintenance Window] 日曜日9時に実行されるようにしています。(UTCなので-9時間)

aws-rds-7

[View Your DB Instances]を押して作成開始。

[Instances]ビューでステータスがavailableとなれば完了です。

EC2から接続する

セキュリティグループの設定

rds-sg

EC2のセキュリティグループIDを確認して、RDSのセキュリティグループのインバウンド送信元に設定します。
設定方法はデフォルトで操作している端末のグローバルIPアドレスが設定されていると思いますので、それを参考にして送信元をIPアドレスではなくEC2のセキュリティグループにします。

ホスト名の確認

ホスト名はEndpointという項目にあります。
「~ rds.amazonaws.com」までがホスト名です。

aws-rds-9

EC2から接続してみる

EC2にログインして、下記コマンドを実行して確認します。

[bash]
$ mysql -h -u -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 35
Server version: 5.6.22-log MySQL Community Server (GPL)

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

mysql>
[/bash]

無事成功です。


最後までお読みいただきましてありがとうございました!

【PR】 「AWS認定試験対策 AWS クラウドプラクティショナー」という本を書きました。

【PR】 「AWSではじめるLinux入門ガイド」という本を書きました。

【PR】 「ポケットスタディ AWS認定 デベロッパーアソシエイト」という本を書きました。

【PR】 「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル」という本を書きました。

 - AWS , ,

ad

ad

  関連記事

ALBにWAFを関連付けて特定のヘッダー以外はブロックする

おかげさまで、ブログのアクセスも増えてきて、t3.nano EC2インスタンス単 …

Microsoft TeamsのOutgoing Webhooksを使ってAWS Lambda(Python), Amazon API Gatewayとbot

Microsoft Teamsの検証その2、Slackで実装しているbotも対応 …

AWS Global Acceleratorでアクセラレーターを作成する

バージニア北部、東京、大阪のEC2インスタンスをエンドポイントにして作成してみま …

RDS for MySQL のインスタンスタイプ変更

当ブログのデータベースは、RDS for MySQLです。 個人利用ですし、障害 …

Amazon EC2 Auto ScalingのVPCは変更できる

EC2 Auto ScalingのVPCは変更できたっけ??と思いまして試しまし …

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー」執筆裏話

今日2019/4/20発売となりました「AWS認定資格試験テキスト AWS認定ク …

SCPが影響しないサービスにリンクされたロールにEC2が引き受けるIAMロールは含まれないことを確認

ドキュメントで確認 サービスコントロールポリシーのユーザーガイドには、「SCPは …

AWS Elastic Beanstalkによって作成されたS3バケットはDeleteBucketが拒否されていた

ちょっとした検証をしたあとに、Elastic Beanstalkのアプリケーショ …

AWS Lambdaで「Process exited before completing request」

AWS lambdaで「Process exited before comple …

IAMユーザーのマネジメントコンソールログインパスワードを変更してDynamoDBに記録するLambda(Python)

やりたいこと IAMユーザーのマネジメントコンソールへのサインインパスワードを動 …