0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

EC2を踏み台にしたRDSに対してDB操作を実施する

Last updated at Posted at 2024-02-25

概要

AWSのRDS(MySQL)を配置し、これに対してテーブルを定義するまでの手順を一通り起こす。
SS内に伏字にするべき内容がわんさか乗っているが、一応全部リソース全部消してから記事公開しているので無問題のつもりです。

教材には以下2つのUdemyの動画を利用しました。
会社支給のビジネスアカウントなので無料でした。最高!

データベース基礎からAmazon RDSの構築・管理を網羅的に学習する講座(AWS実践力強化)
AWSのリソース捜査関係のところ(手順1~4まで)についてはこちらで勉強しています。

【22日間で学ぶ】SQL文、分析関数、テーブル設計、SQLチューニングまでMySQLで覚えるSQL実践講座
手順5のSQL分についてはこちらで勉強しました。

背景

本業でMySQLを触り始めたが、全体的に解像度が低いので、AWS上のRDSでテーブル定義するところまでを触っておきたかった。

手順

1. VPCの配置

プライベートサブネットにRDSを配置し、これに対してパブリックサブネットに配置したEC2を踏み台にして接続できるようにしたい。
そのためにまずVPCの環境を作る。

image.png

「VPCなど」を選択してルーティング、サブネットの作成、エンドポイントの設定等全部一括で作る。
CIDRのマスクを16から24に変更しているが、今回はEC2とDBを1つずつ配置するだけなのでマスク範囲を広くしている。

2. EC2を作成

image.png

1.の手順で作成したVPC内の環境のうち、パブリックサブネットに当たるサブネットで配置されるように設定する。
このEC2に対してSSH接続するため、キーペアを作成し、パブリックIPも割り当てておく。

image.png

セキュリティグループ設定については初期設定のままで問題ない。

3. RDSを作成

まずRDSのページの画面左側にあるサイドナビゲーションから、サブネットグループを選択してサブネットグループを作成しておく。
選択するサブネットはプライベートサブネットとして割り当てられているものを選択する。
直接DBにアクセスできるような環境にしたくないからね...

image.png
image.png

以下スクショのような感じで設定してDBを作成する。

ap-northeast-1.console.aws.amazon.com_rds_home_region=ap-northeast-1.png

環境構築のおさらいみたいな使い方を想定しているので無料利用枠を利用している。
マルチAZがしたいとかであればそれ相応のテンプレートを選択して下さい。
マスターパスワードは後々使うので残しておくこと。

DBサブネットグループは、先ほど作成したグループを割り当てる。

しばらく待ってDBが作成出来たら、DBに割り当てられたVPCのセキュリティグループに対し、インバウントルールの設定として、踏み台にしたEC2インスタンスのプライベートIPv4アドレスを割り当てる。
これをすることで、特定のEC2からDBに対してアクセスをすることができるようになる。

image.png
image.png
image.png

4. 接続

image.png
MySQL WorkBenchにて、こんな感じで設定を入力。

設定項目名 入力内容
SSH Hostname 踏み台にするEC2のパブリックIPv4アドレス
SSH Username "ec2-user"で固定
SSH Password 入力しない
SSH Key File EC2インスタンスを作成するときに一緒に作ったキーペアのpemファイル
MySQL Hostname 作成したDBのエンドポイント
MySQL Server Port 作成したDBのポート
Username 変更していなければ"admin"
Password DBを作成するときに指定したパスワード
Default Schema 入力しない

設定がうまくいっていれば、これで接続できるはず。

なお、DBのエンドポイントとポートについては以下赤丸を参照。
image.png

5. SQLを用いたDB操作

作成されているデータベースの一覧を見る

show databases;

image.png

データベースを作成する

create database qiita_db;
show databases;

image.png
qiita_dbという名前でDBを作成できている。

データベースを削除する

drop database qiita_db;
show databases;

image.png
qiita-dbという名前で作成していたデータベースが削除されている。

使用するデータベースを選択する

create database qiita_db;
use qiita_db;
select database();

image.png
useで利用するデータベースを宣言できる。
select database()で、現在利用中のデータベースの名称を確認できる。

作成されているテーブルを見る

show tables;

image.png
作成直後のデータベース内で作成されているテーブルの一覧を取得している。
空なので、何もないことが出力から確認できる。

データベース内にテーブルを作成する

create table users(
	id int,
    name varchar(10),
    age int,
    phone_number char(13),
    message text
);
show tables;

image.png
空だったテーブル一覧に、usersテーブルが追加されていることがわかる。

テーブルの定義を取得する

describe users;

image.png
usersテーブルを作成する際に指定されたカラムの属性等が取得できる。

テーブルを削除する

drop table users;
show tables;

image.png
作成したusersテーブルが削除されて、データベース内のテーブルがなくなったことを確認している。

テーブル名の変更

create table users(
	id int primary key,
    name varchar(10),
    age int,
    phone_number char(13),
    message text
);
alter table users rename to users_table;
show tables;

image.png
usersという名称で作成したテーブルが、users_tableに変更されていることが確認できる。

カラムを削除する

alter table users_table rename to users;
alter table users drop column message;
describe users;

image.png
先頭行は、テーブルの名称をusersに戻している。
messageカラムが削除されている。

カラムを追加する

alter table users add post_code char(8);
alter table users add gender char(1) after age;
alter table  users add new_id int first;
describe users;

image.png
post_codeという列を8文字で作成している。
場所の指定について何もない場合は、一番最後にカラムが追加される。
after句をつけると、指定したカラムの後にカラムを作成することができる。
first句をつけると、先頭にカラムが作成される。

カラムのデータ型を変更する

alter table users modify name varchar(50);
describe users;

image.png
name列がvarcharの文字数10だったのが、50に変更されている。

カラム名称・カラム位置の変更

alter table users change column name namae varchar(50);
alter table users change column gender gender char(1) after post_code;
describe users;

image.png
name列がnamae列へと名称が変更されている。
また、gender列がpost_codeの後ろに位置が移動している。

さいごに

やること多くてむずかしいですね

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?