Bir Amazon Web Services (AWS) hesabını nasıl kuracağımı, dağıtmak için bir Node.js uygulamasını nasıl yapılandıracağımı ve ardından onu gerçekten dağıtmayı bir ayın büyük bir kısmını aldı.
Bunların çoğu Amazon'un belgelerini deşifre etmeye çalışıyordu. Umarım bu rehber sizi yerelden konuşlandırarak çok fazla baş ağrısı çekmeden yaşama yoluna sokar.
Los Angeles'ta bulunuyorum, bu nedenle yapılandırmanızı kurarken varsayılanlar tam olarak aynı olmayabilir.
Önkoşullar
- Temel komut satırı bilgisi
Eminim bunu komut satırı olmadan yapabilirsiniz, ancak CLI'yi kullanmak çok daha kolaydır
- Bir AWS hesabı
- Elastic Beanstalk Komut Satırı Arayüzü (EB CLI)
Aşağıdaki kurulum talimatları
- Temel Git bilgisi
AWS Hesabı Oluşturma
Yapmanız gereken ilk şey bir AWS hesabı oluşturmaktır. Zaten bir hesabınız varsa, API anahtarlarına ve uygun erişime sahip bir IAM kullanıcısına sahip olduğunuzdan emin olun.
Hesap oluştur
Oldukça basit. Hesap oluştur. Kayıt işlemi, her şeyde oldukça kolay bir şekilde size yol göstermelidir. Bir AWS hesabını ilk kurduğunuzda, root erişimi elde edersiniz. Ancak, düzenli olarak oturum açmak için kullanacağınız ayrı bir kullanıcı oluşturmak en iyi güvenlik uygulamalarıdır.
IAM'nizi kurun
NOT: AWS Identity and Access Management (IAM) konusunda uzman değilim. Yaptığım eylemler kendi kişisel kullanım durumum içindi ve ihtiyaçlarınıza uygun olmayabilir. Kullanıcılara erişim vermeden önce izinleri iyice inceleyin.
AWS, düzenli olarak en iyi uygulamaları yayınlar, buradan 2016'dan bir tane edinin.
Bir grup kur
Oturum açmanız için bir kullanıcı ayarlamadan önce, izinleri yönetecek bir grup oluşturun. Benim durumumda , her şeye erişebilmem için kendimi koyacağım bir SuperAdmin grubu kurdum.
Bu grup için, temelde oturum açmak ve her şeye kendim erişim sağlamak olduğundan, izin olarak AdministratorAccess'i seçtim.
IAM Grupları hakkında daha fazla bilgi için buraya gidin.
Bir IAM Kullanıcısı Kurun
Bir kullanıcı ayarlamak oldukça basittir, ancak takılırsanız AWS için IAM sayfasına göz atın. Çok sayıda faydalı videoları var.
Unutmayın:
- Onlara erişim anahtarı izinleri verin
(aşağıdaki resme bakın)
- Bunları uygun IAM grubuna atayın
Kendi kullanıcı kurulumunuzu yaptıktan sonra, kökten çıkın ve yeni IAM kullanıcınız olarak tekrar oturum açın.
Yerel Ortamı Kurmak
Artık hesap anahtarlarımızı hazırladığımıza göre, dağıtıma başlayalım.
Elastic Beanstalk nedir?
Elastic Beanstalk (EB), ölçeklenebilir uygulamaları kurmanın oldukça basit bir yoludur. Uygulama mimarinizi sizin için yönetmek için Amazon Elastic Compute Cloud (EC2) bulut sunucuları, Amazon Simple Storage Service (S3) paketleri ve yük dengeleyiciler kullanır.
Ağ talebi nedeniyle hızlı bir şekilde ölçeklendirmeniz gerekiyorsa, bunu yapacaktır. Ayrıca, güncelleme sırasında uygulamanın çevrimiçi kalmasına izin veren "sıralı güncellemeler" yapabildiği için güncellemeleri iletmek gerçekten harika. Düzgün.
Elastic Beanstalk'un size bir tona mal olmasına nasıl engel olunur?
Bu yalnızca ücretsiz plana hak kazanan yeni kullanıcılar için geçerlidir:
- Ayda 750 saat t2.micro EC2 süresi elde edersiniz. Bu size tek bir sunucuyu tam zamanlı çalıştırmanız için yeterli olacaktır.
Ancak, bir sunucu daha eklerseniz, bunun bedelini ödersiniz.
- Tüm sunucu mantığınızı Lambda işlevlerine geçirebilirsiniz, ancak bu başka bir gün için bir konudur (ve ayrıca bazı dezavantajları vardır).
Eğer ilgileniyorsanız, bu makaleye göz atın.
Ne kadara mal olacak?
İyi soru. İşte faturamın bir örneği. Bu, (EB, Cloudfront, S3 Buckets) hakkında bu makaleyi yazdığım Node.js uygulaması ile çalışıyor.
Ücretsiz plan bittikten sonra ne kadara mal olacağını merak ediyorsanız, buna bir göz atın.
Uygulamanız içinde bir EB Ortamı oluşturma
Bu makalenin kapsamı dışında olduğu için bu bir Node.js öğreticisi değildir. Ancak uğraşmak için bir uygulamaya ihtiyacınız varsa, Express uygulama oluşturucusuna bakın. En azından size bir "Merhaba Dünya" verecek. Projem
initiçin kullandım .
Gelecekte, sorun olmadan yerel olarak çalışan bir Node.js uygulamanızın zaten olduğu varsayılmaktadır.
EB CLI'yi kurma
İlk şey, AWS / EB CLI'yi çalıştırmaktır, bu sadece birkaç araç kurmak ve yapılandırmayı kurmaktan ibarettir.
AWS belgeleri bunu açıklamakta benim yapabileceğimden daha iyi bir iş çıkarıyor, bu yüzden buradan kontrol edin.
Not: API Anahtarlarıyla ilgili sorun yaşarsanız, bunları yapılandırma dosyasını düzenleyerek doğrulayabilir / değiştirebilirsiniz.
open ~/.aws/config
İlk dağıtım
Şimdi tüm aletlerimizi sıraya koyduk, sırada ne var?
eb init
Bu komutu çalıştırdığınızda size bir sürü soru soracak:
- Bir bölge seçmeniz istenecektir.
Varsayılan us-west-2: ABD Batı (Oregon)
- Hangi uygulamayı kullanacağınızı veya yeni bir tane oluşturacağınızı soracaktır.
İlk seçenek, yeni bir tane oluşturmak olmalıdır.
- AWS CodeCommit'i kullanmak isteyip istemediğinizi soracaktır.
Bununla ilgili deneyimim yok, ancak sadece GitHub kullanıyorum, bu yüzden hayır dedim.
Env değişkenlerinizi ayarlayın
Bu muhtemelen benim en büyük acı noktamdı. Beynim dokümantasyon üzerinde parladı mı bilmiyorum. Yine de çözdüğümde, aslında gerçekten basit. Ve yapılandırma dosyaları YAML ❤️ ile yazılır.
Siz
eb init,
.elasticbeanstalkkök dizininizde bir klasör oluşturacaktır . Komutu ilk kez çalıştırdığınızda otomatik olarak ayarlanması gerektiğinden, buradaki hiçbir şeyle gerçekten uğraşmanıza gerek yok.
Ancak, ortam değişkenlerinize ve başlangıç zamanında çalıştırmanız gereken diğer yapılandırmalara sahip olmak için yeni bir klasör oluşturun:
.ebextensions
Klasör yapısı şuna benzemelidir:
- .ebextensions -- 01_yourconfig.config - .elasticbeanstalk -- config.yml
Yapılandırma dosyaları, daha önce bahsedildiği gibi YAML'de yazılır. Size nasıl görünmeleri gerektiğine dair bir fikir vermek için işte birkaç örnek:
Ortam değişkenleri dosyası:
# 01_envar.config option_settings: aws:elasticbeanstalk:application:environment: PORT: 8081 NODE_ENV: production
Node.js'yi yapılandırmak için bir dosya:
Bunu gerçekten belirtmeniz gerekmez
NodeVersionçünkü size EC2 bulut sunucularında verebileceği en son sürümü verecektir. Ama her ihtimale karşı burada.
# 02_nodecommand.config option_settings: aws:elasticbeanstalk:container:nodejs: NodeCommand: "npm run start" NodeVersion: 8.8.1
Bu benim için yapılandırma ayarlarını yönetmenin en kolay yoludur, ancak yapılandırma altındaki EB kontrol panelinde ayarlanabilirler.
Daha fazlasını öğrenmek istiyorsanız işte tam da bu konuyla ilgili harika bir makale.
Bir ortam yaratın
eb create
sonra konuşlandır
eb deploy
Her şeyin yolunda gittiğini varsayarsak, uygulamanız artık "buluta" dağıtıldı.
İle kontrol edin
eb open
Değişiklikleri dağıtma
Her şeyi ayarladıktan sonra değişiklikleri zorlamak çok kolaydır.
NOT: Değişiklikler ortama gönderilmeden önce Git'e kaydedilmelidir.
Bunu ilk seferde fark etmemiştim ve anlamam sonsuza kadar sürdü. Aynı hatayı yapmayın - bu değişiklikleri yapın!
Bu nedenle, değişiklikleri yaptıktan sonra, aşağıdaki komutu yazmanız ve kendi rotasını çalıştırmasını beklemeniz yeterlidir.
eb deploy
Diğer kullanışlı EBCLI komutları
Bulut sunucusunu terminal içinde açmak için, bu AWS'nin size ilk başta verdiği URL sözlüğünü hatırlamaya çalışmaktan çok daha kolay:
eb open
Konsolu açmak için:
eb console
Günlük dosyalarını doğrudan terminalinize almak için:
eb logs
Sıradaki ne?
Özel alan adı
Çalıştırırsanız
eb open, URL'nin çok uzun bir URL olduğunu fark edeceksiniz. İsterseniz, Route 53'ü kullanarak onu etki alanınıza bağlayabilirsiniz. Çoğunlukla bu, tüm standart DNS kaydı şeyleridir. Etki alanınızı kaydettiğiniz her yerde DNS yönetiminden ayrılabilirsiniz, ancak hepsini bir arada bulundurmayı daha kolay buluyorum.
SSL Sertifikası
Örneğiniz için bir SSL sertifikası almak da oldukça kolaydır. Sertifika yöneticisini ziyaret edin ve alanınız için yeni bir sertifika oluşturun. Bu da basit bir süreçtir.
Not: Cloudfront için bir SSL sertifikası kullanmayı planlıyorsanız , işlemi N. Virginia bölgesinden başlatmanız gerekir . Bölgenizi ekranın sağ üst köşesinden değiştirebilirsiniz.
Doğrulandığında ve kullanıma hazır olduğunda, EB yapılandırmanıza atın. En kolay yol konsola gidip onu seçmektir.
- EB kontrol panelinize gidin
- Uygulamanızı seçin
- Ortamınızı seçin
- "Yapılandırma" yı tıklayın ve SSL sertifikasını seçin.
Başka bir Not: Bazen yeni bir hesabınız varsa sertifika yöneticisiyle sorun yaşayabilirsiniz. Bir sertifika oluşturmaya çalıştığınızda müşteri desteği ile iletişime geçmenizi söylüyorsa, bunu yapın ve onlar düzeltecektir.
Sonuç
Vay. Ne yolculuk. Umarım başarılı oldunuz ve AWS belgelerine çok fazla koşmanız gerekmedi. Ama kendime karşı dürüst olursam, eminim en az bir kez yapmalısın. AWS canavarca bir hizmettir ve yalnızca gün geçtikçe daha da büyür.
Destek
Bu makaleyi beğendin mi? Daha fazlasını görmek ister misin? Fazladan birkaç doların var mı? Aşağıdaki bağlantıya göz atın. Her bir fincan kahve birkaç yüz satırlık koda dönüştürülür :)
Jared Nutt a Coffee Satın Alın - BuyMeACoffee.com
Los Angeles merkezli Web Developer, açık kaynaklı yazılıma katkıda bulunmak ve harika eğitimler yazmak için elinden geleni yapıyor. buymeacoff.ee
Kaynaklar
AWS Düz İngilizce
AWS Elastic Beanstalk Yapılandırma Dosyalarını (.ebextensions) Tanımak ve Sevmek
AWS'ye Başlarken
acloudguru (Ücretsiz bir hizmet değil, ancak ücretsiz ve oldukça bilgilendirici bir giriş kursları var)