AWS CodeCommit ve CodeDeploy ile Kod Dağıtım Otomasyonu
Yayınlanan: 2022-03-25Bir web geliştiricisi olarak, çalışmanız üretim sunucularına kod dağıtım otomasyonu gibi birkaç karmaşık görevi içerebilir veya bir grup halinde çalışıyorsanız ve kodunuzu canlı bir web sitesine yüklerken sorunlarla karşılaşıyorsanız, bu blog gönderisi tüm bunların üstesinden gelmek için bir çözümdür. konular.
FTP kullanırken, ortak geliştiricinizin kodunun üzerine yazmış olmalısınız, bu oldukça yaygın ve çoğumuzun başına gelen bir sorundur. Bu kılavuz size AWS CodeCommit, CodeDeploy ve Pipeline hizmetleriyle kod dağıtım otomasyonunu gösterecektir.
Teknolojik Genel Bakış:
- AWS CodeCommit : Tüm proje dosyalarını ve kayıt günlüklerini tutacak havuzlarımızı (Web İçeriği/Kod Dosyaları) korumak için CodeCommit'i kullanacağız.
- EC2 Sunucusu : EC2'yi üretim sunucumuz olarak kullanacağız, web sitenizin ziyaretçileri için canlı site ve kodu içerecektir.
- AWS CodeDeploy : Kodunuzu EC2 sunucusunda yayınlamak için uygulamayı tutacaktır. Ayrıca, kodumuzu yayınlamak istediğimiz hedeflenen EC2 örneğinin adını/etiketini tutacak bir Dağıtım Grubu oluşturacağız.
- Pipeline : Kaynağımız olarak CodeCommit'i ve dağıtım aşamamız olarak CodeDeploy'u seçeceğiz. Bu nedenle, CodeCommit'te herhangi bir kod değişikliği algılandığında, ardışık düzen çalışır ve bu kod değişikliklerini CodeDeploy'a (EC2 Örneği) gönderir.
Kod Dağıtım Otomasyonu: Ayrıntılı Açıklama :
Kod Dağıtım Otomasyonu için IAM ve Git Kullanıcısı Oluşturma
Öncelikle kod değişikliklerini yapacak ve bunları dağıtım sunucusunda yayınlayacak bir IAM kullanıcısı ve Git Kullanıcısı oluşturmamız gerekecek.
- Bir IAM Kullanıcısı oluşturun
- Şunlara Erişime İzin Ver: AWSCodeCommitFullAccess, AWSCodeDeployFullAccess, AWSCodeCommitPowerUser. Bu seçeneği "Mevcut politikaları doğrudan ekle" sekmesinde bulabilirsiniz.
- Şimdi bu IAM kullanıcısıyla oturum açın.
- Sağ üst köşeden Güvenlik Kimlik Bilgileri'ne tıklayın .
- AWS CodeCommit kimlik bilgileri sekmesine tıklayın .
- “AWS CodeCommit için HTTPS Git kimlik bilgileri” bölümünün altında, Kimlik Bilgisi Oluştur düğmesine tıklayın.
- Şimdi, bu kullanıcı adını ve şifreyi güvenli bir yere kopyalayın. Bu, Git'inizin kod değişikliklerini göndermek/çekmek için ana kullanıcı adı ve şifresi olacaktır.
CodeCommit'te Depo Oluşturma
Şimdi, tam kodunuzu tutacak bir havuz oluşturalım.
- IAM Kullanıcısından CodeCommit Dashboard'a gidin .
- Sağ üst köşede, deponuzu oluşturmak istediğiniz bölgeyi seçin.
- Depo oluştur'a tıklayın, ona bir ad, açıklama verin ve oluştur'a tıklayın.
- “ Depoyu klonla ” bölümünün altında, deponuzun bir URL'sini göreceksiniz. Güvenli bir yerde saklayın. Şuna benzeyecek: https://git-codecommit.ap-south-1.amazonaws.com/v1/repos/HarryTest
Proje dosyanızı ilk kez yükleme
- Orijinal kodunuzun bulunduğu yerel sisteminizin komut istemini açın .
- Komut isteminde, kodunuzun bulunduğu yola gidin.
- Şimdi, kodunuzu ilk kez AWS deposuna göndermek için aşağıdaki komutları çalıştırın:
git init
git config –local init.defaultBranch ana
git config –global init.defaultBranch ana
git ekle. ## bu, projenin tüm dosyalarını işleyecektir
git commit –m “İlk taahhüt”
git push https://git-codecommit.ap-south-1.amazonaws.com/v1/repos/HarryTest –all
- EC2 Örneği Oluşturun ve CodeDeploy Aracısını Yükleyin
- Örnek rolü oluşturun
- AWS IAM Konsolunuzu açın.
- Roller sekmesine gidin >> Rol oluştur.
- Güvenilen varlık türünü seçin altında, AWS hizmetini seçin . 'Bir kullanım örneği seçin' altında, EC2'yi seçin . 'Kullanım durumunuzu seçin' altında EC2'yi seçin. İleri'yi seçin: İzinler .
- AmazonEC2RoleforAWSCodeDeploy adlı ilkeyi arayıp seçin ve ardından Next: Tags öğesini seçin .
- İleri: Gözden Geçir'i seçin. Rol için bir ad girin (örneğin, EC2InstanceRole ) ve Oluştur üzerine tıklayın .
- EC2 örneği oluşturun
- EC2 konsoluna gidin. Örneği Başlat'a tıklayın.
- Bir Amazon Makine Görüntüsü (AMI) seçin, Amazon Linux 2 AMI (HVM), SSD Birim Türü öğesini bulun ve ardından Seç'i seçin. (Bu AMI, "Ücretsiz katman için uygun" olarak etiketlenmiştir ve listenin en üstünde bulunabilir.)
- Bir Örnek Türü sayfası seçin, örneğiniz için donanım yapılandırması olarak ücretsiz katmana uygun t2.micro türünü seçin ve ardından İleri: Örnek Ayrıntılarını Yapılandır'ı seçin .
- Örnek Ayrıntıları sayfasını yapılandırın, aşağıdakileri yapın:
- Örnek sayısı alanına 1 girin .
- Genel IP'yi Otomatik Ata'da Etkinleştir'i seçin .
- IAM rolünde, önceki prosedürde oluşturduğunuz IAM rolünü seçin (örneğin, EC2InstanceRole ).
- Gelişmiş Ayrıntılar'ı genişletin ve Kullanıcı verileri alanına aşağıdakileri girin:
#!/bin/bash
yum -y güncellemesi
yum yükleme -y yakut
yum install -y aws-cli
cd /home/ec2 kullanıcısı
wget https://aws-codedeploy-us-east-2.s3.us-east-2.amazonaws.com/latest/install
chmod +x ./kurulum
./otomatik yükle
- Adım 3: Örnek Ayrıntılarını Yapılandır sayfasındaki öğelerin geri kalanını değiştirmeden bırakın. İleri'yi seçin: Depolama Alanı Ekle .
- Adım 4: Depolama Ekle sayfasını değiştirmeden bırakın ve ardından Sonraki: Etiket Ekle'yi seçin.
- Etiket Ekle 'yi seçin . Anahtar alanına Ad girin ve Değer alanına MyCodePipelineDemo girin . İleri'yi seçin: Güvenlik Grubunu Yapılandır. Daha sonra, örnek uygulamayı bu örneğe dağıtan bir CodeDeploy uygulaması oluşturursunuz. CodeDeploy, örneklere eklenen etiketlere göre dağıtılacak örnekleri seçer.
- Güvenlik Grubu sayfasını yapılandırın, aşağıdakileri yapın:
- Güvenlik grubu ata'nın yanında Yeni bir güvenlik grubu oluştur'u seçin .
- SSH satırında , Kaynak altında IP'm'i seçin .
- Kural Ekle'yi seçin , HTTP'yi seçin ve ardından Kaynak altında IP'm'i seçin.
- İncele ve Başlat'ı seçin.
- Örnek Başlatmayı Gözden Geçir sayfasında , Başlat'ı seçin. Bir anahtar çifti istendiğinde, ' Anahtar çifti olmadan ilerle'yi seçin .
- Onay sayfasını kapatmak ve konsola dönmek için Örnekleri Görüntüle'yi seçin .
- Başlatma durumunu Eşgörünümler sayfasında görüntüleyebilirsiniz. Bir bulut sunucusunu başlattığınızda, ilk durumu "beklemede" olur. Örnek başladıktan sonra durumu 'çalışıyor' olarak değişir ve genel bir DNS adı alır. ( Genel DNS sütunu görüntülenmezse, Göster/Gizle simgesini ve ardından Genel DNS'yi seçin .)
- Örneğin, ona bağlanmanız için hazır olması birkaç dakika sürebilir. Bulut sunucunuzun durum kontrollerini geçip geçmediğini görmek için Durum Kontrolleri sütunundaki bilgileri görüntüleyin .

CodeDeploy'da uygulama oluşturma
- CodeDeploy hizmet rolü oluşturun
- https://console.aws.amazon.com/iam/ adresindeki IAM konsolunu açın
- Konsol panosundan Roller'i seçin.
- Rol oluşturmayı seçin.
- Güvenilen varlık türünü seçin altında, AWS hizmetini seçin. Bir kullanım örneği seçin altında CodeDeploy'u seçin. Kullanım durumunuzu seçin altında CodeDeploy'u seçin. İleri'yi seçin: İzinler. AWSCodeDeployRole yönetilen ilkesi, role zaten eklenmiştir.
- İleri: Etiketler'i ve İleri: Gözden Geçir'i seçin.
- Rol için bir ad girin (örneğin, CodeDeployRole) ve ardından Rol oluştur'u seçin.
- CodeDeploy'da uygulama oluşturma
- https://console.aws.amazon.com/codedeploy adresinde CodeDeploy konsolunu açın
- Uygulamalar sayfası görüntülenmezse, menüde Uygulamalar öğesini seçin.
- Uygulama Oluştur'u seçin.
- Uygulama adında MyDemoApplication girin.
- Compute Platform'da EC2/On-premises öğesini seçin.
- Bir uygulama oluşturmayı seçin.
- CodeDeploy'da bir dağıtım grubu oluşturun
- Uygulamanızı görüntüleyen sayfada Dağıtım grubu oluştur öğesini seçin.
- Dağıtım grubu adına MyDemoDeploymentGroup girin.
- Hizmet İçi Rol, daha önce oluşturduğunuz hizmet rolünü seçin (örneğin, CodeDeployRole ).
- Dağıtım türü altında Yerinde öğesini seçin.
- Ortam yapılandırması altında Amazon EC2 Bulut Sunucuları'nı seçin. Anahtar alanına Ad girin. Değer alanına, örneği etiketlemek için kullandığınız adı girin (örneğin, MyCodePipelineDemo ).
- Dağıtım yapılandırması altında CodeDeployDefault.OneAtaTime öğesini seçin.
- Yük Dengeleyici altında, Yük dengelemeyi etkinleştir'in seçili olmadığından emin olun. Bu örnek için bir yük dengeleyici kurmanıza veya bir hedef grup seçmenize gerek yoktur.
- Gelişmiş bölümünü genişletin. Alarmlar altında, herhangi bir alarm listeleniyorsa, Alarm yapılandırmasını yoksay'ı seçin.
- Dağıtım grubu oluşturmayı seçin.
Bir İşlem Hattı Oluşturun
- Bir İşlem Hattı Oluşturun
- AWS Management Console'da oturum açın ve http://console.aws.amazon.com/codesuite/codepipeline/home adresinden CodePipeline konsolunu açın.
- https://console.aws.amazon.com/codepipeline/ adresindeki CodePipeline konsolunu açın.
- İşlem hattı oluştur'u seçin .
- Adım 1 : Ardışık düzen ayarlarını seçin, Pipeline adında MyFirstPipeline yazın .
- Hizmet rolünde, CodePipeline'ın IAM'de bir hizmet rolü oluşturmasına izin vermek için Yeni hizmet rolünü seçin .
- Gelişmiş ayarlar altındaki ayarları varsayılanlarında bırakın ve ardından İleri'yi seçin.
- Adım 2'de : Kaynak aşaması ekle'de, Kaynak sağlayıcı'da CodeCommit'i seçin .
Depo adı alanında, 1. adımda oluşturduğunuz CodeCommit deposunun adını seçin: Bir CodeCommit deposu oluşturun. Şube adı'nda ana'yı seçin ve ardından Sonraki adım'ı seçin. - Depo adını ve dalı seçtikten sonra, bu işlem hattı için oluşturulacak Amazon CloudWatch Events kuralını gösteren bir mesaj görüntülenir.
- 'Algılamayı değiştir' seçeneklerinin altında varsayılanları bırakın. Bu, CodePipeline'ın kaynak deponuzdaki değişiklikleri algılamak için Amazon CloudWatch Events'i kullanmasına olanak tanır.
- İleri'yi seçin .
- Adım 3 : Yapı aşaması ekle'de, Yapı aşamasını atla'yı seçin ve ardından tekrar Atla'yı seçerek uyarı mesajını kabul edin . İleri'yi seçin .
Not : Bu öğreticide, yapı gerektirmeyen bir hizmet gerektiren kodu dağıtıyorsunuz, böylece bu adımı atlayabilirsiniz. Ancak, kaynak kodunuzun örneklere dağıtılmadan önce oluşturulması gerekiyorsa, bu adımda CodeBuild'i yapılandırabilirsiniz.
- Adım 4 : Dağıtım aşaması ekle'de, Dağıtım sağlayıcısı'nda CodeDeploy'u seçin .
Uygulama adında MyDemoApplication öğesini seçin . Dağıtım grubunda MyDemoDeploymentGroup öğesini ve ardından Sonraki adım öğesini seçin . - Adım 5'te : Bilgileri gözden geçirin ve ardından İşlem hattı oluştur'u seçin .
- İşlem hattı oluşturulduktan sonra çalışmaya başlar. Kodu CodeCommit deponuzdan indirir ve EC2 bulut sunucunuza bir CodeDeploy dağıtımı oluşturur. CodePipeline örneği Web sayfasını CodeDeploy dağıtımında Amazon EC2 bulut sunucusuna dağıtırken ilerleme, "başarı" ve "başarısızlık" mesajlarını görüntüleyebilirsiniz.
Artık hazırsınız! Dağıtım ⇒ Dağıtımlar'a gidin. Başarılı olan ve başarısız olan tüm dağıtımların günlüklerini göreceksiniz.
Sitedeki değişiklikleri doğrulamak için EC2 Bulut Sunucunuzu açın, şu şekilde görünecek olan genel DNS'nizi arayın: http://ec2-3-108-40-48.ap-south-1.compute.amazonaws.com .
Bir kez göz attığınızda, canlı sayfalarınızı göreceksiniz.
Kod Dağıtım Otomasyonunu başarıyla tamamladınız. Artık yeni kod değişikliklerini deponuza aktarabilir ve bunları sitenizde otomatik olarak yayınlayabilirsiniz. Hala herhangi bir sorunla karşılaşırsanız, buraya yorum yapmaktan çekinmeyin.