Data publikacji:

4.11.2024

MinIO jako alternatywa dla AWS S3

MinIO jako alternatywa dla AWS S3

Wprowadzenie do MinIO

MinIO to otwarte oprogramowanie do przechowywania danych obiektowych, kompatybilne z API S3. MinIO jest idealne dla firm, które chcą przechowywać swoje dane lokalnie lub na prywatnych serwerach, korzystając z zalet przechowywania obiektowego bez zależności od chmury publicznej.

Licencja MinIO

MinIO jest licencjonowane na zasadach GNU AGPLv3 (Affero General Public License), co oznacza, że możesz go używać, modyfikować i rozprowadzać bez opłat. Licencja AGPLv3 wymaga jednak, aby wszystkie modyfikacje kodu źródłowego były dostępne, jeśli są udostępniane publicznie. Dlatego jeśli używasz MinIO w środowisku publicznym (dostępnym np. przez API), musisz udostępnić kod źródłowy. MinIO oferuje również komercyjne licencje, które pozwalają na zamknięte wdrożenia, dostępne na stronie MinIO.

Dlaczego warto korzystać z MinIO?
  1. Kompatybilność z S3 API: MinIO w pełni wspiera interfejs S3, co pozwala na łatwą integrację z aplikacjami korzystającymi z AWS S3.

  2. Niskie koszty: MinIO jest open-source i można go uruchomić na własnym sprzęcie, co eliminuje koszty związane z chmurą publiczną.

  3. Skalowalność i wydajność: MinIO może obsługiwać setki petabajtów danych i jest zoptymalizowane pod kątem dużej wydajności.

  4. Bezpieczeństwo: Wbudowane mechanizmy szyfrowania i pełna kontrola nad danymi.

Uruchomienie MinIO w kontenerze Docker

Poniżej znajdziesz przewodnik dotyczący konfiguracji MinIO w Dockerze. Jest to szybka i prosta metoda na wdrożenie MinIO, szczególnie przydatna w środowiskach testowych i produkcyjnych.

Krok 1: Tworzenie katalogów na dane

Utwórz lokalny katalog, w którym będą przechowywane dane MinIO:

mkdir -p /mnt/data/minio
Krok 2: Tworzenie pliku docker-compose.yml

Poniżej znajduje się konfiguracja docker-compose.yml, która uruchomi MinIO w trybie kontenerowym. Plik ten można dostosować do własnych potrzeb, ale poniższy przykład jest odpowiedni dla prostego wdrożenia.

x-minio-common: &minio-common
  image: minio/minio:latest
  command: server --console-address ":9001" http://minio1}
  expose:
    - "9000"
    - "9001"
  environment:
    MINIO_ROOT_USER: minioadmin
    MINIO_ROOT_PASSWORD: minioadmin
    MINIO_BROWSER_REDIRECT: false
  healthcheck:
    test: [ "CMD", "curl", "-f", "http://minio1:9000/health/live" ]
    interval: 30s
    timeout: 20s
    retries: 3

services:
  minio1:
    <<

Wyjaśnienie konfiguracji
  • MINIO_ROOT_USER oraz MINIO_ROOT_PASSWORD – dane logowania do MinIO (warto zmienić domyślne dane dla bezpieczeństwa).

  • ports: MinIO domyślnie nasłuchuje na porcie 9000 dla API oraz porcie 9001 dla panelu administracyjnego.

Krok 3: Uruchomienie kontenera

Uruchom MinIO za pomocą docker-compose:

docker-compose up -d

MinIO uruchomi się na porcie 9000 (API) oraz 9001 (panel administracyjny). Możesz teraz przejść do http://localhost:9000 lub http://localhost:9001, aby uzyskać dostęp do MinIO i skonfigurować pierwsze buckety.

Krok 4: Dostęp do panelu administracyjnego

Po uruchomieniu MinIO, aby zarządzać zasobami, zaloguj się do panelu administracyjnego pod adresem http://localhost:9001, używając danych logowania skonfigurowanych wcześniej (MINIO_ROOT_USER i MINIO_ROOT_PASSWORD).

Krok 5: Integracja MinIO z aplikacją

Jeśli używasz MinIO jako zamiennika dla AWS S3, możesz skonfigurować aplikację do pracy z API S3, używając endpointu MinIO. Na przykład, w aplikacji Laravel skonfiguruj następujące zmienne w pliku .env:

FILESYSTEM_DISK=s3
AWS_ACCESS_KEY_ID=minioadmin
AWS_SECRET_ACCESS_KEY=minioadmin
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=mybucket
AWS_ENDPOINT=http://localhost:9000

Dzięki tej konfiguracji aplikacja może korzystać z MinIO tak samo, jak z AWS S3, bez konieczności zmiany kodu.

Podsumowanie

MinIO to potężna, otwartoźródłowa alternatywa dla AWS S3, która daje pełną kontrolę nad przechowywaniem danych i eliminuje koszty chmury publicznej. Uruchomienie MinIO w Dockerze umożliwia szybkie wdrożenie i skalowanie systemu, a kompatybilność z API S3 pozwala na łatwą integrację z aplikacjami korzystającymi z AWS S3.

Główne korzyści MinIO:
  • Niskie koszty i otwartoźródłowy charakter,

  • Pełna kontrola nad infrastrukturą i danymi,

  • Wysoka wydajność i skalowalność,

  • Możliwość integracji z popularnymi aplikacjami przez S3 API.

Pamiętaj o wymaganiach licencyjnych (AGPLv3) przy korzystaniu z MinIO w środowisku publicznym. Jeśli jednak Twoje wdrożenie jest wewnętrzne lub masz zgodę na komercyjną licencję, MinIO może być idealnym rozwiązaniem dla Twojej organizacji.

Umów się na bezpłatną konsultację

Porozmawiaj z nami, a z przyjemnością oszacujemy Twój projekt bez żadnych kosztów.

Skontaktuj się z nami

HypeDev Group sp. z o.o.

ul. Jana III Sobieskiego 11/18

40-082 Katowice, Polska

+48 603 675 293

kontakt@hypedevgroup.pl

NIP: 6343019462

© HypeDev Group sp. z o.o.

Umów się na bezpłatną konsultację

Porozmawiaj z nami, a z przyjemnością oszacujemy Twój projekt bez żadnych kosztów.

Skontaktuj się z nami

HypeDev Group sp. z o.o.

ul. Jana III Sobieskiego 11/18

40-082 Katowice, Polska

+48 603 675 293

kontakt@hypedevgroup.pl

NIP: 6343019462

© HypeDev Group sp. z o.o.

Umów się na bezpłatną konsultację

Porozmawiaj z nami, a z przyjemnością oszacujemy Twój projekt bez żadnych kosztów.

Skontaktuj się z nami

HypeDev Group sp. z o.o.

ul. Jana III Sobieskiego 11/18

40-082 Katowice, Polska

+48 603 675 293

kontakt@hypedevgroup.pl

NIP: 6343019462

© HypeDev Group sp. z o.o.