Tutorial ini menjelaskan cara men-deploy aplikasi web .NET Framework ke Compute Engine.
Tutorial ini ditujukan untuk developer dan engineer DevOps yang memiliki pengetahuan dasar tentang Microsoft .NET dan Compute Engine.
Tujuan
Men-deploy aplikasi web Model-View-Controller (MVC) ASP.NET yang menggunakan .NET Framework 4 dan berjalan di Windows ke satu instance Compute Engine.
Tutorial ini menunjukkan cara menyelesaikan tugas berikut untuk mencapai tujuan Anda:
- Men-deploy VM Compute Engine
- Menyiapkan load balancing
- Men-deploy aplikasi ASP.NET
Biaya
Dalam dokumen ini, Anda akan menggunakan komponen Google Cloudyang dapat ditagih berikut:
Untuk membuat perkiraan biaya berdasarkan proyeksi penggunaan Anda,
gunakan kalkulator harga.
Setelah menyelesaikan tugas yang dijelaskan dalam dokumen ini, Anda dapat menghindari penagihan berkelanjutan dengan menghapus resource yang Anda buat. Untuk mengetahui informasi selengkapnya, baca bagian Pembersihan.
Sebelum memulai
- Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Compute Engine API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Compute Engine API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.
Men-deploy VM Compute Engine
Bagian ini menunjukkan cara membuat VM Linux, atau VM Windows Server yang menjalankan server web Microsoft Internet Information Services (IIS) di Compute Engine.
Tetapkan nilai default untuk project ID dan zona Compute Engine Anda. Cara ini akan menghemat waktu Anda.
gcloud config set project PROJECT_ID gcloud config set compute/zone ZONE
Ganti kode berikut:
PROJECT_IDdengan ID project Google Cloud Anda.ZONEdengan nama zona yang akan Anda gunakan untuk membuat resource. Jika Anda tidak yakin zona mana yang harus dipilih, gunakan zona yang secara geografis paling dekat dengan Anda.
Contoh:
gcloud config set project test-project-12345 gcloud config set compute/zone us-central1-a
Buat instance VM:
Untuk membuat VM Windows Server yang menjalankan IIS, lakukan hal berikut:
Buat skrip startup untuk instance VM. Skrip ini akan berjalan selama inisialisasi VM dan menginstal IIS:
"# Install IIS Enable-WindowsOptionalFeature -Online -FeatureName `` NetFx4Extended-ASPNET45, `` IIS-WebServerRole, `` IIS-WebServer, `` IIS-CommonHttpFeatures, `` IIS-HttpErrors, `` IIS-HttpRedirect, `` IIS-ApplicationDevelopment, `` IIS-HealthAndDiagnostics, `` IIS-HttpLogging, `` IIS-LoggingLibraries, `` IIS-RequestMonitor, `` IIS-HttpTracing, `` IIS-Security, `` IIS-RequestFiltering, `` IIS-Performance, `` IIS-WebServerManagementTools, `` IIS-IIS6ManagementCompatibility, `` IIS-Metabase, `` IIS-DefaultDocument, `` IIS-ApplicationInit, `` IIS-NetFxExtensibility45, `` IIS-ISAPIExtensions, `` IIS-ISAPIFilter, `` IIS-ASPNET45, `` IIS-HttpCompressionStatic Install-WindowsFeature Web-Mgmt-Service # Install WebDeploy [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType] 'Ssl3,Tls12' (New-Object Net.WebClient).DownloadFile( 'https://download.microsoft.com/download/0/1/D/01DC28EA-638C-4A22-A57B-4CEF97755C6C/WebDeploy_amd64_en-US.msi', ""$env:Temp\webdeploy.msi"") & msiexec /qb! /i $env:Temp\webdeploy.msi | Out-Default " | Out-File -Encoding ASCII startup.ps1Buat instance VM dan jalankan skrip startup
startup.ps1:gcloud compute instances create clouddemo-1 ` --image-family windows-2019 ` --image-project windows-cloud ` --machine-type n1-standard-2 ` --boot-disk-type pd-ssd ` --tags loadbalancer-backend ` --metadata-from-file sysprep-startup-script-ps1=startup.ps1
Pantau proses inisialisasi VM dengan melihat output port serialnya:
gcloud compute instances tail-serial-port-output clouddemo-1
Tunggu sekitar 5 menit hingga Anda melihat output
Instance setup finishedatauStartup finished, lalu tekan Ctrl+C. Pada tahap ini, penginstalan prasyarat telah selesai dan instance VM siap digunakan.
Menyiapkan load balancing
Untuk membuat aplikasi ASP.NET Anda tersedia di internet, Anda harus menggunakan load balancer HTTPS. Untuk mengaitkan instance VM dengan load balancer, buat grup instance dan tetapkan grup instance ini ke load balancer:
Buat grup instance tidak terkelola dan tambahkan instance VM:
gcloud compute instance-groups unmanaged create clouddemo-1 gcloud compute instance-groups unmanaged add-instances clouddemo-1 --instances clouddemo-1
Buat health check yang memeriksa apakah server web berjalan:
gcloud compute http-health-checks create clouddemo-health ` --check-interval 5s ` --unhealthy-threshold 2 ` --request-path / gcloud compute instance-groups set-named-ports clouddemo-1 --named-ports=http:80Buat layanan backend load balancer yang menggunakan health check HTTP dan grup instance yang Anda buat sebelumnya:
gcloud compute backend-services create clouddemo-backend ` --http-health-checks clouddemo-health ` --port-name http ` --protocol HTTP ` --global gcloud compute backend-services add-backend clouddemo-backend ` --instance-group clouddemo-1 ` --global ` --instance-group-zone $(gcloud config get-value compute/zone)
Buat front-end untuk load balancer:
gcloud compute url-maps create clouddemo-map --default-service clouddemo-backend gcloud compute target-http-proxies create clouddemo-proxy --url-map clouddemo-map gcloud compute forwarding-rules create clouddemo-frontend --global --target-http-proxy clouddemo-proxy --ports 80
Buat aturan firewall yang mengizinkan load balancer mengirim permintaan HTTP ke instance yang telah diberi anotasi dengan tag
loadbalancer-backend.gcloud compute firewall-rules create loadbalancer-backend ` --source-ranges "130.211.0.0/22,35.191.0.0/16" ` --target-tags loadbalancer-backend ` --allow tcp:80,tcp:5000
Cari alamat IP load balancer:
gcloud compute forwarding-rules describe clouddemo-frontend --global --format "value(IPAddress)"
Catat alamat IP-nya. Anda akan membutuhkannya nanti.
Men-deploy aplikasi ASP.NET
Buka konsol PowerShell.
Download dan unzip atau clone repositori contoh dari github:
git clone https://github.com/GoogleCloudPlatform/dotnet-docs-samples.git
Buat paket deployment:
Beralih ke direktori yang berisi aplikasi contoh:
cd dotnet-docs-samples\applications\clouddemo\net4
Memulihkan dependensi NuGet:
nuget restore
Bangun solusi dan gunakan profil publikasi
PackageProfileuntuk membuat paket deployment WebDeploy:msbuild /t:clean,rebuild CloudDemo.Mvc.sln /p:DeployOnBuild=true /p:PublishProfile=PackageProfile
Folder
CloudDemo.Mvc\binkini berisi fileCloudDemo.Mvc.zip.
Salin paket deployment ke VM:
- Buat nama pengguna dan sandi untuk instance VM.
- Hubungkan ke VM menggunakan Desktop Jarak Jauh dan login menggunakan nama pengguna dan sandi yang dibuat di langkah sebelumnya.
- Salin file
CloudDemo.Mvc.zipdari folderCloudDemo.Mvc\binke lokasi sementara di instance VM. - Dalam sesi Desktop Jauh, klik kanan tombol Start (atau tekan Win+X), lalu klik Windows PowerShell (Admin).
- Konfirmasi prompt elevasi dengan mengklik Yes.
Deploy paket deployment:
&"C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe" -source:package=
PACKAGE-verb:sync -dest:autoGanti
PACKAGEdengan jalur ke paket deployment.
Di komputer lokal Anda, buka browser web dan buka alamat berikut:
http://
LOADBALANCER_IP/Ganti
LOADBALANCER_IPdengan alamat IP yang Anda dapatkan setelah men-deploy load balancer.Sekarang Anda akan melihat aplikasi demo dan judul Aplikasi ini berjalan di Compute Engine.
Pembersihan
Setelah menyelesaikan tutorial, Anda dapat membersihkan resource yang dibuat sehingga resource tersebut berhenti menggunakan kuota dan dikenai biaya. Bagian berikut menjelaskan cara menghapus atau menonaktifkan resource ini.
Menghapus project
Cara termudah untuk menghilangkan penagihan adalah dengan menghapus project yang Anda buat untuk tutorial.
Menghapus Google Cloud project:
gcloud projects delete PROJECT_ID
Menghapus resource satu per satu
Anda harus menghapus semua resource yang dibuat untuk project ini satu per satu (misalnya: grup instance, health check, layanan backend, proxy http, dan aturan penerusan). Anda tidak dapat menghapus instance VM sebelum menghapus semua resource ini.
Langkah berikutnya
- Pelajari lebih lanjut cara membuat dan menjalankan virtual machine di infrastruktur Google.
- Tinjau praktik terbaik dalam Google Cloud Framework yang Dirancang dengan Baik.
- Pelajari arsitektur referensi, diagram, dan praktik terbaik tentang Google Cloud. Lihat Cloud Architecture Center kami.