2014-04-04 13 views

Antwort

0

Erste herauszufinden, welche VPC sind Sie in.

Wenn Sie Ihre RDS-Instanz als öffentlich zugänglich zu machen, müssen Sie VPC in DNS-Host und Auflösung ermöglichen Attribute.

Sie können dies mithilfe des Parameters PubliclyAccessible festlegen, der zur öffentlichen IP-Adresse aufgelöst wird.

Dies ist von AWS Dokumentation:

Amazon RDS unterstützt zwei VPC-Plattformen: EC2-VPC und EC2-Classic. Die EC2-VPC-Plattform verfügt über eine Standard-VPC, in der alle neuen DB-Instanzen erstellt werden, sofern Sie nichts anderes angeben. Die EC2-Classic-Plattform hat keine Standard-VPC, aber wie bei jeder Plattform können Sie Ihre eigene VPC erstellen und angeben, dass sich eine DB-Instanz in dieser VPC befindet.

+0

Die Artikel, die Sie angeben, sind natürlich wahr. Aber sie sind nicht hilfreich für die Beantwortung der Frage. – mdahlman

-2

Ab sofort ist die Variable "PubliclyAccessible" im Tool Cloudformation nicht verfügbar. Wenn Sie Ihren RDS mithilfe der CloudFormation-Vorlage bereitstellen, haben Sie keine andere Möglichkeit, diesen Parameter zu ändern. Es ist standardmäßig "Nein". Wenn Sie jedoch die AWS-Konsole verwenden, können Sie den Wert "Public Accessible" von "Default" auf "Yes" ändern. Ich denke, AWS sollte die Funktion "AWS :: RDS :: DBInstance" für die Cloud-Entwicklung mit diesem Parameter aktualisieren.

Danke.

+0

Hätte die Frage zu CloudFormation gestellt, dann könnte diese Antwort hilfreich gewesen sein. Es war nicht. – mdahlman

15

BEARBEITEN: Ja, es ist jetzt möglich, die "Öffentlich zugängliche" Eigenschaft von "Nein" zu "Ja" zu ändern. (Und umgekehrt) Hurra!

Alte Antwort links hier für historische Zwecke: Nr

Es wäre zwar schön, nicht wahr? Zur Umgehung der Problemumgehung haben Sie folgende Möglichkeiten:

  • Erstellen Sie eine Momentaufnahme Ihrer Instanz.
  • Starten Sie eine neue Instanz aus diesem Snapshot mit der Option Öffentlich zugreifbar.

Beweis:

  • John G Diplomatie in this post ihn vom Schreiben „Nein“ verhindert wie ich, aber das seine Antwort „Sie können einen Snapshot der aktuellen RDS-Datenbank erstellen und starten Sie es mit dem öffentlich zugängliche Option. " macht es ziemlich klar, dass er den Workaround anbietet, weil die direkte Lösung nicht verfügbar ist.
+0

Klicken Sie mit der rechten Maustaste auf die Instanz und wählen Sie "Ändern", um diese Option zu finden. – Silas

5

Ich stolperte über diese Suche nach der gleichen Antwort. Leider sieht es nach 10 Monaten aus, die Antwort ist immer noch "Nein" - Sie können eine bestehende Datenbank nicht ändern, um öffentlich verfügbar zu sein.

Jedoch - Sie können sich nähern ... Obwohl es nicht öffentlich verfügbar ist, ist es für EC2-Instanzen verfügbar, die Sie in derselben VPC starten.Und Sie können einen SSH-Tunnel von Ihrem Computer über eine EC2-Instanz zu dieser DB einrichten, sodass Sie auf die Instanz zugreifen können, ohne sie von einem Snapshot neu starten zu müssen.

Sie nicht Ihren Computer OS angeben, so dass ich bequem Linux gehe davon aus ...

Starten Sie zuerst eine EC2-Instanz, geben Sie ihm den Zugriff auf Ihre RDS-Instanz über Sicherheitsgruppen, stellen Sie sicher, dass Sie Sie können sich bei dieser EC2-Instanz anmelden und sicherstellen, dass Sie von dieser EC2-Instanz aus auf die RDS-DB zugreifen können. Wenn irgendetwas davon fehlschlägt, wird der Rest nicht funktionieren.

Als nächstes Setup ein Tunnel:

ssh -v -N -L 1234:rds.endpoint:3306 [email protected] 

Wo rds.endpoint die URL für die RDS-Instanz ist, ist your.ec2.host der Hostname für Ihre EC2-Instanz und yourec2username ist Ihr Benutzername auf dem EC2-Host

Sie können dann eine Verbindung mit der RDS-Instanz mit

mysql -p -u dbuser -h 127.0.0.1 -P 1234 dbname --password=dbpassword 

Hoffnung, dass die nächste Person hilft, die über diese stolpern ...

1

Sie könnten einen SSH-Tunnel in Ihrem VPC erstellen oder eine machen Port-Forwarding mit iptables, aber die beste und einfachste Lösung besteht darin, ein Read-Replikat mit dem PubliclyAccessible-Flag in true zu erstellen und dann das Replikat zum Master hochzustufen. Ich empfehle, immer einen CNAME des RDS-Endpunkts zu verwenden, damit Sie den CNAME im DNS ändern können, ohne Ihre App zu berühren.

Einen Schnappschuss und Wiederherstellung wird eine unnötige Ausfallzeiten in Ihrer Anwendung hinzuzufügen.

Schau!

4

Es scheint, als ob AWS jetzt erlaubt, die Accessibility-Eigenschaft zu ändern. Die Datenbank scheint jedoch geändert worden zu sein und während dieser Zeit können eventuell Konnektivitätsprobleme auftreten.

Ich habe keinen Blog/Artikel darüber gefunden. Aber in meinem Konto kann ich es tun.

+1

Ich konnte eine Instanz über die Konsole ändern. Es dauerte einige Zeit, bis sich die Änderung ausbreitete, und die Konsole zeigte die alte Einstellung bis zum Ende. – daxlerod

Verwandte Themen