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?

More than 3 years have passed since last update.

【AWS入門】RDSでMySQL環境を構築してEC2上のWebアプリと連携

Last updated at Posted at 2020-10-26

VSCode Remote Containersで.NET Core + MySQL + Elasticsearchの開発環境構築 の続きです。

今回はRDSを使用したMySQLインスタンスをAWS上に構築し、EC2インスタンス上に配置されたWebアプリから接続するところまでをご紹介しようと思います。

#環境
MySQL 8.0.20

#RDSインスタンスの作成
まずはRDSインスタンスを作成していきましょう。
以下手順でRDSのコンソールを開き、データベースの作成メニューを開いてください。

  1. AWSマネジメントコンソールにログイン
  2. 「サービス」の「すべてのサービス」にRDSを入力
  3. RDSへのリンクが表示されるので押下
  4. RDSコンソールが表示されるので、「データベースの作成」を押下

以降各セクションごとに説明します。


###データベースの作成方法
簡単作成でも問題ありませんが、今回は練習の意味で標準作成を選択します。
スクリーンショット 2020-10-21 3.32.21.png

###エンジンのオプション
MySQLを選択します。
バージョンは8.0.20にしました。
スクリーンショット 2020-10-26 19.21.14.png

###テンプレート
今回は勉強用なので、無料利用枠を使用します。
スクリーンショット 2020-10-21 3.31.23.png

###設定
MySQLに接続するマスターユーザの情報を入力します。
今回はインスタンス名をasp-net-app-db、ユーザ名はデフォルトのadminに設定しました。
パスワードは適宜設定してください。

また、ユーザ名とパスワードは後ほど接続文字列を設定する際に利用するので、どこかに書き留めておいてください。
スクリーンショット 2020-10-26 19.27.01.png

###DB インスタンスサイズ
無料枠なのでdb.t2.microのみ有効です。
そのまま進みましょう。
スクリーンショット 2020-10-21 3.31.43.png

###ストレージ
ストレージタイプ、ストレージ割り当てはそれぞれデフォルト値でOKです。
ストレージの自動スケーリングについては、万が一なにか起こった場合にスケールされるのを防ぐため、一応チェックを外しておきました。
スクリーンショット 2020-10-26 19.35.25.png

###可用性と耐久性
このセクションは無料枠の場合特に設定できる項目がないので次に進みます。

###接続
RDSのインスタンスを配置するVPCを選択してください。
要件として、VPC内に別々のアベイラビリティゾーンに属するサブネットが最低2つ必要です。
スクリーンショット 2020-10-21 3.33.08.png

次に、追加の接続設定を編集していきます。

設定名 設定値
サブネットグループ デフォルト値
パブリックアクセス可能 なし
VPCセキュリティグループ 事前に作成したセキュリティグループ
アベイラビリティゾーン 指定なし
データベースポート 3306

※VPCセキュリティグループについてはポート3306が開いている必要があります。

スクリーンショット 2020-10-26 19.50.19.png

###データベース認証
パスワード認証を設定します。
スクリーンショット 2020-10-21 3.35.05.png

###追加設定
最初のデータベース名にasp_net_sampleを入力し、それ以外は全て無効に設定します。

スクリーンショット 2020-10-21 3.36.07.png
スクリーンショット 2020-10-21 3.36.28.png


設定後、データベースの作成を押下するとインスタンスの作成が開始されます。

#接続文字列をServiceの環境変数に記述
最後に前回作成したアプリケーションからRDSインスタンスを参照できるように、Serviceの環境変数を編集します。

EC2インスタンスにSSH後、以下コマンドを実行します。

$ sudo vim /etc/systemd/system/kestrel-asp-net-app.service

#Environment=ASPNETCORE_ENVIRONMENT=Production以下に追加
Environment=DB_CONNECTION_STRING=server=サーバのエンドポイント;uid=admin;pwd=パスワード;database=asp_net_sample
Environment=ELASTIC_SEARCH_SERVER=http://localhost:9200

Environment=ELASTIC_SEARCH_SERVER=http://localhost:9200
これについては何かしら入れておかないとエラーになるため、ダミーでもいいので追加しておきます。
Elasticsearchのドメインがある場合はそのURLを記入しましょう。
Elasticsearch Serviceについてはこちら

設定後、反映のためEC2インスタンスを再起動します。

#確認
ローカルマシンにてhttp://サーバIP/をブラウザで開いてください。
RDSインスタンスが作成されたばかりでテーブルが存在していないので、環境の初期化を押下します。
以下のような画面が表示されれば正常に動作しています。
スクリーンショット 2020-10-27 0.05.05.png

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?