Krank bei der Verwaltung von Servern? Hier ist, Wie Einstieg in Behälter, die auf AWS

0
205

Behälter Paket mit allen Ihren app-code, Abhängigkeiten und Konfiguration in einem einzigen Bild, das Sie ausführen können, die auf Amazons Elastic Container-Service ohne Konfiguration oder Verwaltung einer einzelnen EC2-Instanz.

Was Sind die “Container”, und Wie Kann ich Sie Nutzen?

Container sind ein Unix-Konzept, die Anwendungen laufen in isolierten virtualisierten Umgebungen, die frei von der Leistungsabfall kommt mit ausgeführten virtuellen Maschinen.

Sie können von Ihnen denken, wie CDs, die enthalten alles, was Ihre app ausgeführt werden muss. Du kannst diese CD auf AWS, und Sie behandeln das erstellen von Kopien davon und verteilen Sie es auf mehrere worker-Servern. Diese Server laufen wird die app verpackt Ihre CD, und kann schnell gestartet und beendet wird, als Teil einer auto scaling-Gruppe zu beiden match Verlagerung der Last und die Kosten optimieren.

Sie sind zwar sehr nützlich, in Ihrem eigenen Recht, Behälter dienen auch anderen entscheidenden Zweck: Sie bringen Ihre Infrastruktur und-Betrieb auf die gleiche version-management-workflow, wie Sie Ihren code, und Sie synchronisieren Sie Ihre Entwicklung und Produktion-Umgebungen. Ihr code ausgeführt wird, der das gleiche auf Ihrem lokalen Entwicklungscomputer, wie es auf Ihrem server. Und, weil alle Ihre server-Konfiguration ist ein Teil dieser container ist, kann Sie durch verwaltet git genau gleich, wie Sie verwalten Sie Ihre source-code.

Es gibt einige Einschränkungen der Behälter obwohl. Sie sind meist nur-lese -; Orchestrierungs-tools wie ECS und Kubernetes sind entworfen, um Behälter zustandslos ist. Sie nur wirklich wollen, um Sie für den Einsatz Rechen -, nie-Speicher—wenn Sie die Behälter auf einem reservierten EC2-instance, es kann in Ordnung sein, um führen Sie eine Datenbank auf, sondern Anwendungen, die auf ECS sind entworfen, um mit flexiblen start-und stop-Zeiten. Alle Daten die auf Ihnen gespeichert ist vergänglich, genauso wie RAM.

Wenn Ihre Anwendung macht Gebrauch von einer Datenbank oder einem lokalen Speichermedium, möchten Sie vielleicht in Erwägung ziehen, dass, um eine separate Dienstleistung, die billiger sein kann als laufen Sie auf EC2 sowieso. AWS hat viele managed database services, und S3 ist sehr günstig für die Lagerung im Vergleich zur EBS oder EFS.

Verpacken Sie Ihre App mit Docker

Dies ist der schwierige Teil, und der Teil, der die meisten speziell auf Ihre app—erstellen und konfigurieren des Containers. Ironischerweise, dies ist sehr ähnlich zu der Konfiguration von Servern, außer Sie müssen nur einmal tun, alle Ihre Konfiguration werden in einer zentralen Stelle, und Sie werden in der Lage, synchronisieren Sie Ihre Entwicklung und Produktion-Umgebungen. Die Vorteile stark überwiegen die anfänglichen Kopfschmerzen.

Sie wollen, installieren Sie das Andockfenster Desktop für Ihr Betriebssystem, so können Sie ausführen und verwalten von Containern auf Ihrem lokalen Rechner.

Der wichtigste Punkt der Eintrag, der alles definiert die Konfiguration für Andockfenster namens ein Dockerfile. Sie wollen eine neue zu erstellen Projekt-Verzeichnis, und erstellen Sie eine neue Dockerfile, einfach mit dem Namen Dockerfilewith ohne Erweiterung:

touch Dockerfile

