Die Geschichte des Ausführens der asp.net Core 3.1-App auf der arm64-Version von Amazon Linux 2

Hallo.

https://qiita.com/yKimisaki/items/fa528de37413c1001bb6 Ich habe in einem früheren Artikel geschrieben, dass ich SlackBot erstellt habe, aber kürzlich habe ich es auf eine Instanz von AWS Graviton (64-Bit-Version Arm-CPU, AWS unabhängig entwickelt, nicht x86-64-Serie) gestellt Ich werde es soweit belassen. Die aktuelle Situation funktioniert ohne Probleme, daher denke ich, dass es wahrscheinlich kein Problem gibt.

Über die Instanz

https://aws.amazon.com/jp/blogs/news/new-t4g-instances-burstable-performance-powered-by-aws-graviton2/

Obwohl oben verschiedene Dinge zusammengefasst sind, handelt es sich nicht um einen API-Server, der aufgrund der Größe des Unternehmens wahnsinnig hart genutzt wird. Daher wird er derzeit mit t4g.nano betrieben. Der Speicher ist auf 15 GB eingestellt, aber da er in ungefähr 1,7 GB passt, sollten 8 GB wahrscheinlich für diese Skala ausreichen. Ich denke, dass der Preis derzeit zwischen 4 und 5 US-Dollar pro Monat liegt. Es ist billiger als ein x64 t2.nano zu mieten.

Über OS / AMI

Das Betriebssystem ist Amazon Linux 2, aber es macht keinen Sinn, da es AWS ist und ich mich für Amazon Linux 2 entschieden habe. Wenn Sie einen schnellen Start mit vorinstalliertem .NET Core haben, können Sie die t4g-Instanz nicht verwenden. Wählen Sie daher ein Kind aus, das rein zu sein scheint.

image.png

Danach wird EC2 normal gestartet, aber bitte öffnen Sie den Port für den ASP.NET-Server mit TCP zusätzlich zu SSH-Nummer 22.

Fügen Sie .NET Core Runtime in eine virtuelle Maschine ein

Ich verwende SSH auf Ubuntu 20.04 LTS von WSL, um eine Verbindung zu AWS herzustellen, aber aus keinem anderen Grund als einfach, geben Sie den Server bitte so ein, wie Sie möchten. Derzeit scheint es also so zu sein, dass das Paketmanagersystem wie yum und apt nicht zur Installation von .NET Core Runtime mit der arm64-Version von EC2 verwendet werden kann. Bringen Sie es also manuell mit wget aus dem Folgenden.

https://dotnet.microsoft.com/download/dotnet/current

wget https://download.visualstudio.microsoft.com/download/pr/dffd493f-9eb8-483f-81c7-a9e2201574ef/54e7464241e01e7031fd89e6fe88e6da/aspnetcore-runtime-3.1.9-linux-arm64.tar.gz

Wenn Sie es also entpacken und durch den Pfad führen, ist es in Ordnung. Dieses Mal habe ich einen Dotnet-Ordner direkt unter meinem Home-Verzeichnis erstellt und dort erweitert, sodass es wie folgt aussieht.

tar zxf aspnetcore-runtime-3.1.9-linux-arm64.tar.gz
export DOTNET_ROOT=$HOME/dotnet
export PATH=$PATH:$HOME/dotnet

Für die Arm64-Version veröffentlichen

In diesem Fall handelt es sich um einen SlackBot für den internen Gebrauch, für den keine häufigen Updates erforderlich sind. Daher bin ich eine schlampige Person, die unter Windows immer Befehle ausführt und diese per scp sendet. Wechseln Sie in den Projektordner um PowerShell und

dotnet publish -c Release -r linux-arm64

Generiert eine ausführbare Datei für arm64. Es ist in Ordnung, wenn Sie den gesamten Veröffentlichungsordner im Produkt mit scp mithilfe von WSL senden.

anfangen

Geben Sie Linux erneut mit SSH ein

nohup ./publish/SlackBot > slackbot.out &

Es läuft so im Hintergrund. Danach ist es in Ordnung, wenn Sie die URL des AWS-Servers in SlackCommand der Slack-API angeben.

schließlich

