

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

# Menerapkan aplikasi kontainer saat AWS IoT Greengrass V2 berjalan sebagai wadah Docker
<a name="deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container"></a>

*Salih Bakir, Giuseppe Di Bella, dan Gustav Svalander, Amazon Web Services*

## Ringkasan
<a name="deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container-summary"></a>

AWS IoT Greengrass Version 2, saat diterapkan sebagai wadah Docker, secara native tidak mendukung menjalankan wadah aplikasi Docker. Pola ini menunjukkan kepada Anda cara membuat gambar kontainer khusus berdasarkan versi terbaru AWS IoT Greengrass V2 yang mengaktifkan fungsionalitas Docker-in-Docker (DiND). Dengan DiND, Anda dapat menjalankan aplikasi kontainer dalam lingkungan. AWS IoT Greengrass V2 

Anda dapat menerapkan pola ini sebagai solusi yang berdiri sendiri atau mengintegrasikannya dengan platform orkestrasi kontainer seperti Amazon ECS Anywhere. Di salah satu model penerapan, Anda mempertahankan AWS IoT Greengrass V2 fungsionalitas penuh termasuk kemampuan pemrosesan AWS IoT SiteWise Edge, sekaligus mengaktifkan penerapan berbasis container yang dapat diskalakan. 

## Prasyarat dan batasan
<a name="deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container-prereqs"></a>