In dieser Datei verwenden Sie die Docker-Befehle, um anzuweisen, Docker, wie bauen Sie Ihre Instanz. Um zu beginnen, möchten Sie wahrscheinlich Gabel einen bereits vorhandenen image aus dem Docker Hub, wie Ubuntu, mit dem Befehl:

VON ubuntu

Es gibt viele vorgefertigte Docker-images zur Auswahl, wie Bilder mit einer software wie nginx installiert.

Sie können die link-local-Ordner im Projekt Verzeichnis die Ordner selbst in das Bild mit dem Befehl “KOPIEREN”. Zum Beispiel, wenn Sie hatte ein Projekt Ordner namens ” nginx/ mit allen, die Konfiguration für nginx, Sie konnte kopieren das mit:

KOPIEREN nginx /etc/nginx/

Dies wird sicherstellen, dass die eventuelle container hat die richtige Konfiguration an die Standard nginx Lage.

Docker ist weit komplizierter als das, und es gibt viele Befehle, die für die Ausführung von Initialisierungs-Skripten, die übergabe stateful Informationen zu Containern und ausführen Ihrer app auf Start. Sie können Lesen Sie unsere ausführliche Anleitung auf der Verpackung Ihrer Anwendung mit Docker, um mehr zu erfahren.

Senden Sie Ihre Dockerfile für Amazon ECS

Sie müssen laden Sie Ihr Bild auf einer ECR-repository. Den Kopf über die ECR-Management-Konsole, und erstellen Sie eine neue repository mit einem eindeutigen Namen. Wählen Sie “Ansicht” Push-Befehle,” und Sie werden präsentiert in diesem dialog sollten Sie dabei unterstützen, Ihre docker-client mit dem repository, bauen Sie Ihr Bild und laden Sie Sie auf ECR.

Kurz gesagt, müssen Sie sich mit Ihrem AWS-Anmeldeinformationen, erstellen Sie das Bild, geben Sie ihm einen tag, und dann ausführen:

docker push

Mit repository-URI.

Sobald Sie fertig sind mit dieser, den Kopf über die ECS-Management-Konsole und wählen Sie “Get Started.” Wählen Sie “Custom”, wie die Bild-Typ:

Geben Sie in die vollständige URI für das Bild; es sollte wie folgt Aussehen:

aws_account_id.dkr.ecr.region.amazonaws.com/repository:latest

Es gibt eine Tonne von extra-Konfiguration in diesem dialog unter “Erweiterte Konfiguration” und du wirst wollen, stellen Sie sicher, Lesen Sie alles und füllen Sie alles, was nützlich für Sie. Eine wichtige Sache ist, die Option “Auto-Konfigurieren von CloudWatch-Protokolle”, die link Ihren Container-app, die Protokolle zu CloudWatch.

Standardmäßig werden die app läuft auf AWS Fargate als die compute engine, nicht EC2. Fargate ist AWS version von Kubernetes; es koordiniert und verwaltet die Ausführung Ihrer Container. Der Haupt-Nachteil ist, dass Sie nicht haben login Zugriff auf alle aktuellen Instanzen, so dass Sie brauchen werden, um änderungen durch das Andockfenster updates (die sollte man sowieso). Wenn Sie nicht möchten, zu verwenden, Fargate, können Sie standard-EC2-Instanzen, die die AWS ECS Container Agent.

Im nächsten Bildschirm werden Sie definieren, wie viele Ihrer Container zu führen, und Sie erhalten die option zum erstellen eines load-balancer zwischen Ihnen:

Sie können auch Ihren Dienst so konfigurieren, verwenden Sie Auto Scaling die Skalierung Ihrer Anwendung nach oben und unten, je nach Nachfrage.

Sobald Sie fertig sind, klicken Sie auf “Erstellen”, um starten Sie Ihren cluster. Es wird angezeigt, unter dem “Cluster” – Reiter von der ECS-Management-Konsole, sobald es erstellt wird.