Gunakan paket Terraform untuk menerapkan instans Amazon Web Services Amazon Elastic Compute Cloud dan sambungkan ke Azure Arc

Artikel ini memberikan panduan untuk menggunakan paket Terraform yang disediakan untuk menerapkan instans Amazon Elastic Compute Cloud (EC2) Amazon Web Services (AWS) dan menghubungkannya sebagai sumber daya server berkemampuan Azure Arc.

Prasyarat

  1. Kloning repositori Azure Arc Jumpstart.

    git clone https://github.com/microsoft/azure_arc.git
    
  2. Pasang atau perbarui Azure CLI ke versi 2.7 dan setelahnya. Gunakan perintah berikut untuk memeriksa versi terinstal Anda saat ini.

    az --version
    
  3. Membuat kunci SSH (atau menggunakan kunci SSH yang ada)

  4. Membuat akun AWS gratis

  5. Memasang Terraform >= 0,12

  6. Membuat Prinsipal Layanan Azure.

    Untuk menghubungkan mesin virtual AWS ke Azure Arc, diperlukan perwakilan layanan Azure yang ditetapkan dengan peran Kontributor. Untuk membuatnya, masuk ke akun Azure Anda dan jalankan perintah berikut. Anda juga dapat menjalankan perintah ini di Azure Cloud Shell.

    az login
    az account set -s <Your Subscription ID>
    az ad sp create-for-rbac -n "<Unique SP Name>" --role contributor --scopes "/subscriptions/<Your Subscription ID>"
    

    Misalnya:

    az ad sp create-for-rbac -n "http://AzureArcAWS" --role contributor --scopes "/subscriptions/00000000-0000-0000-0000-000000000000"
    

    Output akan terlihat seperti ini:

    {
      "appId": "XXXXXXXXXXXXXXXXXXXXXXXXXXXX",
      "displayName": "http://AzureArcAWS",
      "password": "XXXXXXXXXXXXXXXXXXXXXXXXXXXX",
      "tenant": "XXXXXXXXXXXXXXXXXXXXXXXXXXXX"
    }
    

    Catatan

    Kami sangat menyarankan agar Anda memasukkan prinsipal layanan ke langganan Azure dan grup sumber daya tertentu.

Membuat identitas AWS

Agar Terraform dapat membuat sumber daya di AWS, kita perlu membuat peran AWS IAM baru dengan izin yang sesuai dan mengonfigurasi Terraform untuk menggunakannya.

  1. Masuk ke konsol manajemen AWS

  2. Setelah masuk, pilih daftar dropdown Layanan di kiri atas. Di bawah Keamanan, Identitas, dan Kepatuhan, pilih IAM untuk mengakses halaman manajemen identitas dan akses

    A screenshot of an AWS cloud console.

    A screenshot of identity and access management in the AWS cloud console.

  3. Klik Pengguna dari menu kiri, lalu pilih Tambahkan pengguna untuk membuat pengguna IAM baru.

    A screenshot of creating a new user in an AWS cloud console.

  4. Pada halaman Tambahkan Pengguna, beri nama pengguna Terraform dan pilih kotak centang Akses Terprogram, lalu pilih Berikutnya.

    Second screenshot of creating a new user in an AWS cloud console.

  5. Pada halaman Atur Izin, pilih Lampirkan kebijakan yang ada secara langsung lalu pilih kotak di samping AmazonEC2FullAccess seperti yang terlihat di tangkapan layar, lalu pilih Berikutnya.

    Third screenshot of creating a new user in an AWS cloud console.

  6. Pada halaman Tag, tetapkan tag dengan kunci azure-arc-demo dan pilih Berikutnya untuk melanjutkan ke halaman Tinjau.

    A screenshot of tags in an AWS cloud console.

  7. Pastikan semuanya sudah benar dan pilih Buat pengguna saat siap.

    Fourth screenshot of creating a user in an AWS cloud console.

  8. Setelah pengguna dibuat, Anda akan melihat ID kunci akses pengguna dan kunci akses rahasia. Salin nilai-nilai ini sebelum memilih Tutup. Di halaman berikutnya, Anda dapat melihat contoh seperti apa tampilannya seharusnya. Setelah anda memiliki kunci-kunci ini, anda akan dapat menggunakannya dengan Terraform untuk membuat sumber daya AWS.

    A screenshot of creating a user successfully in an AWS cloud console.

Mengonfigurasi Terraform

Sebelum menjalankan rencana Terraform, Anda harus mengekspor variabel lingkungan yang akan digunakan oleh paket. Variabel ini didasarkan pada langganan dan penyewa Azure Anda, perwakilan layanan Azure, dan pengguna AWS IAM serta kunci yang baru saja Anda buat.

  1. Ambil ID langganan Azure dan ID penyewa Anda menggunakan perintah az account list.

  2. Paket Terraform menciptakan sumber daya di Microsoft Azure dan AWS. Kemudian menjalankan skrip pada mesin virtual AWS EC2 untuk menginstal agen Azure Arc dan semua artefak yang diperlukan. Skrip ini memerlukan informasi tertentu tentang lingkungan AWS dan Azure Anda. Edit scripts/vars.sh dan perbarui setiap variabel dengan nilai yang sesuai.

    • TF_VAR_subscription_id = ID langganan Azure Anda
    • TF_VAR_client_id = ID aplikasi perwakilan layanan Azure Anda
    • TF_VAR_client_secret = kata sandi perwakilan layanan Azure Anda
    • TF_VAR_tenant_id = ID penyewa Azure Anda
    • AWS_ACCESS_KEY_ID = kunci akses AWS
    • AWS_SECRET_ACCESS_KEY = Kunci rahasia AWS
  3. Dari Azure CLI, navigasikan ke direktori azure_arc_servers_jumpstart/aws/ubuntu/terraform repositori yang dikloning.

  4. Ekspor variabel lingkungan yang Anda edit dengan menjalankan scripts/vars.sh dengan perintah sumber seperti yang ditunjukkan di bawah. Terraform mengharuskan variabel ini diatur agar rencana dapat dijalankan dengan benar. Perhatikan bahwa skrip ini juga akan dieksekusi secara otomatis dari jarak jauh pada mesin virtual AWS sebagai bagian dari penyebaran Terraform.

    source ./scripts/vars.sh
    
  5. Pastikan kunci SSH Anda tersedia di ~/.ssh dan bernama id_rsa.pub dan id_rsa. Jika Anda mengikuti panduan ssh-keygen di atas untuk membuat kunci Anda maka ini seharusnya sudah diatur dengan benar. Jika tidak, Anda mungkin perlu memodifikasi main.tf untuk menggunakan kunci dengan jalur yang berbeda.

  6. Jalankan perintah terraform init yang akan mengunduh penyedia Terraform AzureRM.

    A screenshot of the terraform init command.

Penyebaran

  1. Jalankan perintah terraform apply --auto-approve dan tunggu paket selesai. Setelah selesai, Anda akan memiliki instans AWS Amazon Linux 2 EC2 yang disebarkan dan dihubungkan sebagai server berkemampuan Azure Arc baru di dalam grup sumber daya baru.

  2. Buka portal Azure dan navigasikan ke grup sumber daya arc-aws-demo. Mesin virtual yang dibuat di AWS akan terlihat sebagai sumber daya.

    A screenshot showing an Azure Arc-enabled server in the Azure portal.

    A screenshot of AWS console displaying EC2 instances.

Penyebaran semi otomatis (opsional)

Seperti yang mungkin Anda perhatikan, langkah terakhir dari eksekusi ini adalah mendaftarkan VM sebagai sumber daya server berkemampuan Azure Arc yang baru.

A screenshot of the azcmagent connect command.

Jika Anda ingin mendemo/mengontrol proses pendaftaran yang sebenarnya, lakukan hal berikut:

  1. Di templat skrip install_arc_agent.sh.tmpl, komentari bagian run connect command dan simpan file.

    A screenshot showing main.tf being commented out to disable automatic onboarding of an Azure Arc agent.

  2. Dapatkan IP publik AWS VM dengan menjalankan terraform output.

    A screenshot of output from Terraform.

  3. SSH VM menggunakan ssh ubuntu@xx.xx.xx.xx di mana xx.xx.xx.xx adalah IP host.

    A screenshot of an SSH key connecting to an EC2 server.

  4. Ekspor semua variabel lingkungan di vars.sh.

    A screenshot of exported environment variables in vars.sh.

  5. Jalankan perintah berikut:

    azcmagent connect --service-principal-id $TF_VAR_client_id --service-principal-secret $TF_VAR_client_secret --resource-group "arc-aws-demo" --tenant-id $TF_VAR_tenant_id --location "westus2" --subscription-id $TF_VAR_subscription_id
    

    Another screenshot of the azcmagent connect command.

  6. Setelah selesai, VM Anda akan terdaftar di Azure Arc dan terlihat di grup sumber daya melalui portal Azure.

Menghapus penyebaran

Untuk menghapus semua sumber daya yang Anda buat sebagai bagian dari demo ini, gunakan perintah terraform destroy --auto-approve seperti yang ditunjukkan di bawah ini.

A screenshot of the terraform destroy command.

Atau, Anda dapat menghapus instans AWS EC2 secara langsung dengan mengakhirinya dari konsol AWS. Perhatikan bahwa akan memakan waktu beberapa menit agar instans benar-benar dihapus.

A screenshot of how to terminate an instance in the AWS console.

Jika Anda menghapus instans secara manual, maka Anda juga harus menghapus *./scripts/install_arc_agent.sh, yang dibuat oleh paket Terraform.