Stellen Sie Magento eCommerce in Oracle Linux mit MySQL Database Service bereit
Sie können Magento eCommerce auf Oracle Linux mit MySQL Database Service bereitstellen, um Benutzern und Unternehmen eine skalierbare und robuste Architektur, geringe Implementierungs- und Wartungsarbeiten sowie Zugriff auf eine große, von der Community geleitete Knowledge Base zu ermöglichen.
Magento ist eine Open-Source-E-Commerce-Plattform, die in PHP geschrieben ist und andere PHP-Frameworks wie Laminas und Symfony verwenden kann. Der Quellcode wird unter Open Software License (OSL) v3.0 verteilt. Magento nutzt das relationale MySQL-Datenbankverwaltungssystem, die PHP-Programmiersprache und Elemente des Zend-Frameworks. Es wendet die Konventionen der objektorientierten Programmier- und Modell-View-Controller-Architektur an.
Architektur
Sie können Magento in einer Einzelknotenkonfiguration oder als Teil einer hochverfügbaren Konfiguration mit mehreren Knoten bereitstellen. Diese Referenzarchitektur enthält die Terraform-Automatisierung, die mit beiden Konfigurationen kompatibel ist.
Eine hochverfügbare Architektur der Produktionsklasse finden Sie im folgenden Diagramm, das ein Szenario mit mehreren Knoten veranschaulicht.
Beschreibung der Abbildung magento-mds-multi.png
Das Vordefinitionsdiagramm veranschaulicht eine vereinfachte High-Availability-Anwendungsumgebung auf OCI mit Schwerpunkt auf zwei Virtual-Machine-Instanzen hinter einem Load Balancer. Diese Instanzen sind in zwei unterschiedlichen Faultdomains innerhalb einer Availability-Domain vorhanden. Diese Architektur verwendet den OCI File Storage-Service. Magento wird in einem Shared Network File System (NFS) installiert. Das Dateisystem ist in einem dedizierten privaten Subnetz mit einer Netzwerksicherheitsgruppe (NSG) vorhanden, die Zugriff auf das Mountziel von allen Instanzen zulässt.
Das folgende Diagramm veranschaulicht eine einfache Single-Node-Architektur. Sie besteht aus einem leichten Deployment, das für Lernzwecke geeignet sein kann oder als Konzeptnachweis dient.
Beschreibung der Abbildung magento-mds-single.png
- Policys
Eine Oracle Cloud Infrastructure Identity and Access Management-Policy gibt an, welche Personen auf welche Ressourcen zugreifen können und wie. Der Zugriff wird auf Gruppen- und Compartment-Ebene erteilt. Sie können eine Policy schreiben, mit der eine Gruppe einen bestimmten Zugriffstyp innerhalb eines bestimmten Compartments oder auf den Mandanten erhält.
- Abteilungen
Compartments sind regionsübergreifende logische Partitionen in einem Oracle Cloud Infrastructure-Mandanten. Mit Compartments können Sie Ihre Ressourcen in Oracle Cloud organisieren, den Zugriff auf die Ressourcen kontrollieren und Nutzungsquoten festlegen. Um den Zugriff auf die Ressourcen in einem bestimmten Compartment zu kontrollieren, definieren Sie Policys, mit denen angegeben wird, wer auf die Ressourcen zugreifen kann und welche Aktionen sie ausführen können.
- Virtuelles Cloud-Netzwerk (VCN)
Einer Ihrer ersten Schritte in OCI besteht in der Einrichtung eines virtuellen Cloud-Netzwerks (VCN) für Ihre Cloud-Ressourcen. Ein VCN ist ein softwaredefiniertes Netzwerk, das Sie in einer OCI-Region einrichten. VCNs können in Subnetze segmentiert werden, die für eine Region oder eine Availability-Domain spezifisch sein können. Sowohl regionsspezifische als auch Availability-Domain-spezifische Subnetze können in demselben VCN vorhanden sein. Ein Subnetz kann öffentlich oder privat sein.
- Verfügbarkeitsdomains
Availability-Domains sind eigenständige, unabhängige Data Center innerhalb einer Region. Die physischen Ressourcen in jeder Availability-Domain sind von den Ressourcen in den anderen Availability-Domains isoliert, was Fehlertoleranz bietet. Availability-Domains haben keine gemeinsame Infrastruktur wie Stromversorgung, Kühlung oder das interne Availability-Domainnetzwerk. Daher ist es wahrscheinlich, dass sich ein Fehler in einer Availability-Domain auf die anderen Availability-Domains in der Region auswirkt.
- Load Balancer
Der Oracle Cloud Infrastructure Load Balancing-Service ermöglicht automatisierte Trafficverteilung von einem einzelnen Entry Point zu mehreren Servern im Backend.
- Compute-Instanzen
Mit Oracle Cloud Infrastructure Compute können Sie Compute-Hosts bereitstellen und verwalten. Sie können Compute-Instanzen mit Ausprägungen starten, die Ihren Ressourcenanforderungen (CPU, Arbeitsspeicher, Netzwerkbandbreite und Speicher) entsprechen. Nach dem Erstellen einer Compute-Instanz können Sie sicher auf die Compute-Instanz zugreifen, sie neu starten, Volumes zuordnen oder entfernen und sie beenden, wenn Sie sie nicht benötigen.
- Internetgateway
Das Internetgateway ermöglicht den Traffic zwischen den öffentlichen Subnetzen in einem VCN und dem öffentlichen Internet.
- Dynamisches Routinggateway (DRG)
Das DRG ist ein virtueller Router, der einen Pfad für privaten Netzwerkverkehr zwischen On-Premise-Netzwerken und VCNs bereitstellt und auch verwendet werden kann, um Datenverkehr zwischen VCNs in derselben Region oder regionsübergreifend weiterzuleiten.
- Dateispeicher
Der Oracle Cloud Infrastructure File Storage-Service stellt ein dauerhaft, skalierbares und sicheres Netzwerkdateisystem der Unternehmensklasse bereit. Sie können über jede Bare-Metal-, VM- oder Containerinstanz in einem VCN eine Verbindung mit einem File Storage Service-Dateisystem herstellen. Sie können auch außerhalb des VCN mit Oracle Cloud Infrastructure FastConnect und IPSec-VPN auf ein Dateisystem zugreifen.
- Netzwerksicherheitsgruppe (NSG)
NSGs fungieren als virtuelle Firewalls für Ihre Cloud-Ressourcen. Mit dem Zero-Trust-Sicherheitsmodell von Oracle Cloud Infrastructure wird der gesamte Traffic abgelehnt, und Sie können den Netzwerktraffic in einem VCN kontrollieren. Eine NSG besteht aus einer Gruppe von Ingress- und Egress-Sicherheitsregeln, die nur für eine angegebene Gruppe von VNICs in einem einzelnen VCN gelten.
Empfehlungen
- VCN
Legen Sie beim Erstellen eines VCN die Anzahl der erforderlichen CIDR-Blöcke und die Größe jedes Blocks basierend auf der Anzahl der Ressourcen fest, die Sie den Subnetzen im VCN zuordnen möchten. Verwenden Sie CIDR-Blöcke, die sich im privaten Standard-IP-Adressraum befinden.
Wählen Sie einen Adressbereich aus, der sich nicht mit Ihrem On-Premise-Netzwerk oder einem anderen Netzwerk überschneidet, sodass Sie bei Bedarf eine Verbindung zwischen dem VCN und Ihrem On-Premise-Netzwerk einrichten können.
Berücksichtigen Sie beim Entwerfen der Subnetze den Trafficfluss und die Sicherheitsanforderungen. Hängen Sie alle Ressourcen innerhalb einer bestimmten Tier oder Rolle an dasselbe Subnetz an, das als Sicherheitsgrenze verwendet werden kann.
- Sicherheit
Mit Policys können Sie einschränken, wer auf die OCI-Ressourcen Ihres Unternehmens zugreifen kann und wie sie darauf zugreifen können. Verwenden Sie Vault für zusätzlichen Schutz Ihrer Schlüssel, Zertifikate und Secrets.
Der Networking-Service bietet zwei Features einer virtuellen Firewall, die Sicherheitsregeln verwenden, um den Traffic auf Paketebene zu steuern: Sicherheitslisten und Netzwerksicherheitsgruppen (NSG). Eine NSG besteht aus einer Gruppe von Ingress- und Egress-Sicherheitsregeln, die nur für eine Gruppe von VNICs Ihrer Wahl in einem einzelnen VCN gelten. Beispiel: Sie können alle Compute-Instanzen auswählen, die als Webserver in der Webschicht einer Multi-Tier-Anwendung in Ihrem VCN fungieren.
NSG-Sicherheitsregeln entsprechen den Sicherheitslistenregeln. Bei der Quelle oder dem Ziel einer NSG-Sicherheitsregel können Sie jedoch eine NSG anstelle eines CIDR-Blocks angeben. So können Sie ganz einfach Sicherheitsregeln schreiben, um Traffic zwischen zwei NSGs in demselben VCN oder innerhalb einer einzelnen NSG zu steuern. Wenn Sie ein Datenbanksystem erstellen, können Sie eine oder mehrere NSGs angeben. Sie können auch ein vorhandenes Datenbanksystem aktualisieren, um eine oder mehrere NSGs zu verwenden.
- Berechnen
Wählen Sie Ausprägungen mit den entsprechenden OCPUs und der Arbeitsspeicherkombination aus, und stellen Sie für jede Instanz je nach Bedarf lokalen NVMe- und/oder Blockspeicher bereit. Ziehen Sie die Verwendung der verfügbaren flexiblen Ausprägungen in Betracht, die eine größere Flexibilität bei der Kombination von OCPUs und Arbeitsspeicher bieten.
- Datenbank
Wählen Sie Ihre Oracle MySQL Database Service-Ausprägungen basierend auf der geplanten Workload aus. Aktivieren Sie MySQL High Availability für drei redundante Knoten.
Hinweise
Beim Deployment von Magento eCommerce auf Oracle Linux mit MySQL Database Service sind folgende Faktoren zu berücksichtigen:
- Anwendungsverfügbarkeit und Skalierbarkeit
In diesem Beispiel werden in der hochverfügbaren Architektur zwei Instanzen in unterschiedlichen Faultdomains innerhalb derselben Availability-Domain angezeigt. Sie können die Instanzen für noch höhere Fehlertoleranz in unterschiedlichen Availability-Domains (in Regionen, in denen verfügbar) platzieren. Ein alternativer Ansatz, der eine dynamischere Anpassung an anspruchsvollere und unterschiedliche Performanceanforderungen darstellt, ist die Verwendung eines Instanzpools und die automatische Skalierung.
Mit Instanzpools können Sie mehrere Compute-Instanzen basierend auf derselben Konfiguration innerhalb derselben Region bereitstellen und erstellen.
Mit Autoscaling können Sie die Anzahl der Compute-Instanzen in einem Instanzpool basierend auf Leistungsmetriken, wie der CPU-Auslastung, automatisch anpassen. Mit Autoscaling können Sie für Benutzer in Perioden mit hohem Bedarf eine konsistente Performance bereitstellen und Ihre Kosten in Perioden mit niedrigem Bedarf reduzieren.
- Datenbankverfügbarkeit und -skalierbarkeit
Das in der hochverfügbaren Architektur angezeigte MySQL Database-System nutzt die integrierte Option für High Availability von MySQL, mit der drei Instanzen erstellt und in unterschiedliche Faultdomains eingefügt werden.
- DatenbankbackupsMySQL Database Service unterstützt zwei Backuptypen: vollständiges Backup aller Daten im Datenbanksystem und inkrementelles Backup nur der Daten, die seit dem letzten vollständigen Backup hinzugefügt oder geändert wurden. Backups werden wie folgt ausgeführt:
- Manuell: Eine Aktion in der Konsole oder Anforderung über die API initiiert das Backup. Manuelle Backups können für mindestens einen Tag und maximal 365 Tage aufbewahrt werden.
- Automatisch: Automatisch geplante Backups werden ohne erforderliche Interaktion zum Zeitpunkt der Benutzerauswahl ausgeführt. Automatische Backups werden zwischen einem und 35 Tagen aufbewahrt. Der Standardaufbewahrungswert sind sieben Tage. Nach der Definition können Sie den Aufbewahrungszeitraum eines automatischen Backups nicht bearbeiten
- Compute-Backups
Mit dem Oracle Cloud Infrastructure Block Volumes-Service können Sie Point-in-Time-Backups von Daten auf einem Block-Volume erstellen. Sie können diese Backups dann sofort oder später auf neuen Volumes wiederherstellen.
Mit dem Service können Sie auch ein absturzkonsistentes Point-in-Time-Backup eines Boot-Volumes ohne Unterbrechung oder Ausfallzeit der Anwendung erstellen. Boot-Volume-Backupfunktionen sind mit den Block-Volume-Backupfunktionen identisch.
- Sicherheitsrichtlinien
Verwenden Sie Policys, um einzuschränken, wer auf welche OCI-Ressourcen Ihres Unternehmens zugreifen kann und wie.
- Netzwerksicherheit
Der Networking-Service bietet zwei Features einer virtuellen Firewall, die Sicherheitsregeln verwenden, um den Traffic auf Paketebene zu steuern: Sicherheitslisten und Netzwerksicherheitsgruppen (NSGs). Eine NSG besteht aus einer Gruppe von Ingress- und Egress-Sicherheitsregeln, die nur für eine Gruppe von VNICs Ihrer Wahl in einem einzelnen VCN gelten. Beispiel: Sie können alle Compute-Instanzen auswählen, die als Webserver in der Webschicht einer Multi-Tier-Anwendung in Ihrem VCN fungieren.
NSG-Sicherheitsregeln entsprechen den Sicherheitslistenregeln. Bei der Quelle oder dem Ziel einer NSG-Sicherheitsregel können Sie jedoch eine NSG anstelle eines CIDR-Blocks angeben. So können Sie ganz einfach Sicherheitsregeln schreiben, um Traffic zwischen zwei NSGs in demselben VCN oder innerhalb einer einzelnen NSG zu steuern. Wenn Sie ein Datenbanksystem erstellen, können Sie eine oder mehrere NSGs angeben. Sie können auch ein vorhandenes Datenbanksystem aktualisieren, um eine oder mehrere NSGs zu verwenden.
In diesen Beispielen werden die Instanzen als in einem öffentlichen Subnetz vorhanden angezeigt. Sie sollten sie in ein privates Subnetz aufnehmen, um zusätzliche Sicherheit zu gewährleisten. In diesem Fall ist eine Bastion für den Zugriff auf die Instanzen erforderlich.
Bereitstellen
Der Terraform-Code für diese Referenzarchitektur ist auf GitHub verfügbar. Sie können den Code mit nur einem Mausklick in Oracle Cloud Infrastructure Resource Manager abrufen, den Stack erstellen und bereitstellen oder den Code von GitHub auf Ihren Computer herunterladen, den Code anpassen und die Architektur mit der Terraform-CLI bereitstellen.
- Mit dem Beispielstack in Oracle Cloud Infrastructure Resource Manager bereitstellen:
- Klicken Sie auf
Wenn Sie noch nicht angemeldet sind, geben Sie den Mandanten und die Benutzerzugangsdaten ein.
- Wählen Sie die Region aus, in der Sie den Stack bereitstellen möchten.
- Befolgen Sie die Prompts und Anweisungen zum Erstellen des Stacks auf dem Bildschirm.
- Klicken Sie nach dem Erstellen des Stacks auf Terraform-Aktionen, und wählen Sie Planen aus.
- Warten Sie, bis der Job abgeschlossen ist, und prüfen Sie den Plan.
Um Änderungen vorzunehmen, kehren Sie zur Seite "Stackdetails" zurück, klicken Sie auf Stack bearbeiten, und nehmen Sie die erforderlichen Änderungen vor. Führen Sie anschließend die Aktion Plan erneut aus.
- Wenn keine weiteren Änderungen erforderlich sind, kehren Sie zur Seite "Stackdetails" zurück, klicken Sie auf Terraform-Aktionen, und wählen Sie Anwenden aus.
- Klicken Sie auf
- Stellen Sie Anwendungen mit dem Terraform-Code in GitHub bereit:
- Gehen Sie zu GitHub.
- Klonen Sie das Repository, oder laden Sie es auf Ihren lokalen Rechner herunter.
- Befolgen Sie die Anweisungen im Dokument
README
.
Mehr anzeigen
Weitere Informationen zu Best Practices für Oracle Cloud Infrastructure, Oracle MySQL Database Service und anderen ähnlichen Deployments in OCI, indem Sie die folgenden zusätzlichen Ressourcen prüfen:
- Best Practice-Framework für Oracle Cloud Infrastructure
- Überblick über MySQL Database Service
- MySQL Database Service in Oracle Cloud bereitstellen
- WordPress-CMS einrichten, das mit einer MySQL-Datenbank in der Cloud verbunden ist
- Stellen Sie Drupal CMS auf Oracle Linux mit MySQL Database Service bereit.
- Stellen Sie Joomla CMS auf Oracle Linux mit MySQL Database Service bereit.
- Moodle-LMS auf Oracle Linux mit MySQL Database Service bereitstellen