**Prasyarat**
+ Aktif Akun AWS.
+ [Untuk AWS IoT Greengrass Version 2 prasyarat umum, lihat Prasyarat dalam dokumentasi.](https://docs.aws.amazon.com/greengrass/v2/developerguide/getting-started-prerequisites.html) AWS IoT Greengrass Version 2 
+ Docker Engine, diinstal dan dikonfigurasi di Linux, macOS, atau Windows.
+ Docker Compose (jika Anda menggunakan antarmuka baris perintah Docker Compose (CLI) untuk menjalankan image Docker).
+ Sebuah sistem operasi Linux.
+ Hypervisor dengan server host yang mendukung virtualisasi.
+ Persyaratan sistem:
  + 2 GB RAM (minimum)
  + 5 GB ruang disk yang tersedia (minimum)
  + Untuk AWS IoT SiteWise Edge, CPU quad-core x86\$164 dengan RAM 16 GB dan ruang disk yang tersedia 50 GB. Untuk informasi selengkapnya tentang pemrosesan AWS IoT SiteWise [data, lihat Persyaratan paket pemrosesan data](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/configure-gateway-ggv2.html#w2aac17c19c13b7) dalam AWS IoT SiteWise dokumentasi.

**Versi produk**
+ AWS IoT Greengrass Version 2 versi 2.5.3 atau yang lebih baru
+ Docker-in-Docker versi 1.0.0 atau yang lebih baru
+ Docker Compose versi 1.22 atau yang lebih baru
+ Docker Engine versi 20.10.12 atau yang lebih baru

**Batasan**
+ Beberapa Layanan AWS tidak tersedia di semua Wilayah AWS. Untuk ketersediaan Wilayah, lihat [AWS Layanan menurut Wilayah](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Untuk titik akhir tertentu, lihat [Titik akhir dan kuota layanan](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html), dan pilih tautan untuk layanan.

## Arsitektur
<a name="deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container-architecture"></a>

**Tumpukan teknologi target**
+ **Sumber data** — Perangkat IoT, sensor, atau peralatan industri yang menghasilkan data untuk diproses
+ **AWS IoT Greengrass V2**— Berjalan sebagai wadah Docker dengan D-in-D kemampuan, diterapkan pada infrastruktur tepi
+ Aplikasi **kontainer - Aplikasi** khusus yang berjalan di dalam AWS IoT Greengrass V2 lingkungan sebagai wadah Docker bersarang
+ **(Opsional) Amazon ECS** Anywhere — Orkestrasi kontainer yang mengelola penerapan kontainer AWS IoT Greengrass V2 
+ **Lainnya Layanan AWS** - AWS IoT Core, AWS IoT SiteWise, dan lainnya Layanan AWS untuk pemrosesan dan manajemen data

**Arsitektur target**

Diagram berikut menunjukkan contoh arsitektur penerapan target yang menggunakan Amazon ECS Anywhere, yang merupakan alat manajemen kontainer.

![\[Arsitektur penerapan menggunakan Amazon ECS Anywhere.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/2ecf5354-40e0-4fd9-9798-086719059784/images/5ed2652e-9604-4809-8962-b167e1991658.png)


Diagram menunjukkan alur kerja berikut:

**1: Penyimpanan gambar kontainer** - Amazon ECR menyimpan gambar AWS IoT Greengrass kontainer dan wadah aplikasi khusus apa pun yang diperlukan untuk pemrosesan tepi.

**2** dan **3: Penerapan kontainer** — Amazon ECS Anywhere menyebarkan AWS IoT Greengrass image container dari Amazon ECR ke lokasi edge, mengelola siklus hidup kontainer dan proses penerapan.

**4: Penerapan komponen** — AWS IoT Greengrass Inti yang digunakan secara otomatis menyebarkan komponen yang relevan berdasarkan konfigurasinya. Komponen termasuk AWS IoT SiteWise Edge dan komponen pemrosesan tepi lain yang diperlukan dalam lingkungan kontainer.

**5: Penyerapan data** — Setelah sepenuhnya dikonfigurasi, AWS IoT Greengrass mulailah menelan telemetri dan data sensor dari berbagai sumber data IoT di lokasi tepi.

**6: Pemrosesan data dan integrasi cloud** — AWS IoT Greengrass Inti kontainer memproses data secara lokal menggunakan komponen yang digunakan (termasuk AWS IoT SiteWise Edge untuk data industri). Kemudian, ia mengirimkan data yang diproses ke AWS Cloud layanan untuk analisis dan penyimpanan lebih lanjut.

## Alat
<a name="deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container-tools"></a>

**Layanan AWS**
+ [Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch-type-external.html) Anywhere membantu Anda menerapkan, menggunakan, dan mengelola tugas dan layanan Amazon ECS di infrastruktur Anda sendiri.
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html) menyediakan kapasitas komputasi yang dapat diskalakan di. AWS Cloud Anda dapat meluncurkan server virtual sebanyak yang Anda butuhkan dan dengan cepat meningkatkannya ke atas atau ke bawah.
+ [Amazon Elastic Container Registry (Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html)) adalah layanan registri gambar kontainer terkelola yang aman, terukur, dan andal.
+ [AWS IoT Greengrass](https://docs.aws.amazon.com/greengrass/v2/developerguide/what-is-iot-greengrass.html) adalah waktu aktif edge Internet untuk Segala (IoT) sumber terbuka dan layanan cloud yang membantu Anda membangun, men-deploy, dan mengelola aplikasi IoT pada perangkat Anda.
+ [AWS IoT SiteWise](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/what-is-sitewise.html)membantu Anda mengumpulkan, memodelkan, menganalisis, dan memvisualisasikan data dari peralatan industri dalam skala besar.

**Alat lainnya**
+ [Docker](https://www.docker.com/) adalah seperangkat produk platform as a service (PaaS) yang menggunakan virtualisasi pada tingkat sistem operasi untuk mengirimkan perangkat lunak dalam wadah.
+ [Docker Compose](https://docs.docker.com/compose/) adalah alat untuk mendefinisikan dan menjalankan aplikasi multi-container.
+ [Docker Engine](https://docs.docker.com/engine/) adalah teknologi kontainerisasi open source untuk membangun dan mengkontainerisasi aplikasi.

**Repositori kode**

Kode untuk pola ini tersedia di Docker-in-Docker repositori GitHub [AWS IoT Greengrass v2](https://github.com/aws-samples/aws-iot-greengrass-docker-in-docker).

## Epik
<a name="deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container-epics"></a>

### Bangun AWS IoT Greengrass V2 Docker-in-Docker gambar
<a name="build-the-gg2-docker-in-docker-image"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Kloning dan arahkan ke repositori. | Untuk mengkloning repositori, gunakan perintah berikut: `git clone https://github.com/aws-samples/aws-iot-greengrass-v2-docker-in-docker.git`Untuk menavigasi ke `docker` direktori, gunakan perintah berikut:`cd aws-iot-greengrass-v2-docker-in-docker/docker` | DevOps insinyur, AWS DevOps | 
| membuat gambar Docker. | Untuk membuat image Docker dengan versi default (terbaru), jalankan perintah berikut:`docker build -t x86_64/aws-iot-greengrass:latest .`Atau, untuk membangun image Docker dengan versi tertentu, jalankan perintah berikut:`docker build --build-arg GREENGRASS_RELEASE_VERSION=2.12.0 -t x86_64/aws-iot-greengrass:2.12.0 .`Untuk memverifikasi build, jalankan perintah berikut:`docker images \| grep aws-iot-greengrass`  | AWS DevOps, DevOps insinyur, Pengembang aplikasi | 
| (Opsional) Dorong ke Amazon ECR. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html) | Pengembang aplikasi, AWS DevOps, DevOps insinyur | 

### Konfigurasikan AWS kredensional
<a name="configure-aws-credentials"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Pilih metode otentikasi. | Pilih salah satu opsi berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html) | Administrator AWS | 
| Konfigurasikan metode otentikasi. | Untuk metode otentikasi yang Anda pilih, gunakan panduan konfigurasi berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html) | Administrator AWS | 

### Jalankan dengan Docker Compose
<a name="run-with-docker-compose"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Konfigurasi `docker-compose.yml`. | Perbarui `docker-compose.yml` file dengan variabel lingkungan sebagai berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html) | DevOps insinyur | 
| Mulai dan verifikasi wadah. | Untuk memulai di latar depan, jalankan perintah berikut:`docker-compose up --build`Atau, untuk memulai di latar belakang, jalankan perintah berikut:`docker-compose up --build -d`Untuk memverifikasi status, jalankan perintah berikut:`docker-compose ps`Untuk memantau log, jalankan perintah berikut:`docker-compose logs -f` | DevOps insinyur | 

### Jalankan dengan Docker CLI
<a name="run-with-docker-cli"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Jalankan kontainer dengan Docker CLI. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html) | DevOps insinyur | 
| Verifikasi wadah. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html) | DevOps insinyur | 

### Kelola aplikasi kontainer
<a name="manage-containerized-applications"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Menyebarkan aplikasi. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html) | Pengembang aplikasi | 
| Akses dan uji Docker-in-Docker. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html) | DevOps insinyur | 

