sql >> データベース >  >> RDS >> PostgreSQL

2つの異なるEC2インスタンスでのDjangoとPostgreSQLのセットアップ

    アマゾンサポート

    それで、David Woleverの返事の後、私はAmazonの人たちとも話をすることになりました。万が一、この投稿に再び出くわした場合に備えて。内部サーバーのIPを単独で使用するだけでは不十分ですが、それは良いスタートです。 Postgresqlインスタンス(できればNatty Narwhal)でUbuntuを実行している場合は、必ずpg_hba.confファイルとpostgresql.confファイルを編集してください。

    通常、これら2つのファイルは/etc/postgresql/8.4/main/(pg_hba.confまたはpostgresql.conf)

    にあります。

    スタックでPostgresql8.4を使用していることに注意してください。これは、テスト中にNattyNarwhalで実行するPostgresqlの最も一貫性のある堅実なバージョンであることが証明されました。

    異なるバージョンのPostgresql(9.1、9.0など)の場合、これら2つのファイルを見つけることができるディレクトリは上記と同じではありません。これらのファイルの適切なディレクトリを知っていることを確認してください。

    ステップ1

    Amazon Management Consoleに移動し、両方のインスタンスが同じセキュリティグループの下にあることを確認します。 PostgresqlとDjangoはデフォルトで5432と8000を使用するため、これら2つのポートが開いていることを確認してください!

    ステップ2

    (postgresqlインスタンスのターミナルでこれを行います)

    sudo vim postgresql.conf

    キーボードの「i」を押して、変更を開始します。出くわすまで下矢印キーを使用します

    LISTEN_ADDRESSES:'localhost'

    前面のハッシュタグを削除し、「localhost」の代わりに、postgresqlインスタンスのプライベートIPを追加します(プライベートIPはEC2管理コンソールにあります) また、127.0.0.1も追加する必要があります

    例:

    LISTEN_ADDRESSES:'プライベートIP、127.0.0.1'

    必ずプライベートIPとローカルホストアドレスをカンマで区切り、すべてを1つの引用符で囲んでください。

    変更を加えたら、 ESCを押してZZを押します(変更を保存するには大文字で2回押します)

    ステップ3

    sudo vim pg_hba.conf

    次のようなものが見つかるまで、下矢印キーを使用します。

               Database administrative login by UNIX sockets
      local   all         postgres                          ident
    
      # TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD
    
      # "local" is for Unix domain socket connections only
      local   all         all                               md5
      # IPv4 local connections:
      host    all         all         127.0.0.1/32          trust
      # IPv6 local connections:
      host    all         all         ::1/128               md5
      local   django_db   django_login                      md5
      host    replication postgres    127.0.0.1/32          md5
      host    replication postgres    ::1/128               md5
    

    もう一度、キーボードの「i」を押して、上記の方法で変更を加えます。

    IPv6では、django_dbとdjango_loginがあり、postgresqlデータベースの名前とpostgresqlデータベースに使用するユーザーログインにそれぞれ変更します。

    変更を加えたら、 ESCを押してZZを押します(変更を保存するには大文字で2回押します)

    ステップ4(ほぼ完了Hi5!)

    ターミナルで次のコマンドを使用してpostgresqlサーバーを再起動します:

    sudo /etc/init.d/postgresql restart

    おめでとうございます!サーバーは稼働していますが、最後のステップが1つあります。

    ステップ5

    Django EC2インスタンスを起動し、settings.pyに移動して、これを探します:

     DATABASES = {
     'default': {
     'ENGINE': 'django.db.backends.postgresql_psycopg2', 
     'NAME': 'django_db', 
     'USER': 'django_login',
     'PASSWORD': 'password', 
     'HOST': '', # Set to empty string for localhost. Not used with sqlite3.
     'PORT': '', # Set to empty string for default. Not used with sqlite3.
     }
    

    'HOST':''の下で、'HOST':'に変更します。PostgresqlインスタンスのプライベートIPが'

    変更を保存します。ターミナルを開き、manage.pyファイルがあるディレクトリを見つけます。そのディレクトリに移動したら、次のコマンドを実行します: ./ manage.py syncdb

    これらは、Djangoで作成したモデルに必要なすべてのテーブルを作成します。おめでとうございます。データベースインスタンスとDjangoインスタンスの間にリンクが正常に作成されました。

    ご不明な点がございましたら、お気軽にお問い合わせください。以下にコメントを残してください。できるだけ早くご連絡いたします。 :)



    1. FROM_BASE64()関数がMySQLでどのように機能するか

    2. YEARWEEK()の例– MySQL

    3. データベースメールプロファイル(SSMS)内のアカウントの優先度を変更する

    4. Railsでの複数のデータベース接続