Früher habe ich eine EC2-Instanz mit vorinstalliertem .NET Core gestartet, aber diesmal war es etwas ärgerlich, weil ich das nicht konnte und den Paketmanager nicht verwenden konnte, aber es war sicher für den Arm. Es funktioniert gut mit .NET Core auch auf CPU! Also war ich glücklich ... Ich weiß nicht viel darüber, aber es scheint, dass AWS kürzlich seinen Wechsel zu Graviton beschleunigt und es zum Standard für ElastiCache und EKS gemacht hat. Es scheint jedoch, dass ein Spieleladen wie ich weiterhin dazu bestimmt sein wird, dem x86-Prozessor zu entkommen, indem er mit UE4 und Unity (oder besser gesagt Visual Studio und Maya) entwickelt. Die Arm-Version von Windows ist Stickerei, und die Arm-Version von Mac kommt bald, aber was wird passieren ... Jedenfalls kann ich mir nicht vorstellen, in den nächsten Jahren ein Spiel mit Arm zu entwickeln. In diesem Sinne denke ich, dass es eine der Stärken von .NET Core ist, die Barrieren des Prozessors überwinden zu können. Schauen Sie sich also bitte die Arm-Version von .NET Core an.

Recommended Posts

Die Geschichte des Ausführens der asp.net Core 3.1-App auf der arm64-Version von Amazon Linux 2
Ankündigung der Verfügbarkeit von Java 11 LTS unter Amazon Linux 2
Stellen Sie die neueste Version von Python in Linux (Debian) von Chromebook
Installieren Sie die neueste Version von Git auf Ihrem Linux-Server
Thread unter Linux anhalten (korrigierte Version am Ende des Artikels)
Die Geschichte der Herstellung des Mel Icon Generator Version 2
Verwenden Sie die neueste Version von PyCharm unter Ubuntu
Ändern Sie die Auflösung von Ubuntu, das auf VirtualBox ausgeführt wird
Die Geschichte des Wechsels des Azure App Service-Websystems von Windows zu Linux
Versuchen Sie, den toio core cube unter Windows 10 / macOS / Linux mit der düsteren Python-Bibliothek auszuführen
Installieren Sie die neueste Version von CMake unter Ubuntu 18.04.4 LTS
Ich habe versucht, die App auf der IoT-Plattform "Rimotte" auszuführen.
Die Geschichte des Aufbaus der schnellsten Linux-Umgebung der Welt
Öffnen Sie die Chrome-Version von LINE über die Befehlszeile [Linux].
Finden Sie die Version der Sprache heraus, die Sie ausführen
Veröffentlichen Sie Ihre Django-App unter Amazon Linux + Apache + mod_wsgi
Überprüfen Sie den Linux-Verteilungstyp und die Version
Die Geschichte von sys.path.append ()
[Persönlicher Hinweis] Installieren Sie das neueste Java unter Amazon Linux, das bereits Java- und Switch-Versionen enthält
Hinweis zur Version von CUDA, cuDNN, in der Tensorflow-GPU funktioniert hat
Sakura Die Geschichte, wie die Python-Flasche im Internet funktioniert hat
Immerhin die Geschichte der Rückkehr von Linux zu Windows
Befehle und Dateien zum Überprüfen der Version von CentOS Linux
Die Geschichte der Herabstufung der Version von Tensorflow in der Demo von Mask R-CNN.
Rufen Sie den Hostnamen des Host-PCs mit Docker unter Linux ab
[Erste persönliche Entwicklung] Die Geschichte der Bereitstellung der Flask-App und des automatischen Antwort-Bot von Twitter auf Heroku
Richten Sie die Version von chromedriver_binary aus
Hinzufügung von Amazon Linux Swap
Installieren Sie JDK unter Linux
Setzen Sie jenv in Amazon Linux ein
Installieren Sie tomcat 5.5 unter Amazon Linux.
Installieren von Homebrew unter Amazon Linux 2
Fügen Sie den Link unter Linux ein
Die Geschichte, dass die Version von Python 3.7.7 nicht an Heroku angepasst wurde
Erstellen Sie in kürzester Zeit eine Selenium-Umgebung unter Amazon Linux 2
Unter Linux ist der Zeitstempel einer Datei etwas vorbei.
Die Geschichte, wie man Python ausführt und die Ergebnisse anzeigt, ohne vim zu schließen
Überprüfen Sie den Speicherschutz von Linux Kern mit Code für ARM
So aktualisieren Sie die Python-Version von Cloud Shell in GCP
Die Geschichte, dass "calendar.day_abbr" auf dem Admin-Bildschirm von django nicht aktualisiert werden konnte