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

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

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

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

AWS(Amazon Web Services)

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

Q&A

解決済

1回答

2915閲覧

DBへの接続が失敗してしまいます

aae_11

総合スコア178

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

AWS(Amazon Web Services)

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

0グッド

0クリップ

投稿2020/02/24 05:54

編集2020/02/24 05:59

AWS内で、DBを使用し、サーバーを立て、データベール接続を行いテーブルなどにデータを入れていたのですが、諸事情でローカルで開発を行い、ローカルから、AWSで立てたDBへ接続する必要が出てきたのですが、接続に失敗してしまっている状況です。
以下は、データベースの接続情報を記載したsettings.pyのコードの一部になります。

'default': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': 'test', 'USER': 'test', 'PASSWORD': '12345', 'HOST': 'http://ec2-*******.ap-northeast-1.compute.amazonaws.com:8001/', 'PORT': '', }

get_company_name = Company.objects.filter(name = company_name)こちらのような形で、データに接続しようとした場合、以下のエラーが発生してしまいました。

conn = _connect(dsn, connection_factory=connection_factory, **kwasync)

django.db.utils.OperationalError: could not translate host name "http://ec2-*********.ap-northeast-1.compute.amazonaws.com:8001/" to address: nodename nor servname provided, or not known

サーバー側では接続は、通常通り行なえており、その際のsettings.pyの「HOST」の部分は'HOST': 'localhost',こちらのように記述している状態です。

エラーの解決の為、ご助言頂けましたら幸いです
よろしくお願いします。

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

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

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

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

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

papinianus

2020/02/24 08:13

その環境でサーバのdns名は名前解決できてますか?nslookup ec2....amazon.com はどうなります?
aae_11

2020/02/24 08:33

ローカル環境から、nslookup の後にアドレスを打ち込みましたが、「server can't find http://ec2-******.ap-northeast-1.compute.amazonaws.com:8001/: NXDOMAIN」となっておりました。
papinianus

2020/02/24 08:37

nslookupではec2からcomまでにしてください。httpやポートをつけないでください。
aae_11

2020/02/24 09:01 編集

すみません。ありがとうございます。 再度試しましたら、以下のように表示されました。 nslookup *******.ap-northeast-1.compute.amazonaws.com Server: 219.***.*.** Address: 219.***.*.**#53 Non-authoritative answer: Name: ec2-********.ap-northeast-1.compute.amazonaws.com Address: 13.***.***.***
aae_11

2020/02/24 08:42 編集

「*」の部分は念の為、非表示した方が良いかなと思いました為、使用しております
aae_11

2020/02/24 08:45

自分としましては、そもそも、アドレスの部分が少々疑問であったりはするのですが、phppgadminにログインし、その際にアドレスバーに表示されているアドレスを指定しているのですが、そこの部分で既にあっているのかなといった疑問が生じている状況でございます...
papinianus

2020/02/24 08:55

ipをマスクできて部分があるので、編集してください。*になってない箇所があります。コメントは編集で見えなくなるはず。もしくは削除依頼してください。
aae_11

2020/02/24 09:02

ご指摘ありがとうございます。 ipをマスクするよう、修正いたしました。
guest

回答1

0

ベストアンサー

'HOST': 'ec2-*******.ap-northeast-1.compute.amazonaws.com', 'PORT': '5432',

settings.pyをこうしたら行けますかね?

投稿2020/02/24 08:53

編集2020/02/24 08:57
papinianus

総合スコア12705

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

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

papinianus

2020/02/24 08:57

疑問にもっておられるとおりブラウザのアドレスをそのまま書いてはだめだと思います。ホストはコンピュータのdns名で、ポートはdbのポートです
aae_11

2020/02/24 09:24 編集

ご回答ありがとうございます。 すみません。ポート番号なのですが、どのように調べれば良いか教えて頂けますでしょうか...?
aae_11

2020/02/24 11:06 編集

ポート番号の件なのですが、接続可能な番号を推測で指定して見たのですが、以下のようなエラーが表示されてしまいました... 「django.db.utils.OperationalError: SSL error: wrong version number expected authentication request from server, but received S」
papinianus

2020/02/24 11:06

postgres ということなのでデフォなら 5432 のはずです。ポートはawsにおいてある設定ファイルと同じです。 接続可能な、というのは、22とか80とか443とかだと思いますが、もしdbのポートを許可していないなら、追加でポートをあける(セキュリティグループで許可する)しかないです。
aae_11

2020/02/24 11:42 編集

ご返信ありがとうございます。 まさしく、おっしゃる通りでして、「22」を指定致しました。 実は、現在はAWSのアカウントの方に、アクセス出来ない状況にあるのですが、セキュリティグループをチェックするしかないですよね... 取り敢えずは、なんとかしてチェックし、セキュリティグループにて自分の、IPを許可したいと思います。
aae_11

2020/02/24 11:43

一旦こちらの質問はpapinianusさんに頂きましたご回答をBAとさせて頂きたいと思います。
papinianus

2020/02/24 12:00

さすがに DB のポートをあけることはしてないと思いますが 5432 を指定して接続できなかった、でいいですかね。ワンチャン 5432 で接続できるかもしれないんで、アカウントにすぐ触れない、のなら試す価値はあるかと。
aae_11

2020/02/24 22:35

「5,4,3,2」で試して見たのですが、「TCP/IP connections on port 5432?」とのエラーが出てしまいました...
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問