= Jak mogę zautomatyzować mój serwer AWS EC2 Minecraft, aby działał tylko wtedy, gdy ludzie są online? =
![ ](httpswww.redditstatic.com/desktop2x/img/renderTimingPixel.png)
Chcę, aby serwer był w trybie offline, gdy nikogo nie ma, i w trybie online, gdy ktoś próbuje się połączyć.
Tak, ten! Istnieje również działająca implementacja CDK.
Mam gałąź w toku do edycji plików serwera na żywo za pomocą cloudshell i ECS exec, więc nie musisz konfigurować dla niej skomplikowanych zadań. Potrzebuje tylko trochę więcej testów
co powiesz na wyzwolenie go z dziennika zapory użytkownika łączącego się z portem Minecraft tcpip?
Bot Discord, który uruchamia webhook do lambda, aby włączyć/wyłączyć instancję, jest czymś, co robią ppl
Oto tylko przykład. Nie mówię, że tego właśnie chcesz, ale jest to podstawowa przesłanka:
httpsdrpump.github.io/ec2-discord-bot/
Może być interesujące httpssidoine.org/how-to-run-a-minecraft-server-on-aws-for-less-than-3-usd-a-month
I
W szerokich pociągnięciach:
Napisz skrypt Pythona, który uruchamia instancję EC2.
Uruchom skrypt z funkcji lambda.
Utwórz adres URL, który wywołuje lambda.
Zautomatyzuj zamykanie instancji EC2 podczas bezczynności.
Ostrzeżenie: Istnieje wiele sposobów, aby zrobić te rzeczy źle i sprawić, by ktoś przejął Twoje konto i naliczył ogromny rachunek.
Byłby to akceptowany sposób orkiestracji instancji EC2. Ogranicz zakres konta usługi z minimalną rolą powiązaną tylko z tą zamkniętą instancją.
Możesz przyznać im dostęp IAM tylko do uruchamiania/zatrzymywania instancji. Alternatywnie możesz to ujawnić za pomocą integracji lambda http i ustawić jako webhook, który uruchamia instancję (pomyśl o aspektach bezpieczeństwa). Aby zamknąć, możesz zautomatyzować ten aspekt za pomocą dzienników przepływu VPC, a jeśli nie ma ruchu do portu serwera Minecraft w ciągu ostatnich N minut, to się wyłączy?
httpsgithub.com/infinisil/on-demand-minecraft to całkiem fajna sztuczka, ale nie jestem pewien, gdzie uruchamia serwer proxy przekazywania.
Masz problem z kurczakiem i jajkiem. Musi już działać, aby użytkownik mógł spróbować się z nim połączyć.
Możesz stworzyć małą aplikację internetową uruchamiającą, która może wysłać polecenie uruchomienia serwera, jeśli jest wyłączony. Jeśli wszyscy twoi znajomi wiedzą, aby najpierw to sprawdzić i odczekać kilka minut (lub niezależnie od czasu uruchomienia), zanim zostanie do nich wysłana wiadomość SMS potwierdzająca, że działa, to może zadziałać.
To nie jest super usprawnione, ale jest rozwiązaniem.
Gotcha. Czy istnieje sposób, aby moi znajomi uruchomili instancję i zamknęli ją, gdy skończą?
Możesz zlecić im trafienie w punkt końcowy lambda, który uruchamia instancję, a następnie skonfigurować ją do zamknięcia, jeśli nie ma połączeń po X czasie wewnątrz instancji za pomocą prostego zadania cron.
httpsbriancaffey.github.io/2021/03/18/on-demand-dedicated-serverless-valheim-server-with-cdk-discrod-interactions/
To, oprócz pojemnika Valheim CDK, użyj papieru.
Stworzyłem prosty internetowy interfejs użytkownika do włączania/wyłączania instancji EC2. Wykorzystuje API Gateway do obsługi strony i kontrolowania instancji, więc jest zasadniczo bezpłatny.
https://github.com/davidcomerford/sketchy-router-controller
Używam go do włączania/wyłączania mojej instancji VPN, jeśli ktoś zastanawia się nad nazwą.