giriiş
Bu kılavuzda, AWS App Runner ile konteynerize bir uygulamanın nasıl dağıtılacağını öğreneceksiniz. AWS App Runner, geliştiricilerin altyapı deneyimi gerektirmeden konteynerize web uygulamalarını ve API'leri ölçeklenebilir bir şekilde hızla dağıtmalarını sağlayan, tamamen yönetilen bir hizmettir. Kaynak kodu veya bir konteyner görüntüsüyle başlayın. App Runner, web uygulamasını otomatik olarak oluşturup dağıtır ve trafiği şifrelemeyle dengeler. App Runner ayrıca trafik ihtiyaçlarınızı karşılamak için otomatik olarak ölçeklendirme yapar.
Ön koşullar
- Bir AWS hesabı
- Lütfen AWS CDK'nızı doğru şekilde yapılandırdığınızdan emin olun.
Adım 1 – CDK uygulamasını oluşturun
Öncelikle, giriş sayfasında referans verilen bu kılavuz için örnek kodu indirip çıkardığınızdan emin olun (bu kodun yerine) Referans olarak örnek kodun adresi ve Karşılık gelen dosya adıyla değiştirin):
wget <EXAMPLE_CODE_URL>
unzip <DOWNLOADED_FILE_NAME>
cd getting-started-containers-app-runner-mainDaha sonra CDK v2'nin yüklü olduğundan emin olun.
cdk --versionŞimdi tercih ettiğimiz dil olan TypeScript'i kullanarak CDK iskelet uygulamasını oluşturalım:
mkdir infra
cd infra
cdk init app --language typescriptAşağıdaki çıktıyı elde edeceksiniz:
Applying project template app for typescript
# Welcome to your CDK TypeScript project!
This is a blank project for TypeScript development with CDK.
The `cdk.json` file tells the CDK Toolkit how to execute your app.
## Useful commands
* `npm run build` compile typescript to js
* `npm run watch` watch for changes and compile
* `npm run test` perform the jest unit tests
* `cdk deploy` deploy this stack to your default AWS account/region
* `cdk diff` compare deployed stack with current state
* `cdk synth` emits the synthesized CloudFormation template
Executing npm install...
✅ All done!Kaynak yığını için kodu oluşturun
lib/infra-stack.ts dosyasına gidin. Oluşturmak istediğiniz kaynak yığınının kodunu buraya yazacaksınız. Kaynak yığını, belirli bir hesapta sağlanan bulut altyapısı kaynaklarının (bu özel durumda tüm AWS kaynaklarının) bir koleksiyonudur. Bu kaynakların sağlandığı hesap/bölge, yığında yapılandırılabilir.
Bu kategoride aşağıdaki kaynakları oluşturmak isteyeceksiniz:
- Uygulama Çalıştırma Servisi: Konteyneriniz bu şekilde çalışır.
- Çıktı: Bu, hizmetinizin URL'sini görüntüler.
Konteyner hizmetini dağıtın
Hizmetinizi dağıtmak için öncelikle doğru modülleri içe aktarmalısınız (bunun yerine) Aşağıdaki kod parçasında, daha önce aldığınız CDK sürümünüzü değiştirin.
npm i @aws-cdk/aws-apprunner-alpha@<CDK_VERSION>-alpha.0Daha sonra lib/infra-stack.ts dosyasını düzenleyerek dosyanın en üstüne bağımlılıkları ekleyin:
import apprunner = require('@aws-cdk/aws-apprunner-alpha'); // Allows working with App Runner resources
import { DockerImageAsset } from 'aws-cdk-lib/aws-ecr-assets'; // Allows building the docker image and uploading to ECR
import * as path from "path"; // Helper for working with file pathsBu modüller, bir web uygulamasını dağıtmak için gereken tüm bileşenlere erişim sağlar.
Ardından, bir Uygulama Çalıştırıcı hizmeti oluşturarak hangi kapsayıcıyı kullanacağınızı belirtmeniz gerekiyor. Bu eğitimde, örnek uygulamayla birlikte verilen kapsayıcı görüntüsünü SampleApp'e ekleyeceğiz ve kapsayıcının oluşturulması, yüklenmesi ve dağıtımı CDK tarafından bizim için gerçekleştirilecek. Ayrıca, gelecekteki eğitimlerde hizmetle ilişkilendirilecek boş bir IAM rolü de oluşturacağız. Hizmeti ve IAM rolünü oluşturmak için aşağıdaki kodu ekleyin:
// The code that defines your stack goes here
//If you are running on a Mac using the new M1 chip, please change `../SampleApp` to `../../SampleApp`.
const imageAsset = new DockerImageAsset(this, 'ImageAssets', {
directory: path.join(__dirname, '../SampleApp'),
});
const service = new apprunner.Service(this, 'Service', {
source: apprunner.Source.fromAsset({
imageConfiguration: { port: 80 },
asset: imageAsset
})
});
new cdk.CfnOutput(this, "apprunner-url", {
exportName: "apprunner-url",
value: service.serviceUrl,
description: "URL to access service"
});Yukarıdaki kodda, CDK'nin SampleApp dizinindeki bir Dockerfile'dan derlediği bir kapsayıcıyı çalıştırmak için App Runner ile bir hizmet oluşturdunuz. CDK'yi kullanabilmeniz için önce önyükleme yapmanız gerekir; bu, CDK'nin hesabınızdaki altyapıyı yönetmesi için gerekli altyapıyı oluşturur:
cdk bootstrapŞuna benzer bir çıktı görmelisiniz:
⏳ Bootstrapping environment aws://0123456789012/<region>...
✅ Environment aws://0123456789012/<region> bootstrappedÖnyükleme tamamlandıktan sonra, gerekli tüm altyapıyı dağıtmak için CDK'yı çalıştırırsınız:
cdk deployAşağıdakine benzer bir çıktı görmelisiniz:
CDK, güvenlik yapılandırmasını değiştirecek altyapıyı (bu durumda IAM rolleri ve güvenlik grupları oluşturarak) oluşturacağı için altyapıyı oluşturmadan önce sizi uyaracaktır. Dağıtım için y tuşuna ve ardından Enter tuşuna basın. CDK, tanımladığınız tüm altyapıyı dağıtacaktır. İşlemin tamamlanması birkaç dakika sürecektir. Çalıştıktan sonra aşağıdaki gibi güncellemeler göreceksiniz:
İşlem tamamlandığında, aşağıda gösterildiği gibi hizmetinize erişmek için genel URL'ye bağlantı içeren çıktıyı göreceksiniz:

Adım 2 – Kaynakları temizleyin
Bulut tabanlı altyapıyı ortadan kaldırın
AWS CDK, altyapınızı tek bir komutla kaldırmanızı kolaylaştırır. Oluşturduğunuz tüm altyapıyı kaldırmak için cdk kill komutunu kullanın; bu komut yalnızca bu eğitimde oluşturulan altyapıyı kaldıracaktır.
Bir onay göreceksiniz:
cdk destroy
Are you sure you want to delete: InfraStack (y/n)? Y ve Enter tuşlarına bastıktan sonra, CDK tüm altyapıyı kaldırmaya ve güncellemeler sağlamaya başlayacaktır. İşlem tamamlandığında aşağıdakileri göreceksiniz:
Are you sure you want to delete: InfraStack (y/n)? y
InfraStack: destroying...
✅ InfraStack: destroyedSonuç
AWS App Runner Kullanarak Bir Web Uygulamasını Dağıtma eğitimini tamamladınız.












