Szukaj

Zautomatyzowane wdrożenie LibreChat na AWS EC2 : Innowacyjne rozwiązanie DevOps

Zautomatyzowane wdrożenie LibreChat na AWS EC2 : Innowacyjne rozwiązanie DevOps

Mam przyjemność przedstawić mój najnowszy projekt: pełne zautomatyzowane wdrożenie LibreChat na AWS EC2, projekt open-source dostępny na GitLab. Projekt demonstruje moje umiejętności w obszarze DevOps i inżynierii chmurowej, opierając się na Terraform do zarządzania infrastrukturą jako kodem (IaC), skrypcie User-Data w Bash, pipeline GitLab CI/CD oraz scentralizowanym zarządzaniu przez AWS Systems Manager (SSM). Efekt: działająca instancja LibreChat w mniej niż 6 minut, przy zoptymalizowanych kosztach, zwiększonym bezpieczeństwie i maksymalnej dostępności.

Projekt wykracza poza zwykłe wdrożenie techniczne: jest to wizja zaawansowanej automatyzacji, zaprojektowana zarówno dla ekspertów, jak i początkujących. Oto jak zaprojektowałem to rozwiązanie.

1. Optymalna i powtarzalna architektura chmurowa

Infrastruktura opiera się na Terraform, przestrzegając zasad Infrastructure as Code dla zapewnienia powtarzalności i skalowalności. Główne komponenty obejmują:

  • AWS VPC : Wirtualna sieć izolowana dla zabezpieczenia infrastruktury.
  • Publiczne podsieci : Trzy subnets dla zapewnienia wysokiej dostępności.
  • Instancja EC2 (t3a.small) : Hostuje LibreChat, z możliwością wyboru między Spot Instances a On-Demand.
  • Internet Gateway : Umożliwia bezpieczne połączenie przez HTTPS.
  • AWS SSM : Scentralizowane zarządzanie kluczami API i monitoring wdrożenia.

Wdrożenie na EC2 jest zautomatyzowane dzięki skryptowi User-Data w Bash, który:

  • Instaluje zależności (Docker, Git, Node.js) i aktualizuje system.
  • Klonuje LibreChat (wersja 0.7.7) i konfiguruje pliki .env oraz librechat.yaml.
  • Pobiera klucze API ze SSM w sposób bezpieczny.
  • Konfiguruje Nginx z samopodpisanym certyfikatem SSL dla HTTPS.

Ten skrypt, zintegrowany przez Terraform, zawiera obsługę błędów (set -e, trap 'error_handler' ERR) oraz logowanie do /var/log/user-data.log, zapewniając niezawodny i śledzalny proces.

2. Bezpieczeństwo i scentralizowane zarządzanie kluczami API

Bezpieczeństwo jest priorytetem. Klucze API (OpenAI, Mistral AI, Anthropic, Google) są przechowywane w AWS SSM Parameter Store, pobierane dynamicznie i nigdy nie są wklejane na stałe w kodzie. Środki obejmują:

  • Wymagane HTTPS : Samopodpisany certyfikat z przekierowaniem z 80 do 443.
  • Obsługa błędów : Zatrzymanie skryptu w razie problemu z aktualizacją statusu w SSM.
  • AWS Session Manager : Dostęp do instancji bez SSH dla zwiększonego bezpieczeństwa.

Takie podejście gwarantuje bezpieczne zarządzanie i nadzór w czasie rzeczywistym.

3. Optymalizacja kosztów dzięki Spot Instances

Aby ograniczyć koszty, zaimplementowałem Spot Instances AWS, wykorzystując nieużywane zasoby. Zmienna Terraform spot_enabled pozwala wybrać pomiędzy Spot a On-Demand, co czyni projekt dostępnym dla wszystkich. Skrypt w Pythonie, check_spot.py, automatycznie dostosowuje ceny w variables.tf dla ciągłej optymalizacji.

4. Kompletny pipeline CI/CD z GitLab

Pipelina GitLab CI/CD (zdefiniowana w gitlab-ci.yml) orkiestruje wdrożenie:

  • Terraform : planuje i stosuje zmiany infrastruktury.
  • Zarządzanie instancjami : uruchamia, zatrzymuje i sprawdza stan za pomocą SSM.
  • Klucze API : bezpieczne dodawanie i usuwanie kluczy.
  • Rejestracje : kontrola dostępu do LibreChat.

Skrypt export.sh upraszcza polecenia, zarówno lokalnie, jak i w CI/CD, oferując płynne i profesjonalne doświadczenie.

5. Globalna dostępność dzięki internacjonalizacji

Aby dotrzeć do globalnej publiczności, README jest przetłumaczone na sześć języków (angielski, niemiecki, hiszpański, japoński, koreański, chiński) dzięki mojemu skryptowi tłumaczeń AI. To sprawia, że projekt jest inkluzywny i przystosowany dla szerokiego grona użytkowników.

6. Techniczne wyzwania rozwiązane z powodzeniem

Dostosowanie LibreChat 0.7.6 wymagało precyzyjnych poprawek:

  • Wsparcie Mistral : Aktualizacja librechat.yaml dla mistral-large-latest.
  • Nginx : Korekta dyrektyw SSL dla HTTP/2.
  • Spot/On-Demand : Elastyczne zarządzanie przez Terraform.

Te wyzwania zostały pokonane dzięki rygorystycznym testom i szczegółowej dokumentacji.

7. Dlaczego ten projekt się wyróżnia

Projekt wyróżnia się dzięki:

  • Pełnej automatyzacji : Wszystko jest zeskryptowane, od infrastruktury po instalację.
  • Optymalizacji : Niższe koszty i lepsza wydajność.
  • Bezpieczeństwu : Scentralizowane zarządzanie i domyślny HTTPS.
  • Dostępności : Dokumentacja wielojęzyczna i proste opcje konfiguracji.

Odzwierciedla to moje umiejętności w zakresie architektury AWS, DevOps, chmury i skryptowania, a także moją pasję do open-source.

Poznaj projekt i dołącz!

Eksploruj projekt na GitLab, przetestuj go i podziel się opinią. Niezależnie od tego, czy jesteś ekspertem, czy początkującym — ten projekt jest dla Ciebie. Wspomóż, aby go rozwijać!

Kontakt : contact@jls42.org

O mnie : Nazywam się Julien LS, pasjonuję się architekturą chmury AWS, DevOps, AI i automatyzacją. Ten projekt wpisuje się w moją serię prac, takich jak BabelFish AI. Znajdziesz mnie na GitLab.

Ten dokument został przetłumaczony z wersji fr na język pl przy użyciu modelu gpt-5-mini. Aby uzyskać więcej informacji na temat procesu tłumaczenia, zobacz https://gitlab.com/jls42/ai-powered-markdown-translator