MySQLのこと。

MySQLのことについてまとめているブログ。他人に見せる用でもなく、自分の勉強備忘録。検索インデックスも外してるので、辿りついた方・・・ようこそ。そんな大した情報ないですよ?!たまにアルゴリズムの練習も

AWSで最低限のアーキテクチャを構築する【工事中】

はじめに

ここではAWSを使って、下記の最低限のアーキテクチャを構築する手順をまとめておく。まだわかってない部分多い。

VPC内にパブリックサブネット、プライベートサブネットを用意し、EC2はプライベートサブネットに配置し、RDSをプライベートサブネットに配置する。RDSには、EC2を踏み台サーバーとして利用してアクセスする。このようなアーキテクチャを作る。そこからフェイルオーバーなどを設定していく。

f:id:AZUMINO:20200723001132j:plain

RDSの設定準備

まずは下記の4つ内容をまとめる。

  • サブネットグループ設定
  • パラメタグループ設定
  • オプショングループ設定
  • セキュリティグループ設定

サブネットグループ設定

サブネットグループでは、RDSを構築するAZとサブネットをグループとして指定する。マルチAZ構成を構築する際にフェイルオーバーする複数のAZやサブネットの設定で利用する。

パラメタグループ設定

DBのパラメタの設定のこと。一度設定したDBのパラメタ設定は共有することが可能。

オプショングループ設定

これはDBエンジンに応じて追加の機能を設定するグループ。

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

これはRDSのファイアウォールの設定のことで、トラフィックの制御に関する設定。

VPCの設定

VPCのサービスの画面から「VPCウィザードの起動」をクリック。

f:id:AZUMINO:20200722220543p:plain

次は、「パブリックとプライベート サブネットを持つVPC」をクリックして進む。

f:id:AZUMINO:20200722220727p:plain

下記の通りネットワークやAZの設定を行う。設定が終われば「VPCの作成」を押して進む。ここではNATゲートウェイも設定しているが、不要であれば設定する必要はない。

f:id:AZUMINO:20200722221445p:plain

NATゲートウェイとElastic IPの開放の方法は、各サービスのアクションから行う。

f:id:AZUMINO:20200722221845p:plain

f:id:AZUMINO:20200722222117p:plain

VPCの拡張

現状の設定では1つのAZにパブリックサブネットとプライベートサブネットが有る状態なので、ここでは新たに1つ目のAZに同じようにパブリックサブネットとプライベートサブネットを構築する。こうすることでフェイルオーバーができるようにする。「サブネット」のサービス画面に移動し、「サブネットの作成」をクリック。

f:id:AZUMINO:20200722222509p:plain

まずはパブリックサブネットを構築する。ここではap-northeast-1CのAZに構築する。

f:id:AZUMINO:20200722222832p:plain

この状態だと名前はパブリックサブネットCだが、機能としてプライベートサブネットのままなので「ルートテーブル」を開き「ルートテーブルの関連づけの編集」から設定を編集する。

f:id:AZUMINO:20200722223322p:plain

ターゲットの下が「igw**」になるように、ルートテーブルIDを変更する。これでパブリックサブネットCの方もインターネットと通信できるようになる。

f:id:AZUMINO:20200722223541p:plain

次にプライベートサブネットを構築する。同じくap-northeast-1CのAZに構築する。

f:id:AZUMINO:20200722223043p:plain

EC2の構築

踏み台となるEC2を作成する。EC2のサービスの画面に移動し、インスタンスを作成する。

f:id:AZUMINO:20200722223857p:plain

ここではサンプルなので、無料枠のAmazon Linuxを選択する。

f:id:AZUMINO:20200722224004p:plain

ここも無料枠のt2.microを選択する。

f:id:AZUMINO:20200722224101p:plain

VPCの設定を変更する。このEC2はsample-vpcのプライベートサブネットに配置する。

f:id:AZUMINO:20200722224310p:plain

「ステップ 4: ストレージの追加」「ステップ 5: タグの追加」は特に設定しないので画像はなし。

セキュリティグループの設定はEC2からSSHを許可するように設定する。

f:id:AZUMINO:20200722224808p:plain

「起動」を押すとSSHの鍵がダウンロードできるので、然るべき場所で保存する。ここではデモなのでデスクトップにおいておく。

f:id:AZUMINO:20200722225028p:plain

RDSの構築

まずは、サブネットグループ設定、パラメタグループ設定、オプショングループ設定から確認する。

f:id:AZUMINO:20200722230013p:plain

サブネットグループを新たに構築する。

f:id:AZUMINO:20200722230236p:plain

RDSを構築するAZとサブネットをグループとして指定する。マルチAZ構成を構築する際にフェイルオーバーする複数のAZやサブネットを指定する。

f:id:AZUMINO:20200722230523p:plain

ここではパラメタグループ、オプショングループは特に設定しない。それではデータベースを作成する。

f:id:AZUMINO:20200722230831p:plain

ここではMySQL5.7系を使用します。

f:id:AZUMINO:20200722231630p:plain

フェイルオーバーの設定をしたいので、「開発/テスト」を選択。ルートユーザーの設定を諸々する。

f:id:AZUMINO:20200722231638p:plain

「スタンバイインスタンス」を作成しない。

f:id:AZUMINO:20200722231645p:plain

VPC、サブネットグループはさきほど作ったものを設定する。RDSはEC2からのみアクセス可能なので、「パブリックアクセス可能」は「なし」。

f:id:AZUMINO:20200722231650p:plain

EC2から接続できるようにセキュリティグループを変更する。エンドポイントsample-database.cudgswl81len.ap-northeast-1.rds.amazonaws.comもあとから必要なのでメモ。

f:id:AZUMINO:20200722232144p:plain

EC2のプライベートIPアドレスをメモする。ここだと10.0.0.235。「IPv4 パブリック IP」の54.238.231.90は後でMySQLワークベンチからアクセスする際に利用するのでメモ。

f:id:AZUMINO:20200722232410p:plain

インバウンドルールの「編集」からEC2のIPアドレスを許可する。/32IPアドレス全体を許可する意味。

f:id:AZUMINO:20200722232817p:plain

これで踏み台EC2経由でMySQLにアクセスできる。

MySQLに接続

MySQLワークベンチからアクセスしていく。設定は画像の通り。

f:id:AZUMINO:20200722233827p:plain

適当にSQLを実行する。

f:id:AZUMINO:20200722235531p:plain

フェイルオーバーを設定する

RDSのサービスの画面から、現状の設定を確認する。マルチAZは「なし」になっている。これを変更していく。

f:id:AZUMINO:20200722234306p:plain

インスタンスの仕様」のマルチAZ配置を「はい」に変更して保存。

f:id:AZUMINO:20200722234413p:plain

次のページに進み、「すぐに適用」を選択する。

f:id:AZUMINO:20200722234554p:plain

適用するために「再起動」を行う。

f:id:AZUMINO:20200722234717p:plain

再起動する際にフェイルオーバーを実行できるのでそれを設定。これでAZが変更される。

f:id:AZUMINO:20200722235620p:plain

あとかたづけ

一連の作業を実行したので、EC2もRDSも全部削除する。

f:id:AZUMINO:20200723000450p:plainf:id:AZUMINO:20200723000453p:plain