MinIO – S3 Object Storage Kurulumu

0
78


Modern Veri Havuzları İçin Yüksek Performanslı Object Storage:
Object Storage teknolojileri (Nesne depolama) veri depolama senaryolarından çok yönlü imkanlar sağlıyor. Bu durum yeni nesil uygulamanın geliştirmesi sürecinde veri depolanma alanında kullanılmaya devam ediyor. Normade bunu AWS S3 ile ilişkilendiririz ancak Object Storage’ da dosya depolama MinIO ile yerel ağınızda da kullanabileceğiniz bir özellik. Burada bu altyapıyı yerel ortamınızda size sağlayan minio’yu inceleyecek ve Docker kullanarak kurulum adımları üzerinden geçeceğiz. Object storage, yazılım geliştirme süreçlerinde önemli bir rol oynar çünkü birçok farklı kullanım alanı ve avantajlarını kısaca sıralayarak devam etmek istiyorum.

Ölçeklenebilirlik ve Esneklik: Object storage, büyük veri miktarlarını yönetmek için idealdir. Veri depolama ihtiyaçları büyüdükçe, bu teknoloji ölçeklenebilir bir yapı sunar. Bu da yazılım geliştiricilerin uygulamalarını kolayca genişletebilmesini sağlar.
Farklı Veri Türleri İçin Uygunluk: Objeler olarak depolanan veriler, farklı türde dosyaları (resimler, videolar, metin belgeleri) saklamak için uygun bir yapı sunar. Bu, geliştiricilerin çeşitli veri türlerini yönetmesine ve depolamasına yardımcı olur.
Düşük Maliyet ve Verimlilik: Geleneksel dosya sistemlerine kıyasla genellikle daha düşük maliyetlidir. Veri depolama maliyetlerini azaltabilir ve veri erişimini optimize edebilir. Aynı zamanda yazılım geliştiricilere veri yönetimi ve erişim konusunda daha fazla esneklik sağlar.
Veri Yedekleme ve Kurtarma: Objeler halinde depolanan veriler, yedekleme ve kurtarma işlemlerini kolaylaştırır. Bu durum, yazılım geliştiricilerin veri kaybını önlemelerine yardımcı olur.
Dağıtık Depolama ve Erişim: Objelerin dağıtık bir şekilde depolanması, farklı coğrafi konumlardan erişimi mümkün kılar. Bu, yüksek kullanılabilirlik sağlar ve veriye her yerden erişilebilir.
API Desteği: Object storage genellikle API’ler aracılığıyla erişilebilir. Bu, yazılım geliştiricilerin uygulamalarına veri depolama özellikleri eklemelerini ve verilerle etkileşimde bulunmalarını kolaylaştırır.
Veri Güvenliği: Çoğu object storage çözümü, veri şifreleme ve erişim denetimi gibi güvenlik özelliklerini destekler. Bu da geliştiricilere ve kullanıcılara veri güvenliği konusunda ek güvence sağlar.
Bu nedenlerle, object storage teknolojileri yazılım geliştirme süreçlerinde veri yönetimi, depolama, erişim ve güvenlik gibi önemli konularda geliştiricilere büyük faydalar sağlar.

#MinIO, aynı zamanda Amazan S3 ile uyumlu bir API’a da sahip olduğundan uygulamaları yerel olarak geliştirmenize ve daha sonra bunları kolayca AWS’e taşımanızı kolaylaştırır. Bu uygulamanızın global pazarlarda AWS yerel de TR gibi regulasyon yada verisini disriya cikarmak istemeyen kurumlarda #MinIO(In-Prem) ‘de birincil depolama alanı olarak kullanmanıza olanak tanır.

Kurulum icin gereksinimler:

Docker’ınız ve docker-compose’unuz varsa burada yeterli olacaktir. Docer kurulumu icin gerekli icerigi aşağıda kendi içeriğimiz olarak >_#banasorun olarak paylaşıyoruz.
https://banasorun.net/docker-kurumu-ubuntu-20-4/

MinIO ‘nun lab kurulumunun nasıl yapıldığı ile ilgili adımlara geçelim:
Bu kurulum #MinIO’nun single node singile drive modlu gerçekleştirimini içerecektir. Burada temel düzeyde bir linux ve docker kullanım bilgisi gerektiren bir yazıdır. Docker ve Linux konularında #banasorun üzerinde diğer içerikleri inceleyebilirsiniz.
İlk yapacağımız şey Docker imajının ilgili Ubuntu işletim sistemi üzerindeki docker üzerine çekilmesi olacak.

