Es ist uns gelungen, die von uns mithilfe von CircleCI erstellte Rails-Anwendung in Containern bereitzustellen. Daher werde ich sie hier als Memorandum schreiben. (Sobald die Readme-Datei usw. fertig ist, werden wir die eigentliche Anwendung in einem anderen Artikel vorstellen.)
Außerdem verwende ich derzeit Windows 10. Wenn Sie ein Mac sind, ersetzen Sie ihn bitte nach Bedarf. Ich denke jedoch, dass die anderen Dinge gleich sind, außer dass die Installationsmethode von aws-ecs-cli unterschiedlich ist. (Die Installation mit Windows dauerte etwas.)
Da die Sprache der AWS-Konsole auf Englisch eingestellt ist, ist es meines Erachtens einfacher, mit diesem Artikel fortzufahren, wenn Sie ihn auf Englisch einstellen. (Es wird empfohlen, da der Name des Befehls in AWS CLI mit der englischen Notation der Konsole übereinstimmt.)
Streben Sie die obige Konfiguration an.
Um den tatsächlichen Fluss in Worten zu erklären,
① Push to Github (Mit Ausnahme des Hauptzweigs werden nur der automatische Test und Rubocop ausgeführt.) (2) CircleCI erkennt Push und beginnt mit dem Aufbau. ③ Nach dem Übergeben von RSpec und Rubocop wird das Docker-Image erstellt und an ECR gesendet. (4) Aktualisieren Sie die ECS-Taskdefinition (fast die, die definiert, wie der Docker-Container gestartet wird, wie docker-compose.yml) mit dem neuesten Docker-Image. ⑤ Die EC2-Instanz wird gestartet und die Bereitstellung abgeschlossen.
Außerdem ist die persönlich entwickelte App, die ich tatsächlich erstellt habe, natürlich SSL-fähig mit Route53 und ACM, und ich hatte hier große Probleme, daher werde ich sie als separaten Artikel erneut schreiben. Stellen Sie sicher, dass Sie SSL verwenden, da dies für den tatsächlichen Betrieb unverzichtbar ist.
Im Vorbereitungsabschnitt werden wir vier Hauptaufgaben erledigen.
Installieren Sie die folgenden zwei.
Wenn Sie Windows verwenden, können Sie es unter Bezugnahme auf diesen Artikel installieren. Ich konnte es auf diese Weise installieren.
Mit diesen Tools können Sie VPCs, Subnetze, Cluster, Push-to-ECR, Neudefinitionen von Aufgaben usw. vom Terminal aus erstellen, ohne mit der Konsole herumspielen zu müssen.
Melden Sie sich bei der Konsole an, wählen Sie Dienst aus, suchen Sie nach IAM und klicken Sie auf. Klicken Sie auf Benutzer und dann auf Benutzer hinzufügen Klicken Sie ganz rechts auf Vorhandene Richtlinien anhängen und fügen Sie die folgenden beiden Richtlinien hinzu.
Wenn Sie bestätigen können, dass es wie auf dem Bestätigungsbildschirm festgelegt angehängt ist, klicken Sie auf Benutzer erstellen Anschließend werden auf dem nächsten Bildschirm der Zugriffsschlüssel und der geheime Schlüssel erstellt. Ich denke, dass eine Schaltfläche wie Download in CSV angezeigt wird, also klicken Sie darauf und speichern Sie die Informationen.
** Seien Sie vorsichtig beim Umgang damit, da es Fälle gibt, in denen Sie versehentlich Ihren geheimen Zugriffsschlüssel auf git gedrückt und Millionen von Rechnungen von Amazon erhalten haben. ** ** **
Ich habe diese Richtlinie früher hinzugefügt, aber dies allein führt zu einem Fehler in der Berechtigung beim Ausführen des Befehls ecs-cli. Daher werde ich sie separat hinzufügen.
Wählen Sie in der IAM-Konsole Richtlinien aus und klicken Sie dann auf Richtlinien erstellen. Klicken Sie auf dem Bildschirm auf die Registerkarte Json und geben Sie den folgenden Code ein.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"iam:AttachRolePolicy",
"iam:AddRoleToInstanceProfile",
"iam:CreateInstanceProfile",
"iam:CreateRole",
"iam:DeleteInstanceProfile",
"iam:DeleteRole",
"iam:DetachRolePolicy",
"iam:PassRole",
"iam:RemoveRoleFromInstanceProfile",
"ec2:DeleteInternetGateway",
"ec2:DeleteSecurityGroup",
"ec2:DeleteRouteTable"
],
"Resource": "*"
}
]
}
Klicken Sie nach der Eingabe auf Richtlinie überprüfen. Geben Sie einen Namen und eine Beschreibung Ihrer Wahl ein und klicken Sie auf Richtlinie erstellen.
Geben Sie dem erstellten IAM-Benutzer als Nächstes die neu erstellte Richtlinie in ↑. Klicken Sie auf Benutzer und dann auf Berechtigungen hinzufügen Klicken Sie direkt auf Vorhandene Richtlinien anhängen und wählen Sie die gerade erstellte Richtlinie aus Klicken Sie im Bestätigungsbildschirm auf Berechtigungen hinzufügen, wenn Sie die richtige Richtlinie ausgewählt haben.
Führen Sie aws configure im Terminal mit der Option --profile aus. Wenn Sie es ausführen, werden Sie interaktiv gefragt, geben Sie es also nacheinander richtig ein.
$ aws configure --Profil Benutzername erstellt
AWS Access Key ID #Zugriffsschlüssel beim Erstellen
AWS Secret Access Key #Geheimer Zugriffsschlüssel beim Erstellen
Default region name # ap-northeast-1
Default output format # json
Wenn Sie aws configure ausführen, wird das Verzeichnis .aws automatisch unter Ihrem Ausgangsverzeichnis generiert, und Informationen wie Zugriffsschlüssel werden dort wie unten gezeigt gespeichert. Überprüfen Sie dies daher bitte. (Kann nicht ganz zusammen sein)
~/.aws/credentials
[Nutzername]
aws_access_key_id=AKIAIOSFODNN7AJDIFK
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/gkjkAKJDKJ
[default]
aws_access_key_id=AKIAIOSFODNN7EXAMPLE
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
~/.aws/config
[Profil Benutzername]
region = ap-northeast-1
output = json
[default]
region = ap-northeast-1
output = json
Als nächstes erstellen wir ein Schlüsselpaar.
Wählen Sie Service → EC2-Konsole → Schlüsselpaar → Schlüsselpaar erstellen und geben Sie einen entsprechenden Schlüsselpaarnamen ein. Wählen Sie .pem als Dateierweiterung aus und klicken Sie auf Schlüsselpaar erstellen.
Nach Abschluss wird die PEM-Datei automatisch heruntergeladen. Führen Sie den folgenden Befehl aus, um in das Verzeichnis ".ssh" zu wechseln und die Berechtigungen zu ändern.
$ mv Downloads/sample-app.pem .ssh/
$ chmod 600 ~/.ssh/sample-app.pem
** Damit ist die Vorbereitung abgeschlossen! Danke für deine harte Arbeit! ** ** ** Die Fortsetzung ist (2) Ich schreibe gerade einen Artikel für den Infrastrukturbau! Wir werden es hier veröffentlichen, sobald die Erstellung abgeschlossen ist. Bitte unterstützen Sie uns weiterhin! (Ich denke, ich kann es morgen erhöhen)
Es war ein langer Artikel. Wenn Sie also Vorschläge haben, wie z. B. Fehler in der Beschreibung, würde ich mich freuen, wenn Sie einen Kommentar abgeben könnten.