[LINUX] Wahrscheinlich kann jeder eine Plattformserver-, RDS- (Master / Slave-) Umgebung in einer Multi-AZ-Umgebung auf dem AWS-Konsolenbildschirm erstellen

Ich werde detailliert vorstellen, wie eine allgemeine Konfiguration von VPC, Step Server und RDS über den Konsolenbildschirm in AWS erstellt wird (siehe Abbildung unten).

03_eroge_release_db_rds

Da es für den persönlichen Gebrauch bestimmt ist, wird der Plattformserver nicht redundant gemacht. Im Allgemeinen kostet diese Konfiguration etwa 6000 Yen pro Monat.

Möglicherweise interessiert Sie auch der Name, den Sie verwenden, aber es wäre hilfreich, wenn Sie ihn weitergeben könnten. Diese Konfiguration wird in Ihrem eigenen [DB-Migrationssystem mit Rails und AWS] erstellt (https://github.com/dodonki1223/eroge_release_db). Das eigentliche Gesamtbild ist unten

00_eroge_release_db

Sehr hilfreiches Unterrichtsmaterial

Zum Erstellen der AWS-Umgebung habe ich mich wirklich auf Udemys "Lernen Sie von den AWS-Grundlagen zu Anwendungen in 2 Wochen, während Sie Ihre Hände bewegen" bezogen. Ich kann es jetzt nicht ertragen, deshalb habe ich den Blog-Beitrag des Autors [Vorlesung zur Unterstützung von 0 → 1 des AWS-Lernens "Lernen von AWS-Grundlagen zu Anwendungen in 2 Wochen, während ich die Hände bewege" auf Udemy --log4ketancho](https :: Bitte überprüfen Sie //www.ketancho.net/entry/2018/09/03/074115)

Aufbau einer VPC-Umgebung

Erstellen Sie eine VPC-Umgebung Wir werden ein öffentliches Subnetz und ein privates Subnetz in jeder Verfügbarkeitszone von ap-nordost-1a und ap-nordost-1c erstellen.

Abschlusszeichnung

Die endgültige Konfiguration lautet wie folgt

00_eroge_release_vpc

Erstellen einer VPC

Verwenden Sie den VPC-Assistenten, um "VPC", "öffentliches Subnetz" und "Internet-Gateway" zu erstellen

Öffnen Sie den VPC-Assistenten

Klicken Sie im Bildschirm "VPC-Dashboard" auf "VPC-Assistenten starten"

01_create_vpc_dashboard

Schritt 1: Wählen Sie die VPC-Einstellungen

02_create_vpc_wizard_step1

Klicken Sie auf "Auswählen"

Schritt 2: VPC mit 1 öffentlichen Subnetz

Geben Sie den "VPC-Namen", das "öffentliche Subnetz IPv4 CIDR", die "Verfügbarkeitszone", den "Subnetznamen" ein und klicken Sie auf "VPC erstellen"

** Geben Sie "10.0.11.0 / 24" für das "öffentliche Subnetz IPv4 CIDR" ein ** ** Geben Sie "ap-northeast-1a" für "Availability Zone" ein ** ** Geben Sie einen beliebigen Namen für "VPC-Name" und "Subnetzname" ein **

03_create_vpc_wizard_step2

VPC erfolgreich erstellt

Klicken Sie auf "OK"

04_create_vpc_wizard_ok

Überprüfen Sie, ob VPC erstellt wurde

Stellen Sie sicher, dass die VPC erstellt wurde

05_create_vpc_created_vpc

Überprüfen Sie, ob ein öffentliches Subnetz erstellt wurde

Stellen Sie sicher, dass das öffentliche Subnetz erstellt wird

06_create_vpc_created_public_subnet

Stellen Sie sicher, dass IGW (Internet Gateway) in der Routentabelle festgelegt ist

07_create_vpc_created_public_subnet_route

Überprüfen Sie, ob IGW (Internet Gateway) erstellt wurde

Stellen Sie sicher, dass das IGW (Internet Gateway) erstellt wurde

08_create_vpc_created_internet_gateway

Nach dem Erstellen der VPC

Mit dem oben genannten wurde der folgende Status erstellt

09_cretae_vpc_and_public_subnet

Erstellen Sie ein öffentliches Subnetz

Da das öffentliche Subnetz in "ap-northeast-1a" der Verfügbarkeitszone erstellt wurde, werden wir auch ein öffentliches Subnetz in "ap-northeast-1c" erstellen.

Öffnen Sie den Subnetz-Erstellungsbildschirm

Klicken Sie im Bildschirm "Subzone" auf "Unterabschnitt erstellen"

10_create_public_subnet_open

Subnetz erstellen

Geben Sie das "Namensschild", "VPC", "Verfügbarkeitszone", "IPv4-CIDR-Block" ein und klicken Sie auf "Erstellen"

** Wählen Sie die erstellte VPC für VPC aus ** ** Geben Sie ap-northeast-1c in Availability Zone ein ** ** Geben Sie "10.0.12.0 / 24" in "IPv4 CIDR-Block" ein **

11_create_public_subnet_screen

Klicken Sie auf "Schließen"

12_create_public_subent_created_close

Öffnen Sie den Bearbeitungsbildschirm der Routentabellenzuordnung

Wählen Sie das neu erstellte Subnetz "ap-northeast-1c" aus Da "IGW (Internet Gateway)" nicht in der Routentabelle festgelegt ist, kann dieses Subnetz derzeit nicht ins Internet gehen, sodass es sich um ein "privates Subnetz" handelt.

Stellen Sie "IGW (Internet Gateway)" in der Routentabelle ein Klicken Sie auf "Routentabellenzuordnung bearbeiten"

13_create_public_subent_created

Bearbeitungsbildschirm für die Zuordnung der Routentabelle

14_create_public_subent_edit_route_table

Wechseln Sie zu der zuvor erstellten Routentabelle

15_create_public_subent_select_route_table_id

Sie können sehen, dass "IGW (Internet Gateway)" hinzugefügt wurde Wenn Sie zufrieden sind, klicken Sie auf "Speichern"

16_create_public_subnet_editding_route_table

Klicken Sie auf "Schließen"

17_create_public_subent_route_table_close

Überprüfen Sie, ob IGW (Internet Gateway) hinzugefügt wurde

Stellen Sie sicher, dass "IGW (Internet Gateway)" zur Routentabelle hinzugefügt wurde

18_create_public_subent_edited_route_table

Nach dem Erstellen des öffentlichen Subnetzes

Mit dem oben genannten wurde es bis zum folgenden Zustand erstellt

19_create_public_subnet

Erstellen Sie ein privates Subnetz

Wir werden ein privates Subnetz sowie ein öffentliches Subnetz erstellen

Erstellt in ap-nordost-1a

Erstellen Sie ein Subnetz in ap-northeast-1a

Öffnen Sie den Subnetz-Erstellungsbildschirm

Klicken Sie auf "Unterabschnitt erstellen"

20_create_private_subent_open_1a

Erstellung von Unterabschnitten

Geben Sie das "Namensschild", "VPC", "Verfügbarkeitszone", "IPv4-CIDR-Block" ein und klicken Sie auf "Erstellen"

** Wählen Sie die erstellte VPC für VPC aus ** ** Geben Sie "ap-northeast-1a" für "Availability Zone" ein ** ** Geben Sie "10.0.21.0 / 24" in "IPv4 CIDR-Block" ein **

21_create_private_subent_editing_1a

Klicken Sie auf "Schließen"

22_create_private_subent_created_close_1a

Erstellt in ap-nordost-1c

Erstellen Sie ein Subnetz in "ap-northeast-1c"

Öffnen Sie den Subnetz-Erstellungsbildschirm

In ap-northeast-1a wurde ein Subnetz erstellt

Wir werden auch ein Subnetz in "ap-northeast-1c" erstellen Klicken Sie auf "Unterabschnitt erstellen"

23_create_private_subent_created_1a

Erstellung von Unterabschnitten

Geben Sie das "Namensschild", "VPC", "Verfügbarkeitszone", "IPv4-CIDR-Block" ein und klicken Sie auf "Erstellen"

** Wählen Sie die erstellte VPC für VPC aus ** ** Geben Sie ap-northeast-1c in Availability Zone ein ** ** Geben Sie "10.0.22.0 / 24" in "IPv4 CIDR-Block" ein **

24_create_private_subent_editing_1c

Klicken Sie auf "Schließen"

25_create_private_subent_created_close_1c

Bestätigen Sie, dass es erstellt wurde

26_create_private_subent_created_1c

Erstellen Sie eine Routentabelle für Ihr privates Subnetz

Ich werde ein privates Subnetz erstellen

Benennen Sie die Routentabelle für das öffentliche Subnetz

Geben Sie ihm einen beschreibenden Namen, bevor Sie ein privates Subnetz erstellen

27_create_private_route_table_public_route_table_name

Öffnen Sie den Bildschirm zum Erstellen von Routentabellen

Klicken Sie auf "Routentabelle erstellen"

28_create_private_route_table_open_create_route_table

Erstellen einer Routentabelle

Geben Sie das Namensschild "VPC" ein und klicken Sie auf "Erstellen"

** Wählen Sie die erstellte VPC für VPC aus **

29_create_private_route_table_create_route_table_editing

Klicken Sie auf "Schließen"

30_create_private_route_table_created_close

Bestätigen Sie, dass es erstellt wurde

31_create_private_route_table_created

Verknüpfen Sie die Routentabelle mit dem in ap-northeast-1a erstellten Subnetz

Ich werde die für privat erstellte Routentabelle mit dem Subnetz verknüpfen

Öffnen Sie den Bearbeitungsbildschirm der Routentabellenzuordnung

Klicken Sie auf "Routentabellenzuordnung bearbeiten"

32_create_private_route_table_open_edit_route_table_1a

Bearbeiten von Routentabellenzuordnungen

Wählen Sie die soeben erstellte Routentabelle aus und klicken Sie auf "Speichern"

33_create_private_route_table_edit_route_table_editing_1a

Klicken Sie auf "Schließen"

34_create_private_route_table_edit_route_table_close_1a

Verknüpfen Sie die Routentabelle mit dem in ap-northeast-1c erstellten Subnetz

Ich werde die für privat erstellte Routentabelle mit dem Subnetz verknüpfen

Öffnen Sie den Bearbeitungsbildschirm der Routentabellenzuordnung

Klicken Sie auf "Routentabellenzuordnung bearbeiten"

35_create_private_route_table_open_edit_route_table_1c

Bearbeiten von Routentabellenzuordnungen

Wählen Sie die soeben erstellte Routentabelle aus und klicken Sie auf "Speichern"

36_create_private_route_table_edit_route_table_editing_1c

Klicken Sie auf "Schließen"

37_create_private_route_table_edit_route_table_close_1c

Überprüfen Sie, ob es mit der privaten Routentabelle verknüpft ist

Sie können sehen, dass das Subnetz mit der Routentabelle verknüpft ist

38_create_private_route_table_editing

** Damit ist die VPC-Konstruktion abgeschlossen **

00_eroge_release_vpc

Erstellen einer Plattformserverumgebung

Erstellen Sie einen Plattformserver (EC2) im öffentlichen Subnetz Normalerweise ist es besser, einen Plattformserver mit "Auto Scaling" im öffentlichen Subnetz zu erstellen, aber es kostet Geld, daher werden wir ihn dieses Mal ohne "Auto Scaling" erstellen.

** Nicht sehr gute Konfiguration, da der Plattformserver ein einzelner Fehlerpunkt ist **

Abschlusszeichnung

Nach dem Aufbau sieht das Konfigurationsdiagramm wie folgt aus.

01_stepping_stone_server

Lassen Sie uns sofort die Umgebung aufbauen

Erstellen Sie eine EC2-Instanz für den Plattformserver

Erstellen Sie eine EC2-Instanz für den Plattformserver

Öffnen Sie den Bildschirm zur Erstellung der EC2-Instanz

Klicken Sie auf "Instanz erstellen"

02_create_ec2_open

Schritt 1: Amazon Machine Image (AMI)

Wählen Sie "64-Bit (x86)" von "Amazon Linux 2 AMI (HVM), SSD-Volume-Typ" und klicken Sie auf "Auswählen"

03_create_ec2_step1

Schritt 2: Wählen Sie den Instanztyp aus

Wählen Sie "t2.nano" und klicken Sie auf "Nächster Schritt: Instanzdetails festlegen"

** Wenn Sie es sich leisten können, können Sie einen etwas höheren Typ wählen **

04_create_ec2_step2

Schritt 3: Richten Sie Instanzdetails ein

Geben Sie das "Netzwerk", das "Subnetz" und die "automatisch zugewiesene öffentliche IP" ein

Wählen Sie das Ziel "VPC" für das Netzwerk Wählen Sie als Subnetz "ap-northeast-1a public subnet" aus Wählen Sie "Aktiviert" für die automatisch zugewiesene öffentliche IP (ich werde die elastische IP später konfigurieren, aber ich werde sie einmal aktivieren).

05_create_ec2_step3

Benutzerdaten

Wählen Sie für "Benutzerdaten" "Text" aus und fügen Sie den folgenden Inhalt ein

#!/bin/bash

#Ändern Sie den Hostnamen
# https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/set-hostname.html
sudo hostnamectl set-hostname eroge-release-stepping-stone-server

#PostgreSQL 11 installieren
# https://qiita.com/libra_lt/items/f2d2d8ee389daf21d3fb
sudo rpm -ivh --nodeps https://download.postgresql.org/pub/repos/yum/11/redhat/rhel-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
sudo sed -i "s/\$releasever/7/g" "/etc/yum.repos.d/pgdg-redhat-all.repo"
sudo yum install -y postgresql11

#Zeitzone Asien/Wechseln Sie nach Tokio
# https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/set-time.html#change_time_zone
sudo ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
sudo sed -i 's|^ZONE=[a-zA-Z0-9\.\-\"]*$|ZONE="Asia/Tokyo”|g' /etc/sysconfig/clock

Klicken Sie abschließend auf "Nächster Schritt: Speicher hinzufügen"

Schritt 4: Speicher hinzufügen

Grundsätzlich können Sie die Standardeinstellung beibehalten Klicken Sie auf "Nächster Schritt: Tag hinzufügen"

06_create_ec2_step4

Schritt 5: Tag hinzufügen

Klicken Sie auf "Anderes Tag hinzufügen", setzen Sie den Schlüssel auf "Name" und den Wert auf einen beschreibenden Namen und klicken Sie auf "Nächster Schritt: Sicherheitsgruppe festlegen".

07_create_ec2_step5

Schritt 6: Richten Sie eine Sicherheitsgruppe ein

Wählen Sie "Neue Sicherheitsgruppe erstellen" und geben Sie eine Beschreibung für "Sicherheitsgruppenname" und "Beschreibung" ein. Klicken Sie abschließend auf "Bestätigen und erstellen"

** Normalerweise setzen Sie nicht "0.0.0.0 / 0" für den "Quell" -Teil (da dieser vollständig geöffnet ist) ** ** Stellen Sie die globale IP-Adresse Ihres Hauses ein, um den SSH-Zugriff einzugrenzen **

08_create_ec2_step6

Schritt 7: Bestätigen Sie die Instanzerstellung

Wenn Sie mit dem angezeigten Inhalt zufrieden sind, klicken Sie auf "Start".

09_create_ec2_step7

Schlüsselpaar

Wählen Sie "Neues Schlüsselpaar erstellen", geben Sie einen beschreibenden "Schlüsselpaarnamen" ein und klicken Sie auf "Schlüsselpaar herunterladen". Klicken Sie abschließend auf "Instanz erstellen"

** Das heruntergeladene Schlüsselpaar wird verwendet, um eine Verbindung zum Plattformserver herzustellen **

10_create_ec2_key_pair

Instanz erstellen

Klicken Sie auf "Instanzen anzeigen"

11_create_ec2_creating

Nach dem Erstellen der Instanz

Bestätigen Sie, dass die Instanz erstellt wurde Elastic IP wurde noch nicht festgelegt, daher werden wir Elastic IP in Zukunft festlegen.

12_create_ec2_created

Erstellen Sie eine elastische IP

Derzeit ändert sich die IP-Adresse jedes Mal, wenn Sie den Plattformserver starten. Erstellen Sie daher eine "elastische IP", damit die IP-Adresse festgelegt wird.

Anzeigen des Bildschirms zur Zuweisung der elastischen IP-Adresse

Klicken Sie auf "Elastische IP-Adresse zuweisen"

13_create_eip_open_setting

Elastische IP-Adresszuweisung

Es ist nichts festzulegen, klicken Sie also auf "Zuweisen"

14_create_eip_setting

Elastische IP-Adresszuweisung abgeschlossen

Die elastische IP-Adresszuweisung ist abgeschlossen

15_create_eip_created

Geben Sie der elastischen IP-Adresse einen Namen

Da es keinen Namen gibt und es schwer zu verstehen ist, fügen Sie ein Tag hinzu, damit der Name angezeigt wird

Öffnen Sie den Bildschirm mit den Details der elastischen IP-Adresse

Klicken Sie auf "Aktionen" und dann auf "Details anzeigen"

16_create_eip_open_detail

Details zur elastischen IP-Adresse

Klicken Sie auf "Tags verwalten"

17_create_eip_tag

Tag-Verwaltung

Geben Sie einen beschreibenden Namen für "Name" und "Wertoption" für "Schlüssel" ein Klicken Sie abschließend auf "Speichern"

18_create_eip_tag_editing

Tags wurden hinzugefügt

19_create_eip_tag_edited

Verknüpfen Sie eine elastische IP-Adresse mit einer EC2-Instanz

Verknüpfen Sie die von Ihnen erstellte "elastische IP-Adresse" mit dem zuvor erstellten "Plattformserver (EC2)".

Öffnen Sie den Bildschirm Elastic IP Address Association

Klicken Sie auf "Elastic IP Address Association"

19_create_eip_tag_edited

Elastische IP-Adresszuordnung

Wählen Sie für das Instanzelement die zuvor erstellte "EC2-Instanz" aus. Klicken Sie abschließend auf "Zuordnen"

20_attach_eip_to_ec2

Überprüfen Sie, ob eine elastische IP-Adresse zugeordnet ist

Sie können sehen, dass die zuvor festgelegte EC2-Instanz in der zugeordneten Instanz angezeigt wird.

21_attached_eip_to_ec2

Sie können auch sehen, dass die zuvor erstellte "elastische IP" im EC2-Instanzbildschirm angezeigt wird.

22_attached_eip_on_ec2_dashboard

Versuchen Sie tatsächlich eine Verbindung herzustellen

Überprüfen Sie, ob Sie mit einem Befehl wie dem folgenden auf den erstellten Plattformserver zugreifen können

** Das Schlüsselpaar ist das, das Sie beim Erstellen der EC2-Instanz heruntergeladen haben **

$ ssh -i Schlüsselpaar ec2 - Benutzer@Elastische IP-Adresse

Wenn Sie eine Verbindung herstellen können, sind Sie fertig

23_connect_to_ec2

** Damit ist der Aufbau des Plattformservers abgeschlossen **

01_stepping_stone_server

RDS-Umgebungskonstruktion

Erstellen Sie PostgreSQL-Master- und Slave-Konfigurationen mit RDS

Abschlusszeichnung

Nach dem Aufbau sieht das Konfigurationsdiagramm wie folgt aus.

01_eroge_release_db_rds

Lassen Sie uns sofort die Umgebung aufbauen

Erstellen Sie eine DB-Subnetzgruppe

Dies ist eine Einstellung für Master und Slave, in welchem Subnetz die DB-Instanz gestartet werden soll Bitte überprüfen Sie die folgenden Dokumente für Details

Öffnen Sie den Bildschirm zum Erstellen einer DB-Subnetzgruppe

Klicken Sie im linken Menü auf "Subnetzgruppe" und oben rechts auf "DB-Subzonengruppe erstellen".

02_create_subnet_group

Details zu Unterabschnittsgruppen

Geben Sie "Name", "Beschreibung", "VPC" ein ** Hinweis: Stellen Sie sicher, dass Sie die erstellte VPC anstelle der Standard-VPC auswählen. **

03_create_subnet_group_detail

Subnetz hinzufügen

Fügen Sie ein "privates Subnetz" für die Zielverfügbarkeitszone hinzu ("1a" und "1c"). Klicken Sie abschließend auf die Schaltfläche "Erstellen", um den Vorgang abzuschließen.

04_create_subnet_group_add_subnet

Erstellen einer Parametergruppe

RDS verwendet Parametergruppen zum Konfigurieren von DB-Instanzen Wenn Sie eine DB-Instanz ohne Verwendung einer Parametergruppe erstellen, wird die Standardparametergruppe verwendet. Diese ** Standardparametergruppe kann nicht geändert werden **, daher wird empfohlen, sie festzulegen.

Bitte überprüfen Sie die folgenden Dokumente für Details

Öffnen Sie den Bildschirm zum Erstellen von Parametergruppen

Klicken Sie im linken Menü auf "Parametergruppe" und oben rechts auf "Parametergruppe erstellen"

05_create_parameter_group

Parametergruppendetails

Geben Sie die "Parametergruppenfamilie", den "Gruppennamen" und die "Beschreibung" ein Wählen Sie PostgreSQL als Parametergruppenfamilie Klicken Sie abschließend auf Erstellen

06_create_paraemter_group_detail

Erstellen Sie eine Sicherheitsgruppe für RDS

Erstellen Sie eine Sicherheitsgruppe, die nur den Zugriff vom Plattformserver aus ermöglicht, um die Sicherheit für RDS zu erhöhen ** Fügen Sie diese Sicherheitsgruppe auf dem Bildschirm mit den RDS-Einstellungen hinzu **

Öffnen Sie den Bildschirm zum Erstellen von Sicherheitsgruppen

Öffnen Sie den Bildschirm der VPC-Konsole, klicken Sie im linken Menü auf "Sicherheitsgruppe" und oben links auf "Sicherheitsgruppe erstellen".

07_create_security_group_db

Erstellen einer Sicherheitsgruppe

Geben Sie den Namen der Sicherheitsgruppe, die Beschreibung und die VPC ein und klicken Sie auf die Schaltfläche Erstellen. ** Hinweis: Stellen Sie sicher, dass Sie die erstellte VPC anstelle der Standard-VPC auswählen. **

08_create_security_group_db

Klicken Sie auf die Schaltfläche "Schließen", um den Erstellungsbildschirm zu schließen

09_create_security_group_db

Benennen Sie die Sicherheitsgruppe

Standardmäßig ist "Name" leer. Klicken Sie daher auf die Bleistiftschaltfläche ganz rechts in der Spalte "Name" und geben Sie einen beschreibenden Namen ein.

10_create_security_group_db

Einstellungen für eingehende Regeln

Klicken Sie auf die Registerkarte "Eingehende Regeln" und dann auf "Regel bearbeiten"

11_create_security_group_db

Klicken Sie auf "Regel hinzufügen", wenn sich der Bildschirm ändert

12_create_security_group_db

Klicken Sie auf den Typ und fügen Sie "PostgreSQL" und "SSH" hinzu Wählen Sie als Quellteil "Tread Server Security Group" aus

** Durch Auswahl der Plattformserver-Sicherheitsgruppe wird der Zugriff nur von der Instanz gewährt, die über die Plattformserver-Sicherheitsgruppe verfügt **

Geben Sie abschließend "Beschreibung" ein und klicken Sie auf "Regel speichern"

13_create_security_group_db

Klicken Sie auf die Schaltfläche "Schließen"

14_create_security_group_db

Damit ist die Erstellung der Sicherheitsgruppe abgeschlossen.

RDS erstellen (PostgreSQL)

Ich bin bereit, die Datenbank zu erstellen, also werde ich sie jetzt erstellen.

Öffnen Sie den Datenbankerstellungsbildschirm

Klicken Sie im linken Menü auf "Dashboard" und unten auf "Datenbank erstellen"

15_create_rds

Wählen Sie eine Datenbankerstellungsmethode aus

Dieses Mal werden wir sie einzeln einstellen, wählen Sie also "Standarderstellung".

16_create_rds_database_create_way

Motoroptionen

Da wir eine Datenbank für PostgreSQL erstellen, wird empfohlen, "PostgreSQL" und auch die neueste Nebenversion von "Version" auszuwählen.

17_create_rds_engine

Vorlage

Wenn Sie "Free Tier" auswählen, können Sie "Multi-AZ Placement" nicht auswählen. Wählen Sie daher "Development / Test"

18_create_rds_template

Aufbau

Geben Sie die "DB-Instanz-ID", den "Master-Benutzernamen" und das "Master-Passwort" ein DB-Instanzkennung ist der Name, der auf dem Konsolenbildschirm angezeigt wird. Bitte beachten Sie, dass es sich nicht um einen Datenbanknamen handelt

Überprüfen Sie die folgenden Dokumente für Hauptbenutzer

19_create_rds_settings

DB-Instanzgröße

Für den persönlichen Gebrauch möchte ich diejenige mit den niedrigsten Spezifikationen auswählen, die für den Geldbeutel preisgünstig ist. Wenn ich jedoch "Entwicklung / Test" auswähle, wird eine ziemlich hohe Spezifikation ausgewählt.

20_create_rds_db_instance

Durch Auswahl von "Burstable Class (einschließlich T-Klasse)" können Sie eine brieftaschenfreundliche Spezifikation auswählen.

21_create_rds_db_instance

Lager

Wenn Sie es persönlich verwenden, können Sie die Standardeinstellung beibehalten Bei einer Konfiguration mit mehreren AZ-Layouts kosten 20 GB etwa 5 US-Dollar pro Monat.

22_create_rds_storage

Bitte überprüfen Sie die folgenden Dokumente für detaillierte Gebühren

Verfügbarkeit und Haltbarkeit

Wählen Sie "Standby-Instanz erstellen (empfohlen für die Produktionsumgebung)", um eine Multi-AZ-Bereitstellung zu erstellen. ** Hinweis: Wenn die Vorlage auf den freien Nutzungsrahmen eingestellt ist, wird sie abgeblendet und kann nicht ausgewählt werden. Entwickeln / testen Sie sie daher unbedingt **

23_create_rds_availability_and_durability

Verbinden

Geben Sie die Ziel-VPC in "Virtual Private Cloud (VPC)" ein ** Hinweis: Stellen Sie sicher, dass Sie die erstellte VPC anstelle der Standard-VPC auswählen. **

Klicken Sie auf "Zusätzliche Verbindungseinstellungen" und geben Sie weitere Informationen ein

Wählen Sie unter "Subnetzgruppe" die zuvor erstellte Subnetzgruppe aus.

Wählen Sie "Keine" für "Öffentlich zugänglich" ** Wählen Sie Keine, um den Zugriff über den Plattformserver zu ermöglichen **

Wählen Sie unter "VPC-Sicherheitsgruppe" die zuvor erstellte Sicherheitsgruppe aus.

Sie können den Datenbankport auf der Standardeinstellung belassen

24_create_rds_connection

Datenbankauthentifizierung

Wenn Sie Ihre Datenbank nicht mit IAM-Anmeldeinformationen authentifizieren müssen, ist die Standardkennwortauthentifizierung in Ordnung. Bitte überprüfen Sie die folgenden Dokumente für Details

25_create_rds_database_certification

Zusätzliche Einstellungen

Ich werde jede zusätzliche Einstellung erklären

26_create_rds_add_settings

Datenbankauswahl

Durch Angabe des ersten Datenbanknamens wird RDS mit der erstellten Datenbank erstellt.

28_create_rds_add_settings_default_database

Geben Sie für "DB-Parametergruppe" die zuvor erstellte Parametergruppe an.

27_create_rds_add_settings_choise_database

Backup

Wählen Sie im "Backup-Fenster" das "Auswahlfenster" und stellen Sie die "Startzeit" auf "20: 00". Mit dieser Einstellung können Sie morgens zwischen 5 und 30 Minuten sichern.

29_create_rds_add_settings_backup

Bitte überprüfen Sie die folgenden Dokumente für Details

Performance Insights

Sie können die Standardeinstellungen für Performance Insights beibehalten

30_create_rds_add_settings_perfomance_insights

Bitte überprüfen Sie die folgenden Dokumente für Details

Überwachung

Sie können die Standardeinstellung für die Überwachung beibehalten

31_create_rds_add_settings_monitoring

Bitte überprüfen Sie die folgenden Dokumente für Details

Protokoll exportieren

Überprüfen Sie "Postgresql-Protokoll", "Upgrade-Protokoll" Durch Aktivieren können Sie die Protokollausgabe mit "CloudWatch-Protokollen" überprüfen.

32_create_rds_add_settings_log_export

Bitte überprüfen Sie die folgenden Dokumente auf Protokolle

Instandhaltung

Wählen Sie im "Wartungsfenster" das "Auswahlfenster" und stellen Sie die "Startzeit" auf "18: 00". Mit dieser Einstellung können Sie die Nebenversion am Dienstagmorgen innerhalb von 30 Minuten um 3 Uhr aktualisieren.

33_create_rds_add_settings_maintenance

Überprüfen Sie die folgenden Dokumente auf kleinere Versions-Upgrades

Schutz löschen

Wenn Sie dies überprüfen, können Sie die Datenbank nicht löschen. ** Sie können es löschen, indem Sie die Einstellung ändern **

34_create_rds_add_settings_deletion_protection

Datenbank erstellen

Überprüfen Sie abschließend die "geschätzten monatlichen Kosten" und klicken Sie auf die Schaltfläche "Datenbank erstellen", wenn dies in Ordnung aussieht. Damit ist die RDS-Konstruktion abgeschlossen!

35_create_rds_create_button

Bitte überprüfen Sie die folgenden Dokumente für Preisdetails

Stellen Sie vom Plattformserver aus eine Verbindung zu RDS her

Stellen Sie eine Verbindung zum Plattformserver her

Greifen Sie mit einem Befehl ähnlich dem folgenden auf den Plattformserver zu

** Das Schlüsselpaar ist das, das Sie beim Erstellen der EC2-Instanz heruntergeladen haben **

$ ssh -i Schlüsselpaar ec2 - Benutzer@Elastische IP-Adresse

36_connect_to_ec2

Stellen Sie eine Verbindung zu RDS her

Greifen Sie mit einem Befehl ähnlich dem folgenden auf RDS zu

$ psql -h RDS-Endpunkt-U Hauptbenutzername Datenbankname

37_connect_ec2_to_rds

Wenn Sie darauf zugreifen können, gibt es kein Problem Nachfolgende Arbeiten werden von diesem Bildschirm aus ausgeführt

Über PostgreSQL

Ich werde zumindest die Bedingungen überprüfen, die zum Erstellen einer Umgebung mit PostgreSQL erforderlich sind

Datenbankcluster

Ein Datenbankcluster ist eine Sammlung von Datenbanken

38_postgresql_database_cluster

Bei der Erstellung mit RDS werden die ersten auf dem Bildschirm "RDS-Einstellung" festgelegten Datenbanken "," postgres "," rdsadin "," tempalte0 "und" template1 "im Datenbankcluster erstellt.

28_create_rds_add_settings_default_database

Bitte überprüfen Sie die folgenden Dokumente für Details

Datenbank

Eine Datenbank ist eine benannte Sammlung von Datenbankobjekten (Tabellen, Ansichten, Funktionen und Operatoren usw.).

39_postgresql_database

Bitte überprüfen Sie die folgenden Dokumente für Details

Schema

Schemata können Datenbankobjekte (Tabellen, Ansichten, Funktionen und Operatoren usw.) in der Datenbank gruppieren

40_postgresql_schema

Bitte überprüfen Sie die folgenden Dokumente für Details

Über Brötchen

Die Rolle genehmigt die Verbindung zur Datenbank. Die Rollen sind in Datenbankbenutzer (Benutzer, die sich bei der Datenbank anmelden) und Gruppen von Datenbankbenutzern unterteilt.

Es gibt zwei Arten von SQL, um eine Rolle zu erstellen: Der Unterschied zwischen den beiden besteht darin, ob sie das LOGIN-Attribut haben

--Erstellen Sie eine Gruppe von Datenbankbenutzern
CREATE ROLE name;
--Datenbankbenutzer erstellen
CREATE USER name;

Bitte überprüfen Sie die folgenden Dokumente für Details

Verwalten Sie Benutzer und Rollen

Wir werden eine Umgebung erstellen, die auf "Best Practices für die Verwaltung von Benutzern und Rollen" basiert, indem wir auf den AWS-Blogbeitrag verweisen. Ich werde es unter Bezugnahme auf die folgenden zwei Artikel erstellen

Ziele zu zielen

managing-postgresql-users-1

  • Verwenden Sie den Hauptbenutzer, um Rollen für jede Anwendung oder jeden Anwendungsfall zu erstellen, z. B. "readonly" oder "readwrite"
  • Fügen Sie Berechtigungen hinzu, damit diese Rollen auf verschiedene Datenbankobjekte zugreifen können. Beispielsweise kann die Rolle "schreibgeschützt" nur "SELECT" -Abfragen ausführen
  • Geben Sie der Rolle die für die Funktion erforderlichen Mindestberechtigungen --Erstellen Sie für jede Anwendung oder einzelne Funktion einen neuen Benutzer, z. B. "app_user" oder "reporting_user"
  • Weisen Sie diesen Benutzern die entsprechenden Rollen zu und gewähren Sie ihnen schnell die gleichen Berechtigungen wie den Rollen. Gewähren Sie beispielsweise "app_user" die Rolle "readwrite" und "reporting_user" die Rolle "readonly".
  • Sie können einem Benutzer jederzeit eine Rolle entfernen, um Berechtigungen zu widerrufen

Das obige Bild und der Text stammen aus PostgreSQL-Benutzer- und Rollenverwaltung | Amazon Web Services-Blog.

Was ich damit sagen möchte, ist, Gruppenrollen wie "Leseberechtigung" und "Lese- / Schreibberechtigung" zu erstellen und sie den Benutzern entsprechend ihrem Zweck zu erteilen.

öffentliches Schema

** Hinweis: Der Rest der Arbeit wird erledigt, indem vom Step Server als Master User eine Verbindung zum RDS hergestellt wird **

Durch das Erstellen einer neuen Datenbank wird ein "öffentliches Schema" erstellt Das Erstellen eines Datenbankobjekts wie einer Tabelle gehört zum "öffentlichen Schema"

Selbst wenn Sie einen neuen Benutzer erstellen und Berechtigungen erteilen und einschränken, wird dieser im "öffentlichen Schema" erstellt, sodass der neu erstellte Benutzer bedeutungslos ist. Sie müssen die Erstellungsberechtigungen für das "öffentliche Schema" widerrufen

In der offiziellen PostgreSQL-Dokumentation heißt es:

Standard SQL hat auch nicht das Konzept eines öffentlichen Schemas. Das öffentliche Schema sollte nicht verwendet werden, um die Einhaltung des Standards zu maximieren.

Es ist besser, das "öffentliche Schema" nicht zu verwenden Bitte überprüfen Sie das offizielle Dokument unten für Details

Verhindern Sie die Verwendung eines öffentlichen Schemas

Führen Sie die folgende SQL aus, um das öffentliche Schema zu deaktivieren

41_revoke_public_schema

--Widerrufen Sie die standardmäßige Erstellungsberechtigung für das öffentliche Schema aus der öffentlichen Rolle
REVOKE CREATE ON SCHEMA public FROM PUBLIC;

--Deaktivieren Sie die Fähigkeit öffentlicher Rollen, eine Verbindung zur Datenbank herzustellen
-- ※eroge_release_db ist der Datenbankname
REVOKE ALL ON DATABASE eroge_release_db FROM PUBLIC;

Erstellen Sie ein Schema

Normalerweise ist es besser, für jeden Benutzer, der es erstellt, ein Schema zu erstellen. Dieses Mal erstellen wir jedoch nur ein Schema, damit alle Benutzer dieses Schema sehen.

In der offiziellen Dokumentation finden Sie empfohlene Verwendungsmuster für das Schema

Führen Sie die folgende SQL aus, um ein Schema zu erstellen

42_create_schema

--Erstellen eines Schemas
-- ※eroge_release_db_Schema ist der Schemaname
CREATE SCHEMA eroge_release_db_schema;

Erstellen Sie eine Leseberechtigungsrolle

Erstellen Sie eine Rolle, die nur das Lesen von Daten ermöglicht Es wird eine Rolle sein, die keine Daten aktualisieren kann

Außerdem werden automatisch Berechtigungen erteilt, damit die Rolle "Nur Lesen" auf zukünftige Tabellen und Ansichten zugreifen kann.

Führen Sie die folgende SQL aus

43_create_readonly_role

--Erstellen Sie eine Rolle mit dem Namen readonly(Rolle ohne Passwort oder Autorität)
CREATE ROLE readonly;

--Die schreibgeschützte Rolle ist Eroge_release_Gewähren Sie Zugriff auf db
-- ※eroge_release_db ist der Datenbankname
GRANT CONNECT ON DATABASE eroge_release_db TO readonly;

--Gewähren Sie schreibgeschützten Rollenzugriff auf das Schema
-- ※eroge_release_db_Schema ist der Schemaname
GRANT USAGE ON SCHEMA eroge_release_db_schema TO readonly;

--Gewähren Sie Zugriff auf alle Tabellen und Ansichten im Schema
-- ※eroge_release_db_Schema ist der Schemaname
GRANT SELECT ON ALL TABLES IN SCHEMA eroge_release_db_schema TO readonly;

--Wenn in Zukunft eine neue Tabelle oder Ansicht erstellt wird, haben Sie keine Zugriffsberechtigung.
--Wenn also in Zukunft eine neue Tabelle oder Ansicht erstellt wird, wird die Zugriffsberechtigung automatisch erteilt.
-- ※eroge_release_db_Schema ist der Schemaname
ALTER DEFAULT PRIVILEGES IN SCHEMA eroge_release_db_schema GRANT SELECT ON TABLES TO readonly;

Erstellen Sie eine Lese- / Schreibberechtigungsrolle

Erstellen Sie eine Rolle, die neben dem Lesen von Daten auch das Schreiben ermöglicht Außerdem werden automatisch Berechtigungen erteilt, damit auf zukünftige Tabellen und Ansichten über die Rolle "readwrite" zugegriffen werden kann.

Führen Sie die folgende SQL aus

44_create_readwrite_role

--Erstellen Sie eine Rolle mit dem Namen readwrite(Rolle ohne Passwort oder Autorität)
CREATE ROLE readwrite;

--Readwrite-Rolle ist Eroge_release_Gewähren Sie Zugriff auf db
-- ※eroge_release_db ist der Datenbankname
GRANT CONNECT ON DATABASE eroge_release_db TO readwrite;

--Gewähren Sie der Berechtigung zum Lesen der Rolle, neue Objekte im Schema zu erstellen
-- ※eroge_release_db_Schema ist der Schemaname
GRANT USAGE, CREATE ON SCHEMA eroge_release_db_schema TO readwrite;

--Gewähren Sie Zugriff auf alle Tabellen und Ansichten im Schema und fügen Sie Berechtigungen hinzu, löschen Sie sie und aktualisieren Sie sie
-- ※eroge_release_db_Schema ist der Schemaname
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA eroge_release_db_schema TO readwrite;

--Wenn in Zukunft eine neue Tabelle oder Ansicht erstellt wird, haben Sie keine Zugriffsberechtigung und keine Berechtigung zum Hinzufügen / Löschen / Aktualisieren.
--Wenn in Zukunft eine neue Tabelle oder Ansicht erstellt wird, werden daher automatisch Zugriffsberechtigungen und Berechtigungen zum Hinzufügen / Löschen / Aktualisieren erteilt.
-- ※eroge_release_db_Schema ist der Schemaname
ALTER DEFAULT PRIVILEGES IN SCHEMA eroge_release_db_schema GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO readwrite;

--Gewähren Sie Zugriff auf die Sequenz, da Sie die Sequenz auch verwenden müssen
-- ※eroge_release_db_Schema ist der Schemaname
GRANT USAGE ON ALL SEQUENCES IN SCHEMA eroge_release_db_schema TO readwrite;

--Wenn in Zukunft eine neue Sequenz erstellt wird, haben Sie keine Zugriffsberechtigung.
--Wenn also in Zukunft eine neue Sequenz erstellt wird, werden Zugriffsrechte automatisch gewährt.
-- ※eroge_release_db_Schema ist der Schemaname
ALTER DEFAULT PRIVILEGES IN SCHEMA eroge_release_db_schema GRANT USAGE ON SEQUENCES TO readwrite;

Erstellen Sie einen Benutzer und gewähren Sie eine Rolle

Erstellen Sie einen Benutzer für die Anmeldung und gewähren Sie die zuvor erstellte Rolle Erstellen Sie Benutzer für "Lesen" und "Lesen / Schreiben"

--app_readonly --app (lesen / schreiben)

Bitte führen Sie die folgende SQL aus

45_create_users

--Erstellen Sie einen schreibgeschützten Benutzer und erteilen Sie die Leseberechtigungsrolle
-- ※app_schreibgeschützt ist der Benutzername, Passwort ist das Passwort zum Anmelden
CREATE USER app_readonly WITH PASSWORD 'password';
GRANT readonly TO app_readonly;

--readwrite Benutzer erstellen und lesen/Schreibberechtigungsrolle erteilen
--* App ist der Benutzername, Passwort ist das Passwort für die Anmeldung
CREATE USER app WITH PASSWORD 'password';
GRANT readwrite TO app;

Überprüfen Sie, ob der Benutzer und die Rolle erstellt wurden

Führen Sie die folgende SQL aus, um zu überprüfen, ob die Benutzer app und app_readonly angezeigt und die Rollen ordnungsgemäß zugewiesen wurden.

46_confirmation_user_list

--Berechtigungsbestätigung SQL
  SELECT r.rolname
       , ARRAY(
                   SELECT b.rolname
                     FROM pg_catalog.pg_auth_members m
                     JOIN pg_catalog.pg_roles        b 
                       ON m.roleid = b.oid
                    WHERE m.member = r.oid
               ) AS memberof
    FROM pg_catalog.pg_roles r
   WHERE r.rolname NOT IN (
                               'pg_execute_server_program', 'pg_monitor',           'pg_read_all_settings',
                               'pg_read_all_stats',         'pg_read_server_files', 'pg_stat_scan_tables',
                               'pg_write_server_files',     'rds_ad',               'rdsadmin',                  
                               'rds_password',              'pg_signal_backend',    'rds_iam',                   
                               'rds_replication',           'rdsrepladmin',         'rds_superuser'
                          )
ORDER BY r.rolname;

Ändern Sie den Standard-Suchpfad

Mit der Standardeinstellung "Suchpfad" können Sie die Tabelle nicht durchsuchen, indem Sie den erstellten Namen "eroge_release_db_schema" weglassen. Ändern Sie die Einstellung "Suchpfad" so, dass Sie die Tabelle durchsuchen können, auch wenn Sie den Namen "eroge_release_db_schema" weglassen. ** Ersetzen Sie eroge_release_db_schema durch den Namen des von Ihnen erstellten Schemas **

Überprüfen Sie die folgenden Dokumente auf weitere Informationen zu search_path

Überprüfen Sie den Standard-Suchpfad

Führen Sie die folgende SQL aus

47_default_search_path

SHOW search_path;

Im Standardzustand sucht es nach demselben Schemanamen wie der "Login-Benutzername", andernfalls sucht es nach dem "öffentlichen" Schema. Sie können die Tabelle durchsuchen, indem Sie eroge_release_db_schema zu search_path hinzufügen.

Wenn Sie das aktuelle aktuelle Schema überprüfen, ist es "öffentlich"

48_default_current_schema

Wenn Sie versuchen, die Tabelle ohne den Schemanamen zu durchsuchen, tritt der folgende Fehler auf.

49_select_game_casts_table_fail

Ändern Sie den Suchpfad aus der DB-Parametergruppe

Wählen Sie die von Ihnen erstellte DB-Parametergruppe aus und bearbeiten Sie sie

50_edit_db_parameter_group

Geben Sie "search_path" für den Parameter ein, geben Sie "$ user", eroge_release_db_schema "für den Werteteil ein und klicken Sie auf" Vorschau der Änderungen ".

51_input_db_parameter_group

Stellen Sie sicher, dass der neue Wert "$ user" ist, eroge_release_db_schema "und klicken Sie auf" Save Save Changes "

52_save_db_parameter_group

Suchen Sie nach geändertem Suchpfad

Führen Sie die folgende SQL aus

53_after_change_search_path

SHOW search_path;

Stellen Sie sicher, dass Sie die geänderten Werte in der DB-Parametergruppe haben Wenn Sie auch das aktuelle aktuelle Schema überprüfen, lautet es "eroge_release_db_schema"

54_after_change_schema

Wenn Sie den Schemanamen weglassen und die Tabelle durchsuchen, können Sie sehen, dass sie fehlerfrei angezeigt wurde.

55_select_game_casts_table_success

** Damit ist der Aufbau von RDS abgeschlossen **

Schließlich

Normalerweise sollten Sie AWS CDK oder Terraform verwenden, um Ihre Infrastruktur zu codieren. Zunächst habe ich es über den AWS-Konsolenbildschirm geschafft Es hat lange gedauert, aber ich konnte das ganze Bild erfassen und es war ein sehr guter Start. Schließlich möchte ich auch die diesmal erstellte Umgebung codieren!

Recommended Posts

Wahrscheinlich kann jeder eine Plattformserver-, RDS- (Master / Slave-) Umgebung in einer Multi-AZ-Umgebung auf dem AWS-Konsolenbildschirm erstellen
Erstellen Sie ein Django-Projekt und eine Django-Anwendung in einer virtuellen Python-Umgebung und starten Sie den Server
Erstellen Sie eine Docker-Umgebung, die PyTorch und JupyterLab verwenden kann
Erstellen Sie eine Python-Umgebung und übertragen Sie Daten auf den Server
Erstellen einer Todo-App mit Django ① Erstellen Sie eine Umgebung mit Docker