AWS初心者です。
RDSにつながる仕組みがよくわかりません。
EC2にはいってmysqlをインストールし、
RDSを作成しますが、どの作業をしたときにEC2とRDSが紐づけられるのかがわかりません。
RDSでprivateサブネットの登録をしますが、publicサブネットに属するEC2とどのようにいつ関連付けられるのかがわかりません。
詳しく教えていただけますでしょうか。よろしくお願いいたします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

回答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総合スコア1752
0
EC2にはいってmysqlをインストールし、
RDSを作成しますが
この時点で疑問なのですが、RDSを作成するにあたって「EC2にはいってmysqlをインストール」する必要はありません。ひょっとすると、RDSではなく「EC2のローカルに入れたMySQLデータベース」を使っているだけかもしれません。
投稿2018/09/29 03:01
総合スコア146543
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/09/29 15:46
2018/09/30 08:16
2018/09/30 08:51
2018/10/01 05:38