Buat perangkat virtual dengan Amazon EC2 - AWS IoT Core

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Buat perangkat virtual dengan Amazon EC2

Dalam tutorial ini, Anda akan membuat EC2 instance Amazon untuk berfungsi sebagai perangkat virtual Anda di cloud.

Untuk menyelesaikan tutorial ini, Anda memerlukan Akun AWS. Jika Anda tidak memilikinya, selesaikan langkah-langkah yang dijelaskan Siapkan Anda Akun AWS sebelum Anda melanjutkan.

Siapkan EC2 instans Amazon

Langkah-langkah berikut menunjukkan cara membuat EC2 instans Amazon yang akan bertindak sebagai perangkat virtual Anda sebagai pengganti perangkat fisik.

Jika ini adalah pertama kalinya Anda membuat EC2 instans Amazon, Anda mungkin menemukan petunjuk di Memulai dengan EC2Linux instans Amazon agar lebih bermanfaat.

Untuk meluncurkan sebuah instans
  1. Buka EC2 konsol Amazon di https://console.aws.amazon.com/ec2/.

  2. Dari menu konsol di sebelah kiri, perluas bagian Instans dan pilih Instans. Dari dasbor Instans, pilih Luncurkan instance di sebelah kanan untuk menampilkan daftar konfigurasi dasar.

  3. Di bagian Nama dan tag, masukkan nama untuk instance dan tambahkan tag secara opsional.

  4. Di bagian Application and OS Images (Amazon Machine Image), pilih AMI template untuk instans Anda, seperti Amazon Linux 2 AMI (HVM). Perhatikan bahwa ini AMI ditandai “Tingkat gratis memenuhi syarat.”

  5. Di bagian Jenis instans, Anda dapat memilih konfigurasi perangkat keras instans Anda. Pilih jenis t2.micro, yang dipilih secara default. Perhatikan bahwa jenis instans ini memenuhi syarat untuk tingkat gratis.

  6. Di bagian Key pair (login), pilih nama key pair dari daftar drop-down atau pilih Create a new key pair untuk membuat yang baru. Saat membuat key pair baru, pastikan Anda mengunduh file kunci pribadi dan menyimpannya di tempat yang aman, karena ini adalah satu-satunya kesempatan Anda untuk mengunduh dan menyimpannya. Anda harus menyediakan nama pasangan kunci saat meluncurkan sebuah instans dan kunci privat yang sesuai setiap kali Anda terhubung dengan instans tersebut.

    Awas

    Jangan memilih opsi Proceed without a key pair. Jika Anda meluncurkan instans tanpa pasangan kunci, Anda tidak dapat terhubung dengan instans tersebut.

  7. Di bagian Pengaturan jaringan dan bagian Konfigurasi penyimpanan, Anda dapat menyimpan pengaturan default. Saat Anda siap, pilih Launch instance.

  8. Halaman konfirmasi memberi tahu Anda bahwa instans Anda sedang diluncurkan. Pilih Lihat Instans untuk menutup halaman konfirmasi dan kembali ke konsol.

  9. Pada layar Instans, Anda dapat melihat status peluncuran. Hanya butuh waktu singkat untuk meluncurkan sebuah instans. Saat Anda meluncurkan sebuah instans, status awalnya adalah pending. Setelah instance dimulai, statusnya berubah menjadi running dan menerima DNS nama publik. (Jika kolom Public DNS (IPv4) disembunyikan, pilih Tampilkan/Sembunyikan Kolom (ikon berbentuk roda gigi) di sudut kanan atas halaman dan kemudian pilih Publik DNS ().) IPv4

  10. Proses ini mungkin memerlukan waktu beberapa menit sampai instans siap, sehingga Anda dapat terhubung dengannya. Periksa apakah instans Anda telah lulus pemeriksaan statusnya; Anda dapat melihat informasi ini di kolom Pemeriksaan Status.

    Setelah instans baru Anda lulus pemeriksaan statusnya, lanjutkan ke prosedur berikutnya dan sambungkan ke sana.

Untuk menyambung ke instans Anda

Anda dapat menyambung ke instans menggunakan klien berbasis browser dengan memilih instance dari EC2 konsol Amazon dan memilih untuk terhubung menggunakan Amazon Instance EC2 Connect. Instance Connect menangani izin dan menyediakan koneksi yang berhasil.

  1. Buka EC2 konsol Amazon di https://console.aws.amazon.com/ec2/.

  2. Di menu sebelah kiri, pilih Instans.

  3. Pilih instans, lalu pilih Hubungkan.

  4. Pilih Amazon EC2 Instance Connect, Connect.

