Dalam modul ini, Anda akan membangun citra aplikasi node.js monolitik Anda dan mendorongnya ke Amazon Elastic Container Registry. Mulai Membangun

penerapan ke amazon ecr

Kontainer memungkinkan Anda untuk mengemas kode aplikasi, konfigurasi, dan dependensi dengan mudah menjadi blok bangunan yang memberikan konsistensi lingkungan, efisiensi operasional, produktivitas pengembang, dan kontrol versi. Kontainer dapat membantu memastikan bahwa aplikasi diterapkan dengan cepat, andal, dan konsisten terlepas dari lingkungan penerapan.

ikhtisar arsitektur

Kecepatan
Meluncurkan kontainer dengan rilis kode baru dapat dilakukan tanpa overhead penerapan yang signifikan. Kecepatan operasional ditingkatkan, karena kode yang dibangun di kontainer pada mesin lokal pengembang dapat dengan mudah dipindahkan ke server tes hanya dengan memindahkan kontainer. Selama pembangunan, kontainer ini dapat ditautkan ke kontainer lain yang diperlukan untuk menjalankan tumpukan aplikasi.

Kontrol Dependensi & Pipeline yang Ditingkatkan
Citra kontainer Docker adalah titik waktu penangkapan kode aplikasi dan dependensi. Hal ini memungkinkan pengaturan rekayasa untuk membuat pipeline standar untuk siklus masa pakai aplikasi. Misalnya:

  1. Pengembang membangun dan menjalankan kontainer secara lokal.
  2. Server integrasi berkelanjutan menjalankan kontainer yang sama dan mengeksekusi uji integrasi untuk memastikannya sesuai dengan ekspektasi.
  3. Kontainer yang sama dikirimkan ke lingkungan penyiapan tempat perilaku runtime dapat diperiksa menggunakan tes beban atau QA manual.
  4. Kontainer yang sama dikirimkan ke produksi.

Mampu membangun, menguji, mengirim, dan menjalankan kontainer yang sama persis melalui semua tahap integrasi dan pipeline penerapan menjadikan pengiriman aplikasi yang berkualitas tinggi dan andal jauh lebih mudah.

Densitas & Efisiensi Sumber Daya
Kontainer memfasilitasi peningkatan efisiensi sumber daya dengan memungkinkan beberapa proses heterogen berjalan pada satu sistem tunggal. Efisiensi sumber daya adalah hasil alami dari teknik isolasi dan alokasi yang digunakan kontainer. Kontainer dapat dibatasi untuk mengonsumsi sejumlah CPU dan memori host tertentu. Dengan memahami sumber daya apa yang dibutuhkan kontainer dan sumber daya apa yang tersedia dari server host yang mendasarinya, Anda dapat mengukur dengan tepat sumber daya komputasi yang Anda gunakan dengan host yang lebih kecil atau meningkatkan densitas proses yang berjalan pada satu host besar, meningkatkan ketersediaan dan mengoptimalkan konsumsi sumber daya.

Fleksibilitas
Fleksibilitas kontainer Docker berdasarkan portabilitasnya, kemudahan penerapan, dan ukuran yang kecil. Berbeda dengan penginstalan dan konfigurasi yang diperlukan pada VM, layanan pengemasan di dalam kontainer memungkinkannya untuk dipindahkan dengan mudah di antara host, terisolasi dari kegagalan layanan lain yang berdekatan, dan dilindungi dari patch yang salah atau peningkatan perangkat lunak pada sistem host. 

Waktu Penyelesaian: 20 menit

Layanan yang Digunakan:


Untuk bagian pertama tutorial ini, Anda akan membangun citra kontainer Docker untuk aplikasi node.js monolitik Anda dan mendorongnya ke Amazon Elastic Container Registry (Amazon ECR). Pilih setiap nomor langkah untuk memperluas bagian.