>_#docker pull quay.io/minio/minio

#MinIO’un bir standart olarak son imajini ceker. Burada imarjımızı kontrol ediyoruz:
>_#docker image ls

Bu aşamadan sonra MinIO’un verileri sistem üzerinde saklayacağı bir yer oluşturmamız gerekiyor.

>_#mkdir -p ${HOME}/minio/data
>_#mkdir -p /mnt/minio/data (mount edilmiş bir alanı kullanabilirsiniz.) *

Bu işlemden sonra MinIO için gerekli olan configurasyon dosyasını /etc/default/minio dosya yolunda yaratmamız gerekecek. Bunun için
>_#nano /etc/default/minio #nano ile dosyayı yaratıyoruz.

Bu görselden sonra paylaştığımız konfig dosyasını nano ile oluşturduğumuz dosyanın içine kaydediyoruz.

# MINIO_ROOT_USER and MINIO_ROOT_PASSWORD sets the root account for the MinIO server.
# This user has unrestricted permissions to perform S3 and administrative API operations on any resource in the deployment.
# Omit to use the default values ‘minioadmin:minioadmin’.
# MinIO recommends setting non-default values as a best practice, regardless of environment

MINIO_ROOT_USER=minioadmin
MINIO_ROOT_PASSWORD=Banasorun!n3T

# MINIO_VOLUMES sets the storage volume or path to use for the MinIO server.
MINIO_VOLUMES=”/mnt/data”

# MINIO_SERVER_URL sets the hostname of the local machine for use with the MinIO Server
# MinIO assumes your network control plane can correctly resolve this hostname to the local machine

# Uncomment the following line and replace the value with the correct hostname for the local machine and port for the MinIO server (9000 by default).

# MINIO_SERVER_URL=”http://minio.example.net:9000″

Bu aşamadan sonra artık indirdiğimiz ve configurasyonlarını yaptığımız docker imajını çalışır hale getireceğiz. Bunun için aşağıdaki komut dizimini kullanalım. Burada docker run -dt deki -d<detach> t <ttl> anlamlarına gelmektedir. Parametrelerin anlamları hakkında daha fazla bilgi edinmek isteyenler https://docs.docker.com/engine/reference/commandline/run/ üzerinden ek bilgilere ulaşabilirler.

Kısasa açıklamak gerekirse:
-p port numaralarını ifade ediyor, host portu=9000:9000=container portu, yani dışarıdan 9000 port numarası ile gelen istekler container içerisinde de 9000 ile karşılanacak.
-v bu konteynerde ihtiyaç duyulan diğer alanların volume olarak mount edilmesi için kullanılıyor.
-e ise enviromenment veriable yani kontainer için gerekli sistem parametleri ve değişkenlerini tanımladığımız configürasyon doyasının yeri olacaktır.

Aşağıdakini çalıştırarak imajımızı aktif hale getiriyoruz.

>_# docker run -dt \
-p 9000:9000 -p 9090:9090 \
-v /mnt/data/minio:/mnt/data \
-v /etc/default/minio:/etc/config.env \
-e “MINIO_CONFIG_ENV_FILE=/etc/config.env” \
–name “minio” \
minio/minio server –console-address “:9090”

Aşağıdaki ekran görüntüsünde çalıştırdıktan sonra karşımıza gelen ekranları bulabilirsiniz. Garip şekilde son imajı bulmadım diyor ama aslında biz son imaji indirdik, uyarıyı dikkate almadan devam edeceğim. Bir çeşit bug olabilir.

Biz şimdi konteynerın düzgün şekilde çalıştırılıp çalıştırılmadığını kontrol edelim. Bunun için logları inceleyeceğiz, aşağıdaki komut dizilimini kullanarak inceleyebilirsiniz:
>_# docker logs minio
Ekran görüntüsü aşağıdaki gibi olacaktır.

Son olarak da docker sistemimiz üzerinde çalışır durumda olan docker konteyner imajlarını listeleyelim. Bunun için
>_# docker ps
komut dizilimini göndermemiz yeterli olacaktır. Ekran çıktısı ise aşağıdaki gibi olacak.

imajımızın çalışır durumda olduğunu gördüğümize göre #MinIO yönetim konsoluna sunucumuzun ip adresi ve port numarası üzerinden bağlanabiliriz. Karşımıza gelen ekran aşağıdaki gibi olacaktır.

Bir sonraki yazımızda #MinIO yönetim konsolu üzerinden operasyonların gerçekleştirimi üzerine paylaşımlar ile devam edeceğiz.

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz