Article cover

30.08.2024

4

Like

48

Views

Uygulamalarımızı ücretsiz bir şekilde yayınlamak. (Oracle Cloud)

Burada daha önce yazdığım Medium makalemin Türkçesini yazıyorum: https://medium.com/@ozgurpeynirci/deploy-docker-container-for-free-on-oracle-cloud-4363ac79524b


Bu makaleyi uygulamadan önce yükleyeceğiniz uygulamayı (site, API vb.) kendi bilgisayarınızda Docker'a uygun hale getirmelisiniz ve çalıştığından emin olmalısınız.


Genelde, küçük uygulamalarımızı başkalarına göstermek isteriz, ancak başkalarına kendi makinelerinde nasıl yapılandıracaklarını ve çalıştıracaklarını açıklama zahmetine girmeden, ya da Ücretsiz(!) bir bulut hizmeti almanın ve bu hizmetin aniden Ücretsiz™ katmanını aşma riskine girmeden bunu yapmak isteriz.


Oracle, küçük bir uygulama dağıtmak için gereksiz risklerle uğraşmanıza gerek kalmadan kullanabileceğiniz Always Free(Daima Ücretsiz) seçeneği sunuyor.

  1. Oracle Cloud Hesabı Oluşturun

Oracle, sağladığınız ödeme yönteminin sahipliğini doğrulamaya çalışacak, ancak burada kullanacağınız Always Free ürünleri için sizden ücret almayacak.

Tarayıcınız Chrome/Safari/Firefox/Edge dörtlüsünden birisi olsun yoksa Oracle hata verecektir.

  1. Sanal Makine Başlatın

250£ ücretsiz krediyle başlıyoruz ancak sıradışı bir şey yapmadığınız sürece bunu tüketmek imkansız. Ayrıca, kredi tükenirse bile sizden ücret alınmaz. (Eğer tüketmeyi başarabilirseniz!)

cloud.oracle.com ana ekranında sol üst köşeye tıklayın ve Compute > Instances seçeneğine gidin.

Cloud Instance ekranı

Create Instance düğmesine tıklayın.

Edit düğmesine tıklayın, çünkü işletim sistemini başka bir Always Free seçeneği olan Ubuntu ile değiştirmek istiyoruz.

.

Change Image düğmesine tıklayın.

İşletim Sistemini seçelim

Ubuntu seçin.

İşletim Sistemini seçelim

Bir sürüm seçin, hangisinin olduğu önemli değil.

İşletim Sistemini seçelim

Son olarak, Select Image düğmesine tıklayın.

Aşağı kaydırın ve Add SSH keys bölümünü göreceksiniz, burada Save private key düğmesine tıklayarak özel anahtarı indirmeniz gerekiyor.

İşletim Sistemini seçelim

Son olarak, ekranın sol alt köşesindeki Create düğmesine tıklayın.

  1. Gelen Trafik Kurallarını Ayarlayın ve Portları Erişilebilir Hale Getirin

Artık sanal makinemiz var, bu VM'ye tıklayın ve Instance Details sayfasını bulun. Burada genel IP adresinizi göreceksiniz. Ayrıca Virtual Cloud Network: xxx bölümünü de göreceksiniz. O bağlantıya tıklayın.

İşletim Sistemini seçelim

Sonraki sayfada subnet (alt ağ bağlantısına) tıklayın.

İşletim Sistemini seçelim

Bir sonraki sayfada güvenlik listesi bağlantısına tıklayın.

İşletim Sistemini seçelim

Add Ingress Rules düğmesine tıklayın, Source CIDR alanına 0.0.0.0/0 yazın.

İşletim Sistemini seçelim

Kamu erişimi için hangi portların izinli olduğunu belirlemek isteyebilirsiniz, bunu Destination Port Range alanına yazabilirsiniz. Aksi takdirde bu alanı boş bırakabilir ve sayfanın altındaki Add Ingress Rules düğmesine tıklayabilirsiniz.

  1. Sanal Makineye Bağlanmak için SSH Anahtarları Oluşturun

Bulut sunucularına bağlanmak için şifreler yerine SSH anahtarları kullanıyoruz. Bu daha güvenlidir. PuTTY'yi indirin. PuTTY'nin kurulumuyla birlikte gelmiş olması gereken PuTTYgen'i çalıştırın (arama çubuğu veya Başlat Menüsü aracılığıyla erişebilirsiniz).

İşletim Sistemini seçelim

Load düğmesine tıklayın.

İşletim Sistemini seçelim

Bu kısmı All Files (.) olarak değiştirin.

İşletim Sistemini seçelim

Instance oluşturduğumuzda indirdiğimiz .key dosyasını seçin. Seçtiğiniz bir anahtar şifresi girin (bu, esasen sizin şifreniz olacak) ve PuTTYgen üzerinde Save private key düğmesine tıklayın. Bu, uzantısı *.ppk olan bir dosya oluşturacaktır.

  1. Uygulama Dosyalarınızı Sanal Makineye Aktarın

Windows'ta WinSCP'ye ihtiyacınız var. macOS'ta FileZilla'yı tercih edebilirsiniz. Linux kullanıcısıysanız zaten bu kısmı çoktan halletmişsinizdir. :)

Burada Windows kullanıcıları için WinSCP ile devam ediyorum.

İşletim Sistemini seçelim

Sanal makinenizin genel IP adresini host name olarak buraya girin. Bu IP adresi, Oracle Cloud'daki Instance Details sayfasındadır. Kullanıcı adı ubuntu olmalı. Şimdi Login düğmesine tıklamayın, bunun yerine Advanced... düğmesine tıklayın.

SSH altındaki Authentication bölümünü sol taraftan seçin, ... düğmesine tıklayın ve önceden oluşturduğumuz *.ppk dosyasını seçin.

*.ppk dosyasını, .key dosyasını değil, seçin.

İşletim Sistemini seçelim

Tamam'a tıklayın ve şimdi Login düğmesine tıklayın.

İşletim Sistemini seçelim

Sol taraf sizin bilgisayarınız, sağ taraf ise sunucu. İstediğiniz dosyayı sadece sürükleyip bırakabilirsiniz. Ancak kök dizine dosya gönderemezsiniz, onları /home/ubuntu gibi bir yere gönderin.

NOT: Klasörleri göndermek çok fazla zaman alır, bu yüzden ya klasörlerinizi sıkıştırın (zip gibi) ya da klasörsüz dosyalar gönderin.

  1. Sanal Makineye Girin ve Docker Compose'u Kurun Daha önce kurduğumuz PuTTY'yi çalıştırın.

WinSCP'de yaptığımız gibi aynı host name'i girin.

İşletim Sistemini seçelim

Sol taraftaki Credentials bölümüne tıklayın ve WinSCP için kullandığımız aynı *.ppk dosyasını kullanmak için ilk Browse... düğmesine tıklayın.

İşletim Sistemini seçelim

  1. Konteyneri Derleyin ve Çalıştırın Şimdi kullanıcı adınız (varsayılan olarak ubuntu) ve şifre isteği (PuTTYgen'de *.ppk dosyasını oluştururken girdiğiniz) sorulduğunda ve doğru şekilde kimlik doğrulandıktan sonra sistemde olmalısınız.

WinSCP kullanarak yüklediğiniz klasörün bulunduğu yere gitmek için cd komutunu kullanın. Bir zip dosyası yüklediyseniz, şu komutu girin: sudo apt-get install unzip ve ardından unzip filename.zip komutunu girin.

Şimdi docker-compose.yml dosyamızın bulunduğu klasöre girin.

Öncelikle bu dosyayı çalıştırmak için docker ve docker compose'u kurmamız gerekiyor.

1. ve 2. adımlardaki komutları buradan kopyalayıp yapıştırın: https://docs.docker.com/engine/install/ubuntu/

Docker Compose için:

sudo apt-get install docker-compose-plugin

Artık docker-compose.yml dosyamızı nihayet çalıştırabiliriz.

sudo docker-compose build

sudo docker-compose up

  1. Genel IP Adresinizin Çalışıp Çalışmadığını Kontrol Edin

İşletim Sistemini seçelim

Instance'ımızın genel IP adresini ve uygulamamızın kullandığı portu girin. React uygulamamı 3000 yerine 80 portunu kullanacak şekilde yapılandırdım.

Burada örnek bir React + Node.js kullanarak yaptığım website metadatası çeken bir websitemi yükledim: http://158.180.229.76:80/

Sitenin kaynak kodları: https://github.com/Zahkklm/metadata-viewer

Teşekkürler.

Herkes İçin Temel Dersler
Java Spring Boot
Frontend Web Development Projeleri

Comments

You need to log in to be able to comment!

Özgür Peynirci

I mainly focus on backend development utilizing technologies such as .NET Core, Java Spring, AWS, Kafka, Redis.

Location

İstanbul, TR

Education

Bilgisayar Mühendisliği - Burdur Mehmet Akif Ersoy Üniversitesi

Job Experience

Intern - Vadi Kurumsal Bilgi Sistemleri A.Ş.

Freelancer - Upwork

© 2021 Patika Dev

facebook
twitter
instagram
youtube
linkedin