Als Anwendungstechniker hatte ich in meiner täglichen Arbeit nicht viel Erfahrung mit Infrastrukturdesign, aber ich war beeindruckt, dass ich problemlos eine Infrastrukturinfrastruktur aufbauen konnte, obwohl ich über AWS fast keine Kenntnisse über Infrastruktur habe. Dieses Mal werde ich für dieselben Anfänger wie mich das Verfahren vom Erstellen der AWS-Cloud-Umgebung bis zur Bereitstellung der Spring Boot-App erläutern.
Für die AWS-Konfiguration übernehmen wir eine redundante Konfiguration unter Verwendung von zwei Verfügbarkeitszonen (AZ) in der Region Tokio. EC2-Instanzen werden in den beiden AZs verteilt, und der Zugriff wird über ALB (Load Balancer) verteilt. Darüber hinaus wird die RDS-Instanz in Multi-AZ so konfiguriert, dass sie wie in EC2 in zwei AZs verteilt wird.
Jeder Instanz in AWS muss eine IP-Adresse zugewiesen und ordnungsgemäß weitergeleitet werden, damit sie die Instanzen in AWS vom externen Netzwerk aus erreichen kann. Der Dienst, der ein solches virtuelles Netzwerk bereitstellt, heißt Amazon Virtual Private Cloud (VPC).
Obwohl dies üblich ist, streben wir eine VPC-Umgebung an, die dem tatsächlichen Kampf nahe kommt. Diese VPC besteht aus zwei Typen: ** öffentliches Subnetz ** für die Internetkommunikation und ** privates Subnetz **, das für das Internet gesperrt ist. Wenden Sie jeweils unterschiedliche Sicherheitsgruppen an, um den Zugriff auf die beiden Arten von Subnetzen zu steuern. Der AP-Server basiert auf dem öffentlichen Subnetz und der DB-Server auf dem privaten Subnetz.
Nach der Registrierung eines neuen AWS-Kontos wurde bereits die Standard-VPC-Umgebung erstellt. Dieses Mal werden wir jedoch die folgende VPC von Grund auf neu erstellen, ohne sie zu verwenden.
AWS Management Console
⇒ VPC
⇒ Wählen Sie VPC
aus dem Menü auf der linken Seite ⇒ Klicken Sie auf die Schaltfläche Create VPC
.Erstellen Sie ein Subnetz innerhalb der obigen VPC. Ein Subnetz kann nicht über mehrere AZs hinweg erstellt werden. Geben Sie daher beim Erstellen unbedingt ein AZ an. Erstellen Sie für die Lastverteilung und Redundanz zwei Subnetze für den AP-Server und zwei für den DB-Server.
Subnet | AZ | IPv4-CIDR-Block |
---|---|---|
public-subnet1 | ap-northeast-1a | 10.0.0.0/24 |
public-subnet2 | ap-northeast-1c | 10.0.1.0/24 |
private-subnet1 | ap-northeast-1a | 10.0.2.0/24 |
private-subnet2 | ap-northeast-1c | 10.0.3.0/24 |
Unterabschnittslistenbildschirm nach Abschluss
Das ** Internet Gateway (IGW) ** ist, wie der Name schon sagt, das Gateway zum Internet und wird für die Kommunikation zwischen der VPC und dem externen Netzwerk installiert. Ob das oben erstellte Subnetz ein öffentliches oder ein privates Subnetz ist, wird durch die auf dieses Subnetz angewendete ** Routentabelle ** bestimmt. Ziel: Das Subnetz, auf das die Routentabelle mit IGW als Ziel von 0.0.0.0/0 angewendet wird, ist das öffentliche Subnetz. Andererseits ist das Subnetz, auf das die Routentabelle (Standardeinstellung) ohne IGW als Ziel des Ziels: 0.0.0.0/0 angewendet wird, ein privates Subnetz.
Eine Sicherheitsgruppe ist eine Firewall für jede Instanz in AWS, die den eingehenden (eingehenden) und ausgehenden (ausgehenden) Zugriff steuern kann. Auf jede Instanz muss mindestens eine Sicherheitsgruppe angewendet werden.
Damit ist der Aufbau der VPC abgeschlossen.
RDS ist ein relationaler Datenbankmanagerdienst. Die folgenden 6 Arten von Datenbankmodulen können mit RDS ausgewählt werden. ・ Amazon Aurora ・ MySQL ・ MariaDB ・ PostgreSQL -Orakel · MS SQL Server Dieses Mal werden wir Aurora DB bauen. Aurora ist AWS 'proprietäre relationale DB-Engine, die mit MySQL kompatibel ist und eine bis zu 5- und 3-fache PostgreSQL-Durchsatzleistung von MySQL bieten soll.
Als Voraussetzung für die Erstellung einer DB-Instanz müssen Sie eine DB-Subnetzgruppe innerhalb der VPC angeben. Eine DB-Subnetzgruppe benötigt Subnetze in mindestens zwei Verfügbarkeitszonen innerhalb einer bestimmten Region. Sie müssen eine DB-Subnetzgruppe auswählen, wenn Sie eine DB-Instanz auf Ihrer VPC erstellen. Amazon RDS verwendet seine DB-Subnetzgruppe und die bevorzugte Verfügbarkeitszone, um das Subnetz und die IP-Adressen in diesem Subnetz auszuwählen, die der DB-Instanz zugeordnet werden sollen.
AWS Management Console
⇒ RDS
⇒ Wählen Sie Subnet Group
aus dem Menü auf der linken Seite ⇒ Klicken Sie auf die Schaltfläche Create Submarine Group
.Endlich bin ich bei EC2 angekommen. Amazon Elastic Compute Cloud (EC2) ist ein virtueller Server in AWS. Dieses Mal werden wir zwei Instanzen für die Lastverteilung erstellen.
AWS Management Console
⇒ EC2
⇒ Wählen Sie Instance
aus dem Menü auf der linken Seite ⇒ Klicken Sie auf die Schaltfläche Create Instance
.Die ELASTIC IP-Zuweisung ist erforderlich, um den oben genannten EC2-Instanzen eine statische öffentliche IP-Adresse zuzuweisen.
Geben Sie die obige ELASTIC IP mit einem SSH-Client wie Tera Term ein, um auf die EC2-Instanz zuzugreifen. Melden Sie sich mit dem zuvor heruntergeladenen Schlüssel mit dem Benutzer "ec2-user" an.
#Update auf die neueste Software
$ sudo yum update -y
#Änderung des Hostnamens
$ sudo hostname ec2-1-cinpo1
$ sudo vim /etc/sysconfig/network
HOSTNAME=ec2-cinpo1;
#Hostdatei bearbeitet und von AWS ausgegeben<Private IP>schreiben.
$ echo "17X.XX.X.X30 ec2-cinpo1" |sudo tee -a /etc/hosts
#Bestätigung des Hostnamens
$ hostname -f
#Zeitzonenänderung
# /etc/sysconfig/Uhr bearbeiten
$ echo -e 'ZONE="Asia/Tokyo"\nUTC=false' | sudo tee /etc/sysconfig/clock
#Zeitzonendatei ändern
$ sudo ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
#Überprüfen Sie das Ergebnis
$ date
#Java 8-Installation
$ sudo yum install java-1.8.0-openjdk.x86_64
#Java 8 Auswahl
$ sudo alternatives --config java
#Überprüfen Sie das Ergebnis
$ java -version
Führen Sie die gleichen Schritte wie oben aus, um eine zweite EC2-Instanz zu erstellen.
#Installieren Sie den MySQL-Client, um eine Verbindung zum Aurora-Server herzustellen.
$ sudo yum install mysql
#Stellen Sie eine Verbindung zum Aurora-Server her, um eine neue Datenbank oder Portdaten zu erstellen.
$ mysql -h <Endpunkt der RDS-Instanz> -u username -p
$ create database sampleDB
...Folgendes wird weggelassen...
$ java -jar XXXXXXXX.jar
Wenden Sie abschließend einen Load Balancer (Application Load Balancer [ALB]) an, um einen Lastausgleich für den AP-Server zu erzielen.
Als Voraussetzung für die Anwendung von ALB müssen Sie die EC2-Instanz als Ziel in der Zielgruppe registrieren. ALB fungiert als ein einziges Ziel für Clients und verteilt eingehenden Datenverkehr an registrierte Ziele.
AWS Management Console
⇒ EC2
⇒ Wählen Sie Zielgruppe
aus dem Menü auf der linken Seite ⇒ Klicken Sie auf die Schaltfläche Zielgruppe erstellen
.
Dies umfasst alles vom Erstellen der AWS-Umgebung bis zur Bereitstellung der App. http://<ALBのDNS名>:ポート/にアクセスすれば、アプリ画面が表示されたら完成です。