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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

AWS(Amazon Web Services)

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

ASP.NET MVC 4

ASP.NET MVC4は、MVCパターンを利用して、高度なテスト機能と保守機能を備えた Web アプリケーションを開発するためのフレームワークです。

Q&A

解決済

1回答

4225閲覧

Docker(Windows)コンテナからAWS RDSのSQL Serverに接続できない

Yellowbelly

総合スコア7

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

AWS(Amazon Web Services)

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

ASP.NET MVC 4

ASP.NET MVC4は、MVCパターンを利用して、高度なテスト機能と保守機能を備えた Web アプリケーションを開発するためのフレームワークです。

0グッド

0クリップ

投稿2018/03/27 05:14

編集2018/03/27 05:16

前提・実現したいこと

Visual Studio 2017でASP.NET アプリケーション(.NET Framework)を作成し、
MVCのScaffoldingを利用してCRUDアプリのベースを作成したいと考えています。

SQL ServerはAWSに作成したRDSに接続するようにConnectionStringを記述します。
実行環境はDockerで用意し、将来的にはAWS ECSで管理を行う予定です。

発生している問題・エラーメッセージ

通常通りF5ボタンから実行した時はCRUD全て問題なく動作するのですが、
DockerサポートをオンにしてDocker上でデバッグ実行すると、
SQL Serverへの接続に失敗しページの表示がエラーになってしまいます。

エラーの回避方法がわからず、解決方法を探しています。

System.Data.SqlClient.SqlException HResult=0x80131904 Message=A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: TCP Provider, error: 0 - The wait operation timed out.) Source=.Net SqlClient Data Provider スタック トレース: <例外のスタック トレースを評価できません> 内部例外 1: Win32Exception: The wait operation timed out

ConnectionString

<connectionStrings> <add name="MyContext" connectionString="Data Source=RDSのエンドポイント,1433;Initial Catalog=testdb;Persist Security Info=True;User ID=sa;Password=パスワード" providerName="System.Data.SqlClient" /> </connectionStrings>

試したこと

VS2017によって自動的に作成されたWindowsコンテナに入り、
Test-NetConnectionを利用して通信テストを行ったところ、
・外部(Google.com)へのPingは可能だがポート80指定TPC通信は失敗
・自マシンへのPing、ポート80(開放済)指定TPC通信ともに可能
・AWS RDSのエンドポイント、ポート1433指定通信は失敗
という結果になりました。

>・AWS RDSのエンドポイント、ポート1433指定通信は失敗
ここがエラーの原因かとも思うのですが、解消方法がわかりません…

なお、
・自マシンからTest-NetConnectionを利用して、
AWS RDSのエンドポイント、ポート1433指定TPC通信は成功
・下記WEBサービスを利用してのポート開放チェックも成功
https://www.cman.jp/network/support/port.html
上記2点からAWSのセキュリティグループによってDockerコンテナからの
接続が弾かれているということは考えにくいのでは…と思っています。

補足情報(FW/ツールのバージョンなど)

Visual Studio 2017
.NET Framework 4.6.1
SQL Server Express Edition 14.00.3015.40.v1 (Amazon Web Service RDS, db.t2.micro)
Docker Community Edition Version 18.03.0-ce-win59(16762)

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

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

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

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

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

guest

回答1

0

ベストアンサー

なんとなく読んだ感じで、ウイルス対策ソフトのファイヤーウォールを切ると上手くいったりしないかなぁと思いました。第6感ですが。

投稿2018/03/27 13:13

YouheiSakurai

総合スコア6142

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

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

Yellowbelly

2018/03/30 05:34

ファイアウォールのない全く別の環境で実行したところうまく動作しました。 WindwosコンテナはネットワークがLinuxコンテナと違うようなので、 そのあたりがネックになっていたんでしょうか… 無事解決できそうです。ご回答ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問