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.
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.
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.
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.
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
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.
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.
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