### (Opsional) Integrasikan dengan Amazon ECS Anywhere
<a name="optional-integrate-with-ecs-anywhere"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Siapkan cluster Amazon ECS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html) | Administrator AWS | 
| Menerapkan tugas Amazon ECS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html) | Administrator AWS | 

### Berhenti dan bersihkan
<a name="stop-and-cleanup"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Hentikan wadah. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html) | DevOps insinyur | 

## Pemecahan masalah
<a name="deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container-troubleshooting"></a>


| Isu | Solusi | 
| --- | --- | 
| Penampung gagal memulai dengan kesalahan izin. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html)`--privileged`memberikan hak istimewa yang diperluas ke wadah. | 
| Penyediaan gagal dengan kesalahan kredensi. | Untuk memverifikasi kredenal dikonfigurasi dengan benar, gunakan langkah-langkah berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html)Pastikan bahwa izin IAM mencakup`iot:CreateThing`,,, `iot:CreatePolicy` `iot:AttachPolicy``iam:CreateRole`, dan. `iam:AttachRolePolicy` | 
| Tidak dapat terhubung ke daemon Docker di dalam wadah. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html) | 
| Kontainer kehabisan ruang disk. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html)Pastikan ruang disk minimum: 5 GB untuk operasi dasar dan 50 GB untuk AWS IoT SiteWise Edge | 
| Membangun masalah. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html) | 
| Masalah konektivitas jaringan. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html)Verifikasi bahwa firewall memungkinkan lalu lintas HTTPS (443) dan MQTT (8883) keluar. | 
| Komponen Greengrass gagal diterapkan. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html)Periksa log khusus komponen di direktori. `/greengrass/v2/logs/` | 
| Kontainer keluar segera setelah memulai. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html)Verifikasi semua variabel lingkungan yang diperlukan diatur dengan benar jika`PROVISION=true`. Pastikan `--init` bendera digunakan saat memulai wadah. | 

## Sumber daya terkait
<a name="deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container-resources"></a>

**AWS sumber daya**
+ [Layanan Kontainer Elastis Amazon](https://aws.amazon.com/ecs/)
+ [Konfigurasikan pemrosesan data tepi untuk AWS IoT SiteWise model dan aset](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/edge-processing.html)
+ [Apa itu AWS IoT Greengrass](https://docs.aws.amazon.com/greengrass/v2/developerguide/what-is-iot-greengrass.html)

**Sumber daya lainnya**
+ [Dokumentasi Docker](https://docs.docker.com/)

## Informasi tambahan
<a name="deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container-additional"></a>
+ Untuk pemrosesan data AWS IoT SiteWise Edge, Docker harus tersedia di AWS IoT Greengrass lingkungan.
+ Untuk menjalankan kontainer bersarang, Anda harus menjalankan AWS IoT Greengrass kontainer dengan kredensi tingkat administrator.