break-the-monolith
  • Langkah 1. Dapatkan Penyiapan

    Dalam beberapa langkah berikutnya, Anda akan menggunakan Docker, Github, Amazon Elastic Container Service (Amazon ECS), dan Amazon ECR untuk menerapkan kode ke kontainer. Untuk menyelesaikan langkah-langkah ini, pastikan Anda memiliki alat berikut.

    1. Memiliki akun AWS: Jika Anda belum memiliki akun di AWS, Anda dapat daftar di sini. Semua latihan dalam tutorial ini dirancang untuk tercakup di bawah AWS Tingkat Gratis.
      ⚐ Catatan: Beberapa layanan yang akan Anda gunakan mungkin mengharuskan akun Anda aktif selama lebih dari 12 jam. Jika Anda mengalami kesulitan dengan layanan apa pun dan telah membuat akun baru, tunggu beberapa jam dan coba lagi.
    2. Instal Docker: Anda akan menggunakan Docker untuk membangun file citra yang akan berjalan di kontainer Anda. Docker adalah proyek sumber terbuka. Anda dapat mengunduhnya untuk Mac atau Windows.
      Setelah Docker diinstal, Anda dapat memastikan bahwa Docker berjalan dengan memasukkan versi Docker -- di terminal. Nomor versi harus menampilkan, misalnya: versi Docker 19.03.5, buatan 633a0ea.
    3. Instal AWS CLI:
      • Anda akan menggunakan AWS Command Line Interface (AWS CLI) untuk mendorong citra ke Amazon ECR. Anda dapat mempelajari dan mengunduh AWS CLI di sini.
      • Setelah AWS CLI diinstal, pastikan AWS CLI berjalan dengan memasukkan versi aws -- di terminal. Nomor versi harus tampak sebagai berikut, misalnya: aws-cli/1.16.217 Python/2.7.16 Darwin/18.7.0 botocore/1.12.207.
      • Jika Anda telah menginstal AWS CLI, jalankan perintah berikut di terminal untuk memastikan AWS CLI diperbarui ke versi terbaru: pip install awscli -- peningkatan -- pengguna
      • Jika Anda belum pernah menggunakan AWS CLI sebelumnya, Anda mungkin perlu mengonfigurasi kredensial Anda.
    4. Memiliki editor teks: Jika Anda belum memiliki editor teks untuk pengodean, instal ke lingkungan lokal Anda. Atom adalah editor teks sumber terbuka yang mudah dari GitHub yang populer di kalangan pengembang.
  • Langkah 2. Unduh & Buka Proyek

    Unduh kode dari GitHub: Navigasi ke https://github.com/awslabs/amazon-ecs-nodejs-microservices lalu pilih Kloning atau Unduh untuk mengunduh repositori GitHub ke lingkungan lokal Anda. Anda juga dapat menggunakan Desktop GitHub atau Git untuk mengkloning repositori.

    Buka file proyek: Mulai Atom, pilih Tambahkan Folder Proyek, lalu pilih folder tempat Anda menyimpan repositori amazon-ecs-nodejs-layanan mikro. Hal ini akan menambahkan keseluruhan proyek ke Atom sehingga Anda dapat mengerjakannya dengan mudah.

    Di folder proyek, Anda seharusnya melihat folder untuk infrastruktur dan layanan. Infrastruktur menyimpan kode konfigurasi infrastruktur AWS CloudFormation yang akan Anda gunakan di langkah berikutnya. Layanan berisi kode yang membentuk aplikasi node.js.

    Luangkan beberapa menit untuk meninjau file dan membiasakan diri dengan berbagai aspek aplikasi, termasuk database db.json, server server.jspackage.json, dan Dockerfile aplikasi.

    proyek layanan mikro
  • Langkah 3. Menyediakan Repositori

    Buat repositori:

    • Navigasi ke konsol Amazon ECR.
    • Di halaman Repositori, pilih Buat Repositori.
    • Di halaman Buat repositori, masukkan nama berikut untuk repositori Anda: api.
      ⚐ Catatan: Di bawah Ketentuan tag, biarkan pengaturan default.
    • Pilih Buat repositori.

    Setelah repositori dibuat, pesan konfirmasi akan menampilkan alamat repositori. Alamat repositori dalam format berikut: [account-ID].dkr.ecr.[region].amazonaws.com/[repo-name]. [account-ID], [region], dan [repo-name] akan spesifik untuk pengaturan Anda.

    ⚐ Catatan: Anda akan memerlukan alamat repositori di seluruh tutorial ini.

    buat
  • Langkah 4. Bangun & Dorong Citra Docker

    Akses terminal Anda dan buka direktori berikut: ~/amazon-ecs-nodejs-microservices/2-containerized/services/api.

    Gunakan terminal untuk mengautentikasi login Docker:

    1. Jalankan $(aws ecr get-login --no-include-email --region [your-region]). Ganti [your-region], contohnya: $(aws ecr get-login --no-include-email --region us-west-2). Jika diperlukan, konfigurasikan kredensial Anda.
      Jika autentikasi berhasil, Anda akan menerima pesan konfirmasi: Login Berhasil.
    2. Untuk membangun citra, jalankan perintah berikut di terminal: bangun docker -t api .
      ⚐ Catatan: Tanda titik (.) setelah api diperlukan.
    3. Setelah membangun selesai, tag citra sehingga Anda dapat mendorongnya ke repositori: docker tag api:latest [account-ID].dkr.ecr.[region].amazonaws.com/api:v1 
      ⚐ Catatan: Ganti placeholder [account-ID] dan [region] dengan informasi khusus Anda.
      ⚐ Kiat Pro:  :v1 mewakili versi bangunan citra. Setiap kali Anda membangun citra, Anda harus menambah nomor versi ini. Jika menggunakan skrip, Anda dapat menggunakan nomor otomatis, seperti cap waktu untuk memberi tag pada citra. Ini adalah praktik terbaik yang memungkinkan Anda dengan mudah kembali ke pembangunan citra kontainer sebelumnya di masa depan.
    4. Dorong citra ke Amazon ECR dengan menjalankan: docker push [account-id].dkr.ecr.[region].amazonaws.com/api:v1
      ⚐ Catatan: ganti placeholder [account-ID] dan [region] dengan informasi khusus Anda.

    Jika Anda menavigasi ke repositori Amazon ECR, Anda seharusnya melihat citra yang diberi tag v1.

    tag citra Amazon ECR