AWS初学者の私がAWS RDSを使って、SQL Serverを構築する手順をまとめたいと思います。
また、SQL Server接続で発生するエラー:53の解決方法にも触れたいと思います。
この記事を読んでわかること
・ネットワーク作成、セキュリティグループ作成などゼロからsqlserverを構築する手順がわかる。
・陥りがちなエラー対応がわかる
前提
今回のゴールは、手元のPCからRDSで作成したSQL Serverに接続することです。
そのため、本番環境や実際の実務で検討すべきセキュリティ面については考慮していませんので、ご了承ください。
そのあたりも追々深堀りできればと思っています。
構成図
今回作成する構成図は以下のようなシンプルな構成のものです。
【今回のゴール】
AWS上のパブリックサブネット上にRDSインスタンスを作成し、クライアントPC(手元で触っている実機)からSSMS(SQL Server Manegment Studio)で作成したRDSに接続し、テーブル作成やSQLクエリの実行を行います。
私が経験した構成においても、実務においてRDS(データベース)をパブリックサブネットに配置することはほとんどないかと思います。実際にはパブリックサブネットにEC2サーバーを配置し、プライベートサブネットにRDSを配置する、もしくはパブリックサブネットに踏み台用のEC2サーバーを配置し、プライベートサブネットにEC2サーバーとRDSの両方を配置するといった構成が多かったです。
しかし、今回は前述したように手元のPCからRDSで作成したSQLServerに接続できるという基本部分を実施したいと思います。
VPC作成(事前準備①)
まずは、AWS上に自分だけのネットワーク空間を作成します。
①「VPC」メニューを開き、「VPCを作成」を押します。
②「VPCなど」を選択し、VPCを作成していきます。
今回はインターネットゲートウェイやサブネット、ルートテーブルなどVPCを作成するにあたって基本となる設定を一気に自動で作成するため、「VPCなど」を選択しました。
VPCのみを作成したい場合は、「VPCのみ」を選択してください。VPCのみ作成した場合で今回と同様のネットワーク空間作成したい場合やVPCの基本を確認したい方は次の記事で詳しく解説しています。
スポンサーリンク
②AZの数は2、パブリックサブネットの数は2、プライベートサブネットの数も2で作成します。
今回は、プライベートサブネットは利用しませんが、基本的な構成となるため作成してしまいます。
注意点としては、AZが2つになること、サブネットが2つになるようにしてください。事前準備②でサブネットグループを作成する際に、これらの設定が重要となります。
IPアドレスについては今回の趣旨ではないため、任意で構いません。
③NATゲートウェイは不要、VPCエンドポイントも不要です。
以上で、今回構築すうネットワーク空間の土台ができました。
サブネットグループ作成(事前準備②)
続いて、RDSを作成するために必要となるサブネットグループ作成します。
サブネットグループについてはこちらの記事をご確認ください。
スポンサーリンク
①RDSを作成する際に利用するため、RDSメニュー>サブネットグループ>サブネットグループを作成から作成可能です。
②サブネットグループ名と動作するVPC、AZ、サブネットグループに含まれるサブネットを指定します。
まずは、このサブネットグループをどのVPC空間で利用するかを指定し、そして、どのAZにまたがるか、どのサブネットを含めるかを指定します。
③最後にサブネットグループが作成されたことを確認します。
セキュリティグループ作成(事前準備)
次に、RDSに割り当てるセキュリティグループ、つまりファイアウォールを事前に作成しておきます。
セキュリティグループは、EC2メニュー>セキュリティグループ>セキュリティグループを作成から作成することができます。
次のように、MSSSQL(タイプ)からのあらゆる接続(ソース)を許可するということでセキュリティグループを作成しておきます。
RDS作成
いよいよ、RDSを作成します。
①RDSメニューを選択し、データベースの作成を押します。
②データベースを選択します。
標準作成を選択し、Microsoft SQL Serverを選びます。
③データベース管理タイプとエディション、バージョンを選択します。
管理タイプはRDSを選択します、エディションは無料ということでExpressを選択しておきます。バージョンは特に拘りがなければ最新で問題ありません。
④その他の設定を行います。
無料枠を利用します。
作成するインスタンス名の設定、DBインスタンスにログイン(SSMSでログイン)する時のユーザ名とパスワードを決めます。
⑤インスタンス設定、ストレージを指定します。
デフォルトのままで問題ありません。
⑥接続情報を設定します。
RDSインスタンスを配置するVPC、サブネットグループ、パブリックアクセスの有無、セキュリティグループ、アベイラビリティゾーンを決めます。
パブリックアクセスに関しては今回の設定では、RDSに直接接続するため「あり」を選択します。「なし」を選択した場合に発生するエラーについては後述します。
⑦認証機関情報、SQL Server Windows認証設定を行います。
認証機関情報はデフォルトで問題ありません。
Windows認証についてはSSMSでログインする際に利用することもできますが、今回は利用しません。
⑧追加設定を行います。
追加設定として、バックアップを無効しておきます。実際の開発環境、検証環境、本番環境ではバックアップを取得しておくべきですが、今回は料金を低く抑えるために無効設定にします。
⑨データベースの作成を押して、RDSインスタンスを作成します。
⑩作成されたRDSインスタンスを確認します。
エンドポイントを確認し、控えておきます。
エンドポイントは、RDSインスタンスに接続する際のタッチポイント、接続点となります。
SSMSのインストール
上記まででRDSを作成することができました。
続いて、SQL Serverに接続するために利用するSQL Server Management Studio(SSMS)をインストールします。今回は、手元のPC(クライアントPC)から直接RDSに接続するため、クライアントPCにSSMSをインストールしますが、EC2インスタンスをパブリックサブネットに構築し、RDSをプライベートサブネットに構築し、EC2インスタンスからRDSインスタンスに接続するような場合は、EC2インスタンスにSSMSをインストールします。
以下のサイトからダウンロード可能です。
また、日本語版無料をインストールすることができます。
SQL Server接続とSQL実行
いよいよRDSインスタンスに接続します。
①SSMSを起動しログインします。
サーバ名:RDSインスタンスのエンドポイントとポート番号を貼り付けます。ポート番号を抜かすと接続できないので注意してください。
例:sqlserver-1.chakichaki12345.ap-northeast-1.rds.amazonaws.com,1443
下図の左右どちらでもログインできますが、暗号化については、必須の場合はサーバー証明書を信頼するにチェックを入れた状態とします。
②ログインに成功しました。
③データベースを作成します。
データベースを選択し、「新しいデータベース」作成からデータベースを作成します。
④テーブルを作成します。
⑤任意のテーブルを作成します。
⑥作成したテーブルにデータを登録後、登録したデータを確認します。
実行するSQL文は以下を利用しますが、データ登録と取得ができれば問題ありません。
insert into test_table(shain_id,shain_name,shain_rank) values (‘00001′,’suzuki’,’S’);
select * from test_table;
データ登録と取得に成功したことを確認できました。
よくあるエラー
SSMSから接続する際に、Microsoft SQL Server、エラー258のエラーが出ることがあります。これは、接続先のRDSインスタンスに接続できなかったことを意味しています。
確認ポイントとしては、今回の例でいえば、RDSをパブリックサブネットに配置して直接RDSに接続しようとしているためパブリックアクセス可能「いいえ」になっている場合に上記エラーが発生します。または、プライベートサブネットにRDSインスタンスを配置している場合、つまり、サブネットグループに含まれるサブネットがプライベートサブネットになっている場合は、パブリックアクセス可能「はい」であっても、プライベートサブネットがインターネットと接していないため接続することができず上記エラーが発生します。
参考記事
すごくわかりやすかったです。
自分用の備忘録的な感じで、なんとなくの理解でまとめました。
以上です。
コメント