View a markdown version of this page

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 instance Amazon EC2 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 Penyiapan Akun AWS sebelum Anda melanjutkan.

Menyiapkan instans Amazon EC2

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

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

Untuk meluncurkan sebuah instans
  1. Buka konsol Amazon EC2 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 Aplikasi dan Gambar OS (Amazon Machine Image), pilih template AMI untuk instance Anda, seperti Amazon Linux 2 AMI (HVM). Perhatikan bahwa AMI ini ditandai “Memenuhi syarat tingkat gratis”.

  5. Di bagian Jenis Instance, 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 Pasangan kunci (login), pilih nama pasangan kunci dari daftar drop-down atau pilih Buat pasangan kunci baru untuk membuat yang baru. Saat membuat pasangan kunci 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 Lanjutkan tanpa pasangan kunci. 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 Luncurkan 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 instans dimulai, statusnya akan berubah menjadi running dan instans tersebut menerima sebuah nama DNS publik. (Jika kolom Public DNS (IPv4) disembunyikan, pilih Show/Hide Kolom (ikon berbentuk roda gigi) di sudut kanan atas halaman dan kemudian pilih Public 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 melewati pemeriksaan statusnya, lanjutkan ke prosedur berikutnya dan sambungkan ke instans tersebut.

Untuk menyambung ke instans Anda

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

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

  2. Pada 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 instans Amazon EC2 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 rilis LTS 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 sudah diinstal dan berjalan dengan benar dengan 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: Menyi Node.js apkan Instans Amazon EC2.

Untuk mengkonfigurasi AWS CLI

Instans Amazon EC2 Anda sudah dimuat sebelumnya dengan. AWS CLI Namun, Anda harus melengkapi AWS CLI profil Anda. Untuk informasi selengkapnya tentang cara mengkonfigurasi CLI Anda, lihat Mengon figurasi AWS CLI.

  1. Contoh berikut menunjukkan nilai sampel. Ganti dengan nilai-nilai Anda sendiri. Anda dapat menemukan nilai-nilai ini di AWS konsol Anda di info akun Anda di bawah Kreden SIAL Keamanan .

    Di jendela Amazon EC2 Instance Connect, 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 Anda dengan perintah ini:

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

    Jika Anda AWS CLI dikonfigurasi dengan benar, perintah harus mengembalikan alamat titik akhir dari alamat Anda 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 pada 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 AWS IoT.

  • Sertifikat untuk mengotentikasi perangkat virtual Anda.

  • Dokumen kebijakan untuk mengotorisasi perangkat virtual Anda untuk terhubung ke AWS IoT, dan untuk menerbitkan, menerima, dan berlangganan pesan.

Untuk membuat AWS IoT objek benda di instance Linux Anda

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

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

    aws iot create-thing --thing-name "MyIotThing"
  2. Respons JSON 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 di instance Linux Anda

Per create-keys-and-certificate intah ini membuat sertifikat klien yang ditandatangani oleh otoritas sertifikat Amazon Root. Sertifikat ini digunakan untuk mengotentikasi 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 otoritas sertifikat (CA) Amazon 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 file kunci pribadi, kunci publik, dan X.509 sertifikat. 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 membutuhkannya untuk melampirkan sertifikat Anda ke barang Anda dan untuk 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, lampirkan objek benda Anda ke sertifikat yang baru saja Anda buat dengan menggunakan perintah berikut certificateArn dan respons dari perintah sebelumnya.

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

    Jika berhasil, perintah ini tidak menampilkan output apa pun.

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 menyimpan 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 dengan menggunakan perintah berikut.

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

    Output:

    { "policyName": "MyIotThingPolicy", "policyArn": "arn:aws:iot:us-east-1: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 apa pun.

Instal AWS IoT SDK Perangkat untuk JavaScript

Di bagian ini, Anda akan menginstal AWS IoT Device SDK untuk JavaScript, yang berisi kode yang dapat digunakan aplikasi untuk berkomunikasi dengan AWS IoT dan program sampel. Untuk informasi selengkapnya, lihat AWS IoT Device 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 Device SDK untuk JavaScript repositori ke aws-iot-device-sdk-js-v2 direktori 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 SDK.

    npm install

Jalankan aplikasi sampel

Perintah di bagian selanjutnya 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 CA root

~/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 Dev AWS IoT ice SDK untuk JavaScript. Aplikasi ini menunjukkan bagaimana perangkat, instans Amazon EC2 Anda, menggunakan pustaka MQTT untuk menerbitkan dan berlangganan pesan MQTT. Aplikasi pub-sub.js contoh berlangganan topik,topic_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 dibuat SDK 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 Anda, dapatkan your-iot-endpoint dari AWS IoT dengan menggunakan perintah ini.

    aws iot describe-endpoint --endpoint-type iot:Data-ATS
  3. Di jendela Amazon EC2 Instance Connect Anda, masukkan 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

Contoh aplikasi:

  1. Terhubung ke AWS IoT Core akun Anda.

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

  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 contoh aplikasi saat melewati broker pesan dengan menggunakan klien uji MQTT di AWS IoT konsol.

Untuk melihat pesan MQTT yang diterbitkan oleh aplikasi sampel
  1. TinjauanLihat pesan MQTT dengan AWS IoT Klien MQTT. Ini membantu Anda mempelajari cara menggunakan klien uji MQTT di AWS IoT konsol untuk melihat pesan MQTT saat melewati broker pesan.

  2. Buka klien uji MQTT 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 uji MQTT 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 MQ TT.