Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Memulai dengan AWS App Mesh dan Amazon EC2
penting
Pemberitahuan akhir dukungan: Pada 30 September 2026, AWS akan menghentikan dukungan untuk. AWS App Mesh Setelah 30 September 2026, Anda tidak akan lagi dapat mengakses AWS App Mesh konsol atau AWS App Mesh sumber daya. Untuk informasi selengkapnya, kunjungi posting blog ini Ber migrasi dari AWS App Mesh ke Amazon ECS Service Connect.
Topik ini membantu Anda menggunakan AWS App Mesh dengan layanan aktual yang berjalan di Amazon EC2. Tutorial ini mencakup fitur dasar dari beberapa jenis sumber daya App Mesh.
Skenario
Untuk mengilustrasikan cara menggunakan App Mesh, asumsikan bahwa Anda memiliki aplikasi dengan karakteristik berikut:
-
Terdiri dari dua layanan bernama
serviceAdanserviceB. -
Kedua layanan terdaftar ke namespace bernama
apps.local. -
ServiceAberkomunikasi denganserviceBlebih dari HTTP/2, port 80. -
Anda telah menerapkan versi 2
serviceBdan mendaftarkannya dengan namaserviceBv2diapps.localnamespace.
Anda memiliki persyaratan berikut:
-
Anda ingin mengirim 75 persen lalu lintas dari
serviceAkeserviceBdan 25 persen lalu lintas ke yangserviceBv2pertama. Dengan hanya mengirim 25 persen keserviceBv2, Anda dapat memvalidasi bahwa itu bebas bug sebelum Anda mengirim 100 persen lalu lintas dariserviceA. -
Anda ingin dapat dengan mudah menyesuaikan bobot lalu lintas sehingga 100 persen lalu lintas masuk
serviceBv2setelah terbukti dapat diandalkan. Setelah semua lalu lintas dikirim keserviceBv2, Anda ingin menghentikannya.serviceB -
Anda tidak ingin mengubah kode aplikasi yang ada atau pendaftaran penemuan layanan untuk layanan Anda yang sebenarnya untuk memenuhi persyaratan sebelumnya.
Untuk memenuhi kebutuhan Anda, Anda memutuskan untuk membuat mesh layanan App Mesh dengan layanan virtual, node virtual, router virtual, dan rute. Setelah menerapkan mesh Anda, Anda memperbarui layanan Anda untuk menggunakan proxy Envoy. Setelah diperbarui, layanan Anda berkomunikasi satu sama lain melalui proxy Envoy daripada langsung satu sama lain.
Prasyarat
App Mesh mendukung layanan Linux yang terdaftar dengan DNS, AWS Cloud Map, atau keduanya. Untuk menggunakan panduan memulai ini, kami sarankan Anda memiliki tiga layanan yang sudah ada yang terdaftar dengan DNS. Anda dapat membuat jaring layanan dan sumber dayanya meskipun layanan tidak ada, tetapi Anda tidak dapat menggunakan mesh sampai Anda telah menerapkan layanan aktual.
Jika belum menjalankan layanan, Anda dapat meluncurkan instans Amazon EC2 dan menyebarkan aplikasi ke instans tersebut. Untuk informasi selengkapnya, lihat Tutorial: Memulai dengan instans Amazon EC2 Linux di Panduan Pengguna Amazon EC2. Langkah-langkah yang tersisa mengasumsikan bahwa layanan aktual serviceA diberi serviceB nama,, serviceBv2 dan bahwa semua layanan dapat ditemukan melalui namespace bernama. apps.local
Langkah 1: Buat layanan mesh dan virtual
Mesh layanan adalah batas logis untuk lalu lintas jaringan antara layanan yang berada di dalamnya. Untuk informasi selengkapnya, lihat Jala Layanan. Layanan virtual adalah abstraksi dari layanan aktual. Untuk informasi selengkapnya, lihat Layanan virtual.
Buat sumber daya berikut:
-
Sebuah mesh bernama
apps, karena semua layanan dalam skenario terdaftar keapps.localnamespace. -
Sebuah layanan virtual bernama
serviceb.apps.local, karena layanan virtual mewakili layanan yang dapat ditemukan dengan nama itu, dan Anda tidak ingin mengubah kode Anda untuk mereferensikan nama lain. Sebuah layanan virtual bernamaservicea.apps.localditambahkan pada langkah selanjutnya.
Anda dapat menggunakan Konsol Manajemen AWS atau AWS CLI versi 1.18.116 atau lebih tinggi atau 2.0.38 atau lebih tinggi untuk menyelesaikan langkah-langkah berikut. Jika menggunakan AWS CLI, gunakan aws --version perintah untuk memeriksa AWS CLI versi yang Anda instal. Jika Anda tidak menginstal versi 1.18.116 atau lebih tinggi atau 2.0.38 atau lebih tinggi, maka Anda harus menginstal atau memperbarui. AWS CLI Pilih tab untuk alat yang ingin Anda gunakan.
Langkah 2: Buat simpul virtual
Node virtual bertindak sebagai penunjuk logis ke layanan aktual. Untuk informasi selengkapnya, lihat Node virtual.
Buat node virtual bernamaserviceB, karena salah satu node virtual mewakili layanan aktual bernamaserviceB. Layanan aktual yang diwakili oleh simpul virtual dapat ditemukan melalui DNS nama host. serviceb.apps.local Sebagai alternatif, Anda dapat menemukan layanan aktual menggunakan AWS Cloud Map. Node virtual mendengarkan lalu lintas menggunakan HTTP/2 protokol pada port 80. Protokol lain juga didukung, seperti pemeriksaan kesehatan. Anda membuat node virtual untuk serviceA dan serviceBv2 di langkah selanjutnya.
Langkah 3: Buat router dan rute virtual
Router virtual merutekan lalu lintas untuk satu atau lebih layanan virtual dalam mesh Anda. Untuk informasi selengkapnya, lihat Router virtual dan Rute.
Buat sumber daya berikut:
-
Sebuah router virtual bernama
serviceB, karena layananserviceB.apps.localvirtual tidak memulai komunikasi keluar dengan layanan lain. Ingatlah bahwa layanan virtual yang Anda buat sebelumnya adalah abstraksi dariserviceb.apps.locallayanan Anda yang sebenarnya. Layanan virtual mengirimkan lalu lintas ke router virtual. Router virtual mendengarkan lalu lintas menggunakan HTTP/2 protokol pada port 80. Protokol lain juga didukung. -
Sebuah rute bernama
serviceB. Ini mengarahkan 100 persen lalu lintasnya ke nodeserviceBvirtual. Bobotnya ada di langkah selanjutnya setelah Anda menambahkan simpulserviceBv2virtual. Meskipun tidak tercakup dalam panduan ini, Anda dapat menambahkan kriteria filter tambahan untuk rute dan menambahkan kebijakan coba ulang untuk menyebabkan proxy Envoy melakukan beberapa upaya untuk mengirim lalu lintas ke node virtual saat mengalami masalah komunikasi.
Langkah 4: Tinjau dan buat
Tinjau pengaturan terhadap instruksi sebelumnya.
Langkah 5: Buat sumber daya tambahan
Untuk menyelesaikan skenario, Anda perlu:
-
Buat satu simpul virtual bernama
serviceBv2dan satu lagi bernamaserviceA. Kedua node virtual mendengarkan permintaan di atas HTTP/2 port 80. Untuk nodeserviceAvirtual, konfigurasikan backend dariserviceb.apps.local. Semua lalu lintas keluar dari nodeserviceAvirtual dikirim ke layanan virtual bernamaserviceb.apps.local. Meskipun tidak tercakup dalam panduan ini, Anda juga dapat menentukan jalur file untuk menulis log akses untuk node virtual. -
Buat satu layanan virtual tambahan bernama
servicea.apps.local, yang mengirimkan semua lalu lintas langsung ke nodeserviceAvirtual. -
Perbarui
serviceBrute yang Anda buat pada langkah sebelumnya untuk mengirim 75 persen lalu lintas ke nodeserviceBvirtual dan 25 persen lalu lintas ke nodeserviceBv2virtual. Seiring waktu, Anda dapat terus memodifikasi bobot hinggaserviceBv2menerima 100 persen lalu lintas. Setelah semua lalu lintas dikirim keserviceBv2, Anda dapat mematikan dan menghentikan nodeserviceBvirtual dan layanan aktual. Saat Anda mengubah bobot, kode Anda tidak memerlukan modifikasi apa pun, karena nama layananserviceb.apps.localvirtual dan aktual tidak berubah. Ingatlah bahwa layananserviceb.apps.localvirtual mengirimkan lalu lintas ke router virtual, yang merutekan lalu lintas ke node virtual. Nama penemuan layanan untuk node virtual dapat diubah kapan saja.
Ringkasan mesh
Sebelum Anda membuat mesh layanan, Anda memiliki tiga layanan aktual bernamaservicea.apps.local,serviceb.apps.local, danservicebv2.apps.local. Selain layanan aktual, Anda sekarang memiliki mesh layanan yang berisi sumber daya berikut yang mewakili layanan aktual:
-
Dua layanan virtual. Proxy mengirimkan semua lalu lintas dari layanan
servicea.apps.localvirtual ke layananserviceb.apps.localvirtual melalui router virtual. -
Tiga node virtual bernama
serviceA,serviceB, danserviceBv2. Proksi Envoy menggunakan informasi penemuan layanan yang dikonfigurasi untuk node virtual untuk mencari alamat IP dari layanan yang sebenarnya. -
Satu router virtual dengan satu rute yang menginstruksikan proxy Envoy untuk merutekan 75 persen lalu lintas masuk ke node
serviceBvirtual dan 25 persen lalu lintas ke node virtual.serviceBv2
Langkah 6: Perbarui layanan
Setelah membuat mesh Anda, Anda harus menyelesaikan tugas-tugas berikut:
-
Otorisasi proxy Envoy yang Anda terapkan dengan setiap layanan untuk membaca konfigurasi satu atau lebih node virtual. Untuk informasi selengkapnya tentang cara mengotorisasi proxy, lihatOtorisasi Proxy Utusan.
-
Untuk memperbarui layanan yang ada, selesaikan langkah-langkah berikut.
Untuk mengonfigurasi instans Amazon EC2 sebagai anggota node virtual
-
Buat peran IAM.
-
Buat file bernama
ec2-trust-relationship.jsondengan isi berikut ini. -
Buat peran IAM dengan perintah berikut.
aws iam create-role --role-namemesh-virtual-node-service-b--assume-role-policy-document file://ec2-trust-relationship.json
-
-
Lampirkan kebijakan IAM ke peran yang memungkinkannya membaca dari Amazon ECR dan hanya konfigurasi node virtual App Mesh tertentu.
-
Buat file bernama
virtual-node-policy.jsondengan konten berikut.appsadalah nama mesh yang Anda buat Langkah 1: Buat layanan mesh dan virtual danserviceBmerupakan nama simpul virtual yang Anda buatLangkah 2: Buat simpul virtual. Ganti111122223333dengan ID akun Anda danus-west-2dengan Wilayah tempat Anda membuat mesh. -
Buat kebijakan dengan perintah berikut.
aws iam create-policy --policy-namevirtual-node-policy--policy-document file://virtual-node-policy.json -
Lampirkan kebijakan yang Anda buat pada langkah sebelumnya ke peran sehingga peran tersebut dapat membaca konfigurasi hanya untuk simpul
serviceBvirtual dari App Mesh.aws iam attach-role-policy --policy-arn arn:aws:iam::111122223333:policy/virtual-node-policy --role-namemesh-virtual-node-service-b -
Lampirkan
AmazonEC2ContainerRegistryReadOnlykebijakan terkelola ke peran sehingga dapat menarik gambar kontainer Envoy dari Amazon ECR.aws iam attach-role-policy --policy-arn arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly --role-namemesh-virtual-node-service-b
-
-
Luncurkan instans Amazon EC2 dengan peran IAM yang Anda buat.
-
Hubungkan ke instance Anda melalui SSH.
-
Instal Docker dan AWS CLI pada instance Anda sesuai dengan dokumentasi sistem operasi Anda.
-
Otentikasi ke repositori Envoy Amazon ECR di Wilayah tempat klien Docker Anda menarik gambar.
-
Semua Wilayah kecuali
me-south-1,ap-east-1,ap-southeast-3,eu-south-1,il-central-1, danaf-south-1. Anda dapat menggantius-west-2dengan Wil ayah yang didukung kecualime-south-1,ap-east-1,ap-southeast-3,eu-south-1,il-central-1, danaf-south-1.$aws ecr get-login-password \ --regionus-west-2\ | docker login \ --username AWS \ --password-stdin 840364872350.dkr.ecr.us-west-2.amazonaws.com -
Wilayah
me-south-1$aws ecr get-login-password \ --region me-south-1 \ | docker login \ --username AWS \ --password-stdin 772975370895.dkr.ecr.me-south-1.amazonaws.com -
Wilayah
ap-east-1$aws ecr get-login-password \ --region ap-east-1 \ | docker login \ --username AWS \ --password-stdin 856666278305.dkr.ecr.ap-east-1.amazonaws.com
-
-
Jalankan salah satu perintah berikut untuk memulai wadah App Mesh Envoy pada instans Anda, tergantung pada Wilayah mana Anda ingin menarik gambar.
serviceBNilaiappsdan adalah nama mesh dan simpul virtual yang ditentukan dalam skenario. Informasi ini memberi tahu proxy konfigurasi simpul virtual mana yang akan dibaca dari App Mesh. Untuk menyelesaikan skenario, Anda juga perlu menyelesaikan langkah-langkah ini untuk instans Amazon EC2 yang menghosting layanan yang diwakili oleh nodeserviceBv2danserviceAvirtual. Untuk aplikasi Anda sendiri, ganti nilai-nilai ini dengan milik Anda sendiri.-
Semua Wilayah kecuali
me-south-1,ap-east-1,ap-southeast-3,eu-south-1,il-central-1, danaf-south-1. Anda dapat menggantiRegion-codedengan Wil ayah yang didukung kecualime-south-1,,ap-east-1,ap-southeast-3,eu-south-1il-central-1, dan Wilaf-south-1ayah. Anda dapat menggantidengan nilai apa pun antara13370dan2147483647.sudo docker run --detach --env APPMESH_RESOURCE_ARN=mesh/\ -uapps/virtualNode/serviceB1337--network host 840364872350.dkr.ecr.region-code.amazonaws.com/aws-appmesh-envoy:v1.39.1.0-prod -
me-south-1Wilayah. Anda dapat menggantidengan nilai apa pun antara13370dan2147483647.sudo docker run --detach --env APPMESH_RESOURCE_ARN=mesh/\ -uapps/virtualNode/serviceB1337--network host 772975370895.dkr.ecr.me-south-1.amazonaws.com/aws-appmesh-envoy:v1.39.1.0-prod -
ap-east-1Wilayah. Anda dapat menggantidengan nilai apa pun antara13370dan2147483647.sudo docker run --detach --env APPMESH_RESOURCE_ARN=mesh/\ -uapps/virtualNode/serviceB1337--network host 856666278305.dkr.ecr.ap-east-1.amazonaws.com/aws-appmesh-envoy:v1.39.1.0-prod
catatan
Pro
APPMESH_RESOURCE_ARNperti memerlukan versi gambar1.15.0Utusan atau yang lebih baru. Untuk informasi selengkapnya, lihat Gambar utusan.penting
Hanya versi v1.9.0.0-prod atau yang lebih baru yang didukung untuk digunakan dengan App Mesh.
-
Pilih
Show moredi bawah ini. Buat file bernamaenvoy-networking.shpada instance Anda dengan konten berikut. Ganti8000dengan port yang digunakan kode aplikasi Anda untuk lalu lintas masuk. Anda dapat mengubah nilai untukAPPMESH_IGNORE_UID, tetapi nilainya harus sama dengan nilai yang Anda tentukan pada langkah sebelumnya; misalnya1337. Anda dapat menambahkan alamat tambahanAPPMESH_EGRESS_IGNORED_IPjika perlu. Jangan memodifikasi baris lainnya.#!/bin/bash -e # # Start of configurable options # #APPMESH_START_ENABLED="0" APPMESH_IGNORE_UID="1337" APPMESH_APP_PORTS="8000" APPMESH_ENVOY_EGRESS_PORT="15001" APPMESH_ENVOY_INGRESS_PORT="15000" APPMESH_EGRESS_IGNORED_IP="169.254.169.254,169.254.170.2" # Enable routing on the application start. [ -z "$APPMESH_START_ENABLED" ] && APPMESH_START_ENABLED="0" # Enable IPv6. [ -z "$APPMESH_ENABLE_IPV6" ] && APPMESH_ENABLE_IPV6="0" # Egress traffic from the processess owned by the following UID/GID will be ignored. if [ -z "$APPMESH_IGNORE_UID" ] && [ -z "$APPMESH_IGNORE_GID" ]; then echo "Variables APPMESH_IGNORE_UID and/or APPMESH_IGNORE_GID must be set." echo "Envoy must run under those IDs to be able to properly route it's egress traffic." exit 1 fi # Port numbers Application and Envoy are listening on. if [ -z "$APPMESH_ENVOY_EGRESS_PORT" ]; then echo "APPMESH_ENVOY_EGRESS_PORT must be defined to forward traffic from the application to the proxy." exit 1 fi # If an app port was specified, then we also need to enforce the proxies ingress port so we know where to forward traffic. if [ ! -z "$APPMESH_APP_PORTS" ] && [ -z "$APPMESH_ENVOY_INGRESS_PORT" ]; then echo "APPMESH_ENVOY_INGRESS_PORT must be defined to forward traffic from the APPMESH_APP_PORTS to the proxy." exit 1 fi # Comma separated list of ports for which egress traffic will be ignored, we always refuse to route SSH traffic. if [ -z "$APPMESH_EGRESS_IGNORED_PORTS" ]; then APPMESH_EGRESS_IGNORED_PORTS="22" else APPMESH_EGRESS_IGNORED_PORTS="$APPMESH_EGRESS_IGNORED_PORTS,22" fi # # End of configurable options # function initialize() { echo "=== Initializing ===" if [ ! -z "$APPMESH_APP_PORTS" ]; then iptables -t nat -N APPMESH_INGRESS if [ "$APPMESH_ENABLE_IPV6" == "1" ]; then ip6tables -t nat -N APPMESH_INGRESS fi fi iptables -t nat -N APPMESH_EGRESS if [ "$APPMESH_ENABLE_IPV6" == "1" ]; then ip6tables -t nat -N APPMESH_EGRESS fi } function enable_egress_routing() { # Stuff to ignore [ ! -z "$APPMESH_IGNORE_UID" ] && \ iptables -t nat -A APPMESH_EGRESS \ -m owner --uid-owner $APPMESH_IGNORE_UID \ -j RETURN [ ! -z "$APPMESH_IGNORE_GID" ] && \ iptables -t nat -A APPMESH_EGRESS \ -m owner --gid-owner $APPMESH_IGNORE_GID \ -j RETURN [ ! -z "$APPMESH_EGRESS_IGNORED_PORTS" ] && \ for IGNORED_PORT in $(echo "$APPMESH_EGRESS_IGNORED_PORTS" | tr "," "\n"); do iptables -t nat -A APPMESH_EGRESS \ -p tcp \ -m multiport --dports "$IGNORED_PORT" \ -j RETURN done if [ "$APPMESH_ENABLE_IPV6" == "1" ]; then # Stuff to ignore ipv6 [ ! -z "$APPMESH_IGNORE_UID" ] && \ ip6tables -t nat -A APPMESH_EGRESS \ -m owner --uid-owner $APPMESH_IGNORE_UID \ -j RETURN [ ! -z "$APPMESH_IGNORE_GID" ] && \ ip6tables -t nat -A APPMESH_EGRESS \ -m owner --gid-owner $APPMESH_IGNORE_GID \ -j RETURN [ ! -z "$APPMESH_EGRESS_IGNORED_PORTS" ] && \ for IGNORED_PORT in $(echo "$APPMESH_EGRESS_IGNORED_PORTS" | tr "," "\n"); do ip6tables -t nat -A APPMESH_EGRESS \ -p tcp \ -m multiport --dports "$IGNORED_PORT" \ -j RETURN done fi # The list can contain both IPv4 and IPv6 addresses. We will loop over this list # to add every IPv4 address into `iptables` and every IPv6 address into `ip6tables`. [ ! -z "$APPMESH_EGRESS_IGNORED_IP" ] && \ for IP_ADDR in $(echo "$APPMESH_EGRESS_IGNORED_IP" | tr "," "\n"); do if [[ $IP_ADDR =~ .*:.* ]] then [ "$APPMESH_ENABLE_IPV6" == "1" ] && \ ip6tables -t nat -A APPMESH_EGRESS \ -p tcp \ -d "$IP_ADDR" \ -j RETURN else iptables -t nat -A APPMESH_EGRESS \ -p tcp \ -d "$IP_ADDR" \ -j RETURN fi done # Redirect everything that is not ignored iptables -t nat -A APPMESH_EGRESS \ -p tcp \ -j REDIRECT --to $APPMESH_ENVOY_EGRESS_PORT # Apply APPMESH_EGRESS chain to non local traffic iptables -t nat -A OUTPUT \ -p tcp \ -m addrtype ! --dst-type LOCAL \ -j APPMESH_EGRESS if [ "$APPMESH_ENABLE_IPV6" == "1" ]; then # Redirect everything that is not ignored ipv6 ip6tables -t nat -A APPMESH_EGRESS \ -p tcp \ -j REDIRECT --to $APPMESH_ENVOY_EGRESS_PORT # Apply APPMESH_EGRESS chain to non local traffic ipv6 ip6tables -t nat -A OUTPUT \ -p tcp \ -m addrtype ! --dst-type LOCAL \ -j APPMESH_EGRESS fi } function enable_ingress_redirect_routing() { # Route everything arriving at the application port to Envoy iptables -t nat -A APPMESH_INGRESS \ -p tcp \ -m multiport --dports "$APPMESH_APP_PORTS" \ -j REDIRECT --to-port "$APPMESH_ENVOY_INGRESS_PORT" # Apply AppMesh ingress chain to everything non-local iptables -t nat -A PREROUTING \ -p tcp \ -m addrtype ! --src-type LOCAL \ -j APPMESH_INGRESS if [ "$APPMESH_ENABLE_IPV6" == "1" ]; then # Route everything arriving at the application port to Envoy ipv6 ip6tables -t nat -A APPMESH_INGRESS \ -p tcp \ -m multiport --dports "$APPMESH_APP_PORTS" \ -j REDIRECT --to-port "$APPMESH_ENVOY_INGRESS_PORT" # Apply AppMesh ingress chain to everything non-local ipv6 ip6tables -t nat -A PREROUTING \ -p tcp \ -m addrtype ! --src-type LOCAL \ -j APPMESH_INGRESS fi } function enable_routing() { echo "=== Enabling routing ===" enable_egress_routing if [ ! -z "$APPMESH_APP_PORTS" ]; then enable_ingress_redirect_routing fi } function disable_routing() { echo "=== Disabling routing ===" iptables -t nat -F APPMESH_INGRESS iptables -t nat -F APPMESH_EGRESS if [ "$APPMESH_ENABLE_IPV6" == "1" ]; then ip6tables -t nat -F APPMESH_INGRESS ip6tables -t nat -F APPMESH_EGRESS fi } function dump_status() { echo "=== iptables FORWARD table ===" iptables -L -v -n echo "=== iptables NAT table ===" iptables -t nat -L -v -n if [ "$APPMESH_ENABLE_IPV6" == "1" ]; then echo "=== ip6tables FORWARD table ===" ip6tables -L -v -n echo "=== ip6tables NAT table ===" ip6tables -t nat -L -v -n fi } function clean_up() { disable_routing ruleNum=$(iptables -L PREROUTING -t nat --line-numbers | grep APPMESH_INGRESS | cut -d " " -f 1) iptables -t nat -D PREROUTING $ruleNum ruleNum=$(iptables -L OUTPUT -t nat --line-numbers | grep APPMESH_EGRESS | cut -d " " -f 1) iptables -t nat -D OUTPUT $ruleNum iptables -t nat -X APPMESH_INGRESS iptables -t nat -X APPMESH_EGRESS if [ "$APPMESH_ENABLE_IPV6" == "1" ]; then ruleNum=$(ip6tables -L PREROUTING -t nat --line-numbers | grep APPMESH_INGRESS | cut -d " " -f 1) ip6tables -t nat -D PREROUTING $ruleNum ruleNum=$(ip6tables -L OUTPUT -t nat --line-numbers | grep APPMESH_EGRESS | cut -d " " -f 1) ip6tables -t nat -D OUTPUT $ruleNum ip6tables -t nat -X APPMESH_INGRESS ip6tables -t nat -X APPMESH_EGRESS fi } function main_loop() { echo "=== Entering main loop ===" while read -p '> ' cmd; do case "$cmd" in "quit") clean_up break ;; "status") dump_status ;; "enable") enable_routing ;; "disable") disable_routing ;; *) echo "Available commands: quit, status, enable, disable" ;; esac done } function print_config() { echo "=== Input configuration ===" env | grep APPMESH_ || true } print_config initialize if [ "$APPMESH_START_ENABLED" == "1" ]; then enable_routing fi main_loop-
Untuk mengonfigurasi
iptablesaturan untuk merutekan lalu lintas aplikasi ke proxy Envoy, jalankan skrip yang Anda buat pada langkah sebelumnya.sudo ./envoy-networking.sh -
Mulai kode aplikasi simpul virtual Anda.
catatan
Untuk contoh dan panduan lebih lanjut untuk App Mesh, lihat repositori contoh App Mesh.