Anda sekarang harus memiliki jendela Amazon EC2 Instance Connect yang masuk ke EC2 instans Amazon baru Anda.

Instal Git, Node.js dan konfigurasikan AWS CLI

Di bagian ini, Anda akan menginstal Git dan Node.js pada instance Linux Anda.

Untuk menginstal Git
  1. Di jendela Amazon EC2 Instance Connect, perbarui instans Anda dengan menggunakan perintah berikut.

    sudo yum update -y
  2. Di jendela Amazon EC2 Instance Connect, instal Git dengan menggunakan perintah berikut.

    sudo yum install git -y
  3. Untuk memeriksa apakah Git telah diinstal dan versi Git saat ini, jalankan perintah berikut:

    git --version
Untuk menginstal Node.js
  1. Di jendela Amazon EC2 Instance Connect, instal node version manager (nvm) dengan menggunakan perintah berikut.

    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash

    Kami akan menggunakan nvm untuk menginstal Node.js karena nvm dapat menginstal beberapa versi Node.js dan memungkinkan Anda untuk beralih di antara mereka.

  2. Di jendela Amazon EC2 Instance Connect, aktifkan nvm dengan menggunakan perintah ini.

    . ~/.nvm/nvm.sh
  3. Di jendela Amazon EC2 Instance Connect, gunakan nvm untuk menginstal versi terbaru Node.js dengan menggunakan perintah ini.

    nvm install 16
    catatan

    Ini menginstal LTS rilis terbaru dari Node.js.

    Menginstal Node.js juga menginstal Node Package Manager (npm) sehingga Anda dapat menginstal modul tambahan sesuai kebutuhan.

  4. Di jendela Amazon EC2 Instance Connect, uji apakah Node.js diinstal dan berjalan dengan benar menggunakan perintah ini.

    node -e "console.log('Running Node.js ' + process.version)"

    Tutorial ini membutuhkan Node v10.0 atau yang lebih baru. Untuk informasi selengkapnya, lihat Tutorial: Menyiapkan Node.js di EC2 Instans Amazon.

Untuk mengkonfigurasi AWS CLI

EC2Instans Amazon Anda sudah dimuat sebelumnya dengan AWS CLI. Namun, Anda harus menyelesaikan AWS CLI profil. Untuk informasi selengkapnya tentang cara mengonfigurasiCLI, lihat Mengonfigurasi AWS CLI.

  1. Contoh berikut menunjukkan nilai sampel. Gantilah dengan nilai-nilai Anda sendiri. Anda dapat menemukan nilai-nilai ini di AWS konsol di info akun Anda di bawah Kredensi keamanan.

    Di jendela Amazon EC2 Instance Connect Anda, masukkan perintah ini:

    aws configure

    Kemudian masukkan nilai dari akun Anda pada petunjuk yang ditampilkan.

    AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY Default region name [None]: us-west-2 Default output format [None]: json
  2. Anda dapat menguji AWS CLI konfigurasi dengan perintah ini:

    aws iot describe-endpoint --endpoint-type iot:Data-ATS

    Jika AWS CLI dikonfigurasi dengan benar, perintah harus mengembalikan alamat titik akhir dari Akun AWS.

Buat AWS IoT sumber daya untuk perangkat virtual Anda

Bagian ini menjelaskan cara menggunakan AWS CLI untuk membuat objek benda dan file sertifikatnya langsung di perangkat virtual. Ini dilakukan langsung pada perangkat untuk menghindari potensi komplikasi yang mungkin timbul dari menyalinnya ke perangkat dari komputer lain. Di bagian ini, Anda akan membuat sumber daya berikut untuk perangkat virtual Anda:

  • Objek benda untuk mewakili perangkat virtual Anda di AWS IoT.

  • Sertifikat untuk mengautentikasi perangkat virtual Anda.

  • Dokumen kebijakan untuk mengotorisasi perangkat virtual Anda agar tersambung AWS IoT, dan untuk mempublikasikan, menerima, dan berlangganan pesan.

Untuk membuat AWS IoT benda benda dalam instance Linux Anda

Perangkat yang terhubung ke AWS IoT diwakili oleh benda benda di AWS IoT registri. Objek benda mewakili perangkat tertentu atau entitas logis. Dalam hal ini, objek benda Anda akan mewakili perangkat virtual Anda, EC2 contoh Amazon ini.

  1. Di jendela Amazon EC2 Instance Connect, jalankan perintah berikut untuk membuat objek benda Anda.

    aws iot create-thing --thing-name "MyIotThing"
  2. JSONResponsnya akan terlihat seperti ini:

    { "thingArn": "arn:aws:iot:your-region:your-aws-account:thing/MyIotThing", "thingName": "MyIotThing", "thingId": "6cf922a8-d8ea-4136-f3401EXAMPLE" }
Untuk membuat dan melampirkan AWS IoT kunci dan sertifikat dalam instance Linux Anda

create-keys-and-certificatePerintah tersebut membuat sertifikat klien yang ditandatangani oleh otoritas sertifikat Amazon Root. Sertifikat ini digunakan untuk mengautentikasi identitas perangkat virtual Anda.

  1. Di jendela Amazon EC2 Instance Connect, buat direktori untuk menyimpan sertifikat dan file kunci Anda.

    mkdir ~/certs
  2. Di jendela Amazon EC2 Instance Connect, unduh salinan sertifikat Amazon certificate authority (CA) dengan menggunakan perintah ini.

    curl -o ~/certs/Amazon-root-CA-1.pem \ https://www.amazontrust.com/repository/AmazonRootCA1.pem
  3. Di jendela Amazon EC2 Instance Connect, jalankan perintah berikut untuk membuat kunci pribadi, kunci publik, dan file sertifikat X.509. Perintah ini juga mendaftarkan dan mengaktifkan sertifikat dengan AWS IoT.

    aws iot create-keys-and-certificate \ --set-as-active \ --certificate-pem-outfile "~/certs/device.pem.crt" \ --public-key-outfile "~/certs/public.pem.key" \ --private-key-outfile "~/certs/private.pem.key"

    Respon tersebut terlihat seperti berikut. Simpan certificateArn sehingga Anda dapat menggunakannya dalam perintah berikutnya. Anda akan memerlukannya untuk melampirkan sertifikat Anda ke barang Anda dan melampirkan kebijakan ke sertifikat di langkah selanjutnya.

    { "certificateArn": "arn:aws:iot:us-west-2:123456789012:cert/9894ba17925e663f1d29c23af4582b8e3b7619c31f3fbd93adcb51ae54b83dc2", "certificateId": "9894ba17925e663f1d29c23af4582b8e3b7619c31f3fbd93adcb51ae54b83dc2", "certificatePem": " -----BEGIN CERTIFICATE----- MIICiTCCEXAMPLE6m7oRw0uXOjANBgkqhkiG9w0BAQUFADCBiDELMAkGA1UEBhMC VVMxCzAJBgNVBAgEXAMPLEAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6 b24xFDASBgNVBAsTC0lBTSEXAMPLE2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAd BgkqhkiG9w0BCQEWEG5vb25lQGFtYEXAMPLEb20wHhcNMTEwNDI1MjA0NTIxWhcN MTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBhMCEXAMPLEJBgNVBAgTAldBMRAwDgYD VQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDAEXAMPLEsTC0lBTSBDb25z b2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEXAMPLE25lQGFt YXpvbi5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMaK0dn+aEXAMPLE EXAMPLEfEvySWtC2XADZ4nB+BLYgVIk60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9T rDHudUZEXAMPLELG5M43q7Wgc/MbQITxOUSQv7c7ugFFDzQGBzZswY6786m86gpE Ibb3OhjZnzcvQAEXAMPLEWIMm2nrAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4 nUhVVxYUntneD9+h8Mg9qEXAMPLEyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0Fkb FFBjvSfpJIlJ00zbhNYS5f6GuoEDEXAMPLEBHjJnyp378OD8uTs7fLvjx79LjSTb NYiytVbZPQUQ5Yaxu2jXnimvw3rrszlaEXAMPLE= -----END CERTIFICATE-----\n", "keyPair": { "PublicKey": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkEXAMPLEQEFAAOCAQ8AMIIBCgKCAQEAEXAMPLE1nnyJwKSMHw4h\nMMEXAMPLEuuN/dMAS3fyce8DW/4+EXAMPLEyjmoF/YVF/gHr99VEEXAMPLE5VF13\n59VK7cEXAMPLE67GK+y+jikqXOgHh/xJTwo+sGpWEXAMPLEDz18xOd2ka4tCzuWEXAMPLEahJbYkCPUBSU8opVkR7qkEXAMPLE1DR6sx2HocliOOLtu6Fkw91swQWEXAMPLE\GB3ZPrNh0PzQYvjUStZeccyNCx2EXAMPLEvp9mQOUXP6plfgxwKRX2fEXAMPLEDa\nhJLXkX3rHU2xbxJSq7D+XEXAMPLEcw+LyFhI5mgFRl88eGdsAEXAMPLElnI9EesG\nFQIDAQAB\n-----END PUBLIC KEY-----\n", "PrivateKey": "-----BEGIN RSA PRIVATE KEY-----\nkey omitted for security reasons\n-----END RSA PRIVATE KEY-----\n" } }
  4. Di jendela Amazon EC2 Instance Connect Anda, lampirkan objek benda Anda ke sertifikat yang baru saja Anda buat dengan menggunakan perintah berikut dan certificateArn dalam tanggapan dari perintah sebelumnya.

    aws iot attach-thing-principal \ --thing-name "MyIotThing" \ --principal "certificateArn"

    Jika berhasil, perintah ini tidak menampilkan output apapun.

Untuk membuat dan melampirkan kebijakan
  1. Di jendela Amazon EC2 Instance Connect, buat file kebijakan dengan menyalin dan menempelkan dokumen kebijakan ini ke file bernama. ~/policy.json

    Jika Anda tidak memiliki editor Linux favorit, Anda dapat membukanano, dengan menggunakan perintah ini.

    nano ~/policy.json

    Tempelkan dokumen kebijakan policy.json ke dalamnya. Masukkan ctrl-x untuk keluar dari nano editor dan simpan file.

    Isi dokumen kebijakan untukpolicy.json.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Publish", "iot:Subscribe", "iot:Receive", "iot:Connect" ], "Resource": [ "*" ] } ] }
  2. Di jendela Amazon EC2 Instance Connect, buat kebijakan Anda menggunakan perintah berikut.

    aws iot create-policy \ --policy-name "MyIotThingPolicy" \ --policy-document "file://~/policy.json"

    Output:

    { "policyName": "MyIotThingPolicy", "policyArn": "arn:aws:iot:your-region:your-aws-account:policy/MyIotThingPolicy", "policyDocument": "{ \"Version\": \"2012-10-17\", \"Statement\": [ { \"Effect\": \"Allow\", \"Action\": [ \"iot:Publish\", \"iot:Receive\", \"iot:Subscribe\", \"iot:Connect\" ], \"Resource\": [ \"*\" ] } ] }", "policyVersionId": "1" }
  3. Di jendela Amazon EC2 Instance Connect, lampirkan kebijakan ke sertifikat perangkat virtual Anda dengan menggunakan perintah berikut.

    aws iot attach-policy \ --policy-name "MyIotThingPolicy" \ --target "certificateArn"

    Jika berhasil, perintah ini tidak menampilkan output apapun.

Instal AWS IoT Perangkat SDK untuk JavaScript

Di bagian ini, Anda akan menginstal AWS IoT Perangkat SDK untuk JavaScript, yang berisi kode yang dapat digunakan aplikasi untuk berkomunikasi AWS IoT dan program sampel. Untuk informasi lebih lanjut, lihat AWS IoT Perangkat SDK untuk JavaScript GitHub repositori.

Untuk menginstal AWS IoT Perangkat SDK untuk JavaScript instans Linux Anda
  1. Di jendela Amazon EC2 Instance Connect, kloning AWS IoT Perangkat SDK untuk JavaScript repositori ke direktori aws-iot-device-sdk-js-v2 direktori home Anda dengan menggunakan perintah ini.

    cd ~ git clone https://github.com/aws/aws-iot-device-sdk-js-v2.git
  2. Arahkan ke aws-iot-device-sdk-js-v2 direktori yang Anda buat pada langkah sebelumnya.

    cd aws-iot-device-sdk-js-v2
  3. Gunakan npm untuk menginstal file. SDK

    npm install

Jalankan aplikasi sampel

Perintah di bagian berikutnya mengasumsikan bahwa file kunci dan sertifikat Anda disimpan di perangkat virtual Anda seperti yang ditunjukkan dalam tabel ini.

Nama berkas sertifikat

File

Jalur file

Kunci privat

~/certs/private.pem.key

Sertifikat perangkat

~/certs/device.pem.crt

Sertifikat Root CA

~/certs/Amazon-root-CA-1.pem

Di bagian ini, Anda akan menginstal dan menjalankan aplikasi pub-sub.js sampel yang ditemukan di aws-iot-device-sdk-js-v2/samples/node direktori AWS IoT Perangkat SDK untuk JavaScript. Aplikasi ini menunjukkan bagaimana perangkat, EC2 instans Amazon Anda, menggunakan MQTT pustaka untuk mempublikasikan dan berlangganan MQTT pesan. Aplikasi pub-sub.js sampel berlangganan topiktopic_1, menerbitkan 10 pesan ke topik itu dan menampilkan pesan saat diterima dari broker pesan.

Untuk menginstal dan menjalankan aplikasi sampel
  1. Di jendela Amazon EC2 Instance Connect, navigasikan ke aws-iot-device-sdk-js-v2/samples/node/pub_sub direktori yang SDK dibuat dan instal aplikasi sampel dengan menggunakan perintah ini.

    cd ~/aws-iot-device-sdk-js-v2/samples/node/pub_sub npm install
  2. Di jendela Amazon EC2 Instance Connect, dapatkan your-iot-endpoint From AWS IoT dengan menggunakan perintah ini.

    aws iot describe-endpoint --endpoint-type iot:Data-ATS
  3. Di jendela Amazon EC2 Instance Connect, sisipkan your-iot-endpoint seperti yang ditunjukkan dan jalankan perintah ini.

    node dist/index.js --topic topic_1 --ca_file ~/certs/Amazon-root-CA-1.pem --cert ~/certs/device.pem.crt --key ~/certs/private.pem.key --endpoint your-iot-endpoint

Aplikasi sampel:

  1. Terhubung ke AWS IoT Core untuk akun Anda.

  2. Berlangganan topik pesan, topic_1, dan menampilkan pesan yang diterimanya pada topik itu.

  3. Menerbitkan 10 pesan ke topik, topic_1.

  4. Menampilkan output yang mirip dengan berikut ini:

    Publish received. topic:"topic_1" dup:false qos:1 retain:false {"message":"Hello world!","sequence":1} Publish received. topic:"topic_1" dup:false qos:1 retain:false {"message":"Hello world!","sequence":2} Publish received. topic:"topic_1" dup:false qos:1 retain:false {"message":"Hello world!","sequence":3} Publish received. topic:"topic_1" dup:false qos:1 retain:false {"message":"Hello world!","sequence":4} Publish received. topic:"topic_1" dup:false qos:1 retain:false {"message":"Hello world!","sequence":5} Publish received. topic:"topic_1" dup:false qos:1 retain:false {"message":"Hello world!","sequence":6} Publish received. topic:"topic_1" dup:false qos:1 retain:false {"message":"Hello world!","sequence":7} Publish received. topic:"topic_1" dup:false qos:1 retain:false {"message":"Hello world!","sequence":8} Publish received. topic:"topic_1" dup:false qos:1 retain:false {"message":"Hello world!","sequence":9} Publish received. topic:"topic_1" dup:false qos:1 retain:false {"message":"Hello world!","sequence":10}

Jika Anda mengalami masalah dalam menjalankan aplikasi sampel, tinjauMemecahkan masalah dengan aplikasi sampel.

Anda juga dapat menambahkan --verbosity debug parameter ke baris perintah sehingga aplikasi sampel menampilkan pesan terperinci tentang apa yang dilakukannya. Informasi itu mungkin memberi Anda bantuan yang Anda butuhkan untuk memperbaiki masalah.

Melihat pesan dari aplikasi contoh di AWS IoT konsol

Anda dapat melihat pesan aplikasi sampel saat mereka melewati broker pesan dengan menggunakan klien MQTT pengujian di AWS IoT konsol.

Untuk melihat MQTT pesan yang diterbitkan oleh aplikasi sampel
  1. UlasanLihat MQTT pesan dengan AWS IoT MQTTklien. Ini membantu Anda mempelajari cara menggunakan klien MQTT pengujian di AWS IoT konsol untuk melihat MQTT pesan saat mereka melewati broker pesan.

  2. Buka klien MQTT uji di AWS IoT konsol.

  3. Di Berlangganan topik, Berlangganan topik, topic_1.

  4. Di jendela Amazon EC2 Instance Connect, jalankan aplikasi sampel lagi dan tonton pesan di klien MQTT pengujian di AWS IoT konsol.

    cd ~/aws-iot-device-sdk-js-v2/samples/node/pub_sub node dist/index.js --topic topic_1 --ca_file ~/certs/Amazon-root-CA-1.pem --cert ~/certs/device.pem.crt --key ~/certs/private.pem.key --endpoint your-iot-endpoint

Untuk informasi lebih lanjut tentang MQTT dan bagaimana AWS IoT Core mendukung protokol, lihat MQTT.