プログラミング勉強日記
2021年5月19日
EC2インスタンスにプライベートサブネットに設定して、それをMySQLサーバーにするアーキテクチャを紹介する。
まず、プライベートサブネット内にLinuxを選択したEC2インスタンスを起動して、このEC2インスタンスにMySQLをインストールしてMySQLのDBサーバーにする。この構成としては、WebサーバーからDBサーバーとなるEC2インスタンスにアクセスをする。これらの構成をするためにはアクセス時にはWebサーバーからダイレクトにアクセスするが、返信トラフィックを受け取るためにはNATゲートウェイが必要になる。
アーキテクチャのパターン
データベースを設定する基本的なパターンは3つある。
WebサーバーもMySQLサーバーも1つのEC2インスタンスに入れる
EC2インスタンスを作りすぎないため、コストを抑えられる。シンプルなWebサイトを作る際に向いている。(大きなサイトには向いてない)
データベースレイヤーとWebサーバーのWebレイヤーを分ける
基本的な主流なパターン。これには、EC2インスタンスにMySQLサーバーを設定するパターンとMySQLなどのデータベースを動かすことができるRDSを使う2つのパターンがある。
こちらは2つのレイヤーに分かれているので、セキュリティを高めることや冗長化の構成をやりやすくすることができる。
(↑パブリックサブネットにWebサーバーを設置してプライベートサブネットにEC2のMySQLサーバーを設置してレイヤーを分ける)
(↑パブリックサブネットにWebサーバーを設置してプライベートサブネットにRDSのMySQLサーバーを設置してレイヤーを分ける)
このEC2インスタンスにMySQLサーバーを設定する場合とRDSにMySQLサーバーを設定する場合の違いとしては、アンマネージド型とマネージド型というのが大きな違い。RDSはマネージド型サービスなので、スケーリングやバックアップなどの管理をAWS側で行ってくれる。MySQLサーバーをEC2インスタンス内に立ち上げると、ソフトウェアのメンテナンスはユーザ側が行う。