質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

解決済

2回答

476閲覧

AWS RDSがなぜつながるのか

kkr64

総合スコア27

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

0クリップ

投稿2018/09/29 02:40

AWS初心者です。
RDSにつながる仕組みがよくわかりません。

EC2にはいってmysqlをインストールし、
RDSを作成しますが、どの作業をしたときにEC2とRDSが紐づけられるのかがわかりません。

RDSでprivateサブネットの登録をしますが、publicサブネットに属するEC2とどのようにいつ関連付けられるのかがわかりません。
詳しく教えていただけますでしょうか。よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

kkr64さんの環境が下記の状態という前提でお答えします。

  • publicサブネットにEC2インスタンスが作成されている
  • privateサブネットにRDS(MySQL)インスタンスが作成されている

まず【EC2にはいってmysqlをインストール】という点ですが、これはMySQLクライアントを使いたいためにyumでmysqlパッケージをインストールしたということではないかと推測します。
この点については実際にインストールされた方に聞いてみるのが確かだと思いますが、仮にmysqlパッケージをインストールしたということであれば、下記のようにEC2からmysqlコマンドでRDS(MySQL)に接続してSQL文を実行することが可能になります。(後述しますが他にもセキュリティグループの設定が必要です)

$ mysql -h "RDSのエンドポイント" -u "DBユーザー名" -p

"RDSのエンドポイント"とはRDSの接続先の情報のことになります。RDSインスタンスを作成すると自動的に割り当てられる接続名でこの名前を使って接続することができます。
この部分は、たとえばWindows PCにMySQLをインストールした場合、コマンドプロンプトから次のコマンドを実行するとWindows PC上で実行しているMySQLに接続できるのと同様です。

> mysql -h localhost -u "DBユーザー名" -p

次に【RDSを作成しますが】という点は、EC2でmysqlを(yumで)インストールすることと、RDSのインスタンスの作成は別の作業になります。
RDSインスタンス自体はAWSのWebコンソールから作成したと思いますが、この点もRDSインスタンスを作成された方にお聞きするのが確実だと思います。

それから、AWSではデフォルトの状態ではEC2からRDSへは接続できませんので、上述した通りEC2からRDSへ接続するためのセキュリティグループの設定が必要です。
このセキュリティグループの設定では、RDSに接続できるEC2インスタンスを「EC2インスタンスのIPアドレス」で設定することができます。
EC2インスタンスのMySQLクライアントから上記のコマンドでRDSに接続できるのであれば、セキュリティグループの設定にこのEC2からの接続が許可されているということになります。

質問文にある【EC2とどのようにいつ関連付けられるのかがわかりません】という疑問の答えとしては、上記の通りRDSのセキュリティグループにEC2からの接続許可が設定されているからということになりますが、
確実な答えが必要な場合は、AWSのWebコンソールからRDSのセキュリティグループの設定をご確認ください。

コメント欄でご質問のサブネットについて

publicサブネットとprivateサブネットで、違うサブネットに通信できているのはどういう仕組みなのかという所がわかりません。

例えばwordpressの場合、自動的にRDSのあるprivateサブネットに対して通信が行われているのでしょうか?

まず、publicサブネットとprivateサブネットの違いですが、AWS ドキュメント » Amazon VPC » ユーザーガイド » VPC とサブネット
VPC とサブネット
というページが詳しいので一度ご確認ください。

ポイントを引用すると

サブネットのトラフィックがインターネットゲートウェイにルーティングされる場合、そのサブネットはパブリックサブネットと呼ばれます。

インターネットゲートウェイへのルートがないサブネットは、プライベートサブネットと呼ばれます。

このようにpublicとprivateはインターネットからのアクセス(インバウンド(inbound)といいます)、およびインターネットへのアクセス(アウトバウンド(outbound)といいます)ができるかどうかの違いです。

  • wordpressをpublicサブネットに配置するのは、インターネットを介したユーザーからのアクセスがあるから
  • RDSをprivateサブネットに配置するのは、インターネットからのアクセスは不要で、wordpressからのみのアクセスに制限したいから

だと思います。

サブネットが違うインスタンス同士が通信できるのは、ルートテーブルが設定されているからです。サブネットには必ずルートテーブルが設定されていてデフォルトで通信できるようになっていますが、実際にはさらにインスタンスやRDSに設定するセキュリティグループで通信の許可が必要です。

下図はpubicサブネットのルートテーブルの内容ですが、ターゲットの"igw-0e3f28a5290e8714f"とはインターネットゲートウェイのことです。
また、ターゲットに"local"というのがあると思いますが、この設定でVPC内のルーティングができます。
イメージ説明

下図は一例ですが、RDSのセキュリティグループには特定のEC2インスタンス(ソース)からポート3306へのアクセスを許可する(インバウンドルール)が必要です。
イメージ説明

投稿2018/09/29 09:16

編集2018/09/30 08:48
rubytomato

総合スコア1752

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kkr64

2018/09/29 15:46

回答ありがとうございます。 おっしゃる通りの環境で構築してます。 ローカルでmysqlをインストールして、それとRDSが紐づいているイメージなのですが違いますか? ネットワークの知識が乏しいのでこのような疑問がでるのかもしれませんが、 publicサブネットとprivateサブネットで、違うサブネットに通信できているのはどういう仕組みなのかという所がわかりません。 例えばwordpressの場合、自動的にRDSのあるprivateサブネットに対して通信が行われているのでしょうか?
rubytomato

2018/09/30 08:16

> ローカルでmysqlをインストールして、それとRDSが紐づいているイメージなのですが違いますか? RDSと紐づくというイメージがどのような状態を指しているのかによりますので、kkr64さんがお持ちの”紐づくイメージ”というものについて、質問文の方へ追記して頂けると助かります。説明が難しい場合は、それを説明・解説しているサイトのリンクでもかまいません。 ここでは、EC2のmysqlクライアントがRDSにアクセス(ログイン)できる状態を”紐づいている”と仮定すると、EC2にmysqlをインストールしただけでは、”紐づく”という状態にはなりません。回答にも記載していますが、接続を許可するためのセキュリティグループの設定が必要です。
rubytomato

2018/09/30 08:51

> publicサブネットとprivateサブネットで、違うサブネットに通信できているのはどういう仕組みなのかという所がわかりません。 回答に追記していますのでご確認ください。
kkr64

2018/10/01 05:38

回答ありがとうございます。 ルーティングテーブルを設定すれば、通信がおこなわれるのですね。 何か特別なプログラムが動いているのかと思っていました。
guest

0

EC2にはいってmysqlをインストールし、

RDSを作成しますが

この時点で疑問なのですが、RDSを作成するにあたって「EC2にはいってmysqlをインストール」する必要はありません。ひょっとすると、RDSではなく「EC2のローカルに入れたMySQLデータベース」を使っているだけかもしれません。

投稿2018/09/29 03:01

maisumakun

総合スコア145123

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問