Cloud & IT Cert Prep · Pelajaran

Kluster ECS, Takrif Tugas dan Perkhidmatan

Takrifkan definisi tugasan ECS dengan imej bekas dan had sumber, daftarkan definisi tersebut dalam kluster, dan cipta perkhidmatan untuk mengekalkan bilangan yang dikehendaki.

Pelajaran 1 daripada 413 langkah

Kluster ECS, Takrif Tugas dan Perkhidmatan ialah pelajaran Cloud & IT Cert Prep percuma di CoddyKit. Ini ialah pelajaran 1 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Cloud & IT Cert Prep, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Cloud & IT Cert Prep merangkumi sejumlah 4 pelajaran.

Mengapa Bekas di AWS?

Bekas membungkus aplikasi dan semua kebergantungannya ke dalam unit mudah alih dan terpencil yang berjalan secara konsisten merentas persekitaran. Amazon ECS (Elastic Container Service) ialah perkhidmatan orkestrasi bekas terurus sepenuhnya AWS yang menjalankan bekas Docker tanpa anda perlu mengurus satah kawalan. ECS berintegrasi rapat dengan perkhidmatan AWS (IAM, ALB, CloudWatch, Secrets Manager) dan merupakan cara yang disyorkan untuk menjalankan bekas di AWS tanpa kerumitan Kubernetes.

Kluster ECS: Unit Pengumpulan

Kluster ECS ialah pengumpulan logik sumber pengkomputeran tempat bekas anda berjalan. Kluster boleh mengandungi tika EC2 (jenis pelancaran EC2), kapasiti Fargate (jenis pelancaran Fargate) atau kedua-duanya. Anda boleh mempunyai berbilang perkhidmatan dan tugasan kendiri dalam satu kluster. Kluster adalah serantau tetapi merentasi Zon Ketersediaan. Corak biasa ialah satu kluster bagi setiap persekitaran (pembangunan, pementasan dan produksi), dengan berbilang perkhidmatan dalam setiap kluster untuk perkhidmatan mikro yang berbeza.

aws ecs create-cluster \
  --cluster-name 'MyAppCluster' \
  --capacity-providers FARGATE FARGATE_SPOT \
  --default-capacity-provider-strategy \
    capacityProvider=FARGATE,weight=1,base=1

Takrif Tugas: Pelan Tindakan

Takrif Tugas ialah pelan tindakan untuk menjalankan bekas dalam ECS—seumpama fail Docker Compose. Ia menentukan: imej bekas (URI ECR atau Docker Hub), peruntukan CPU dan memori, pemetaan port, pemboleh ubah persekitaran, konfigurasi log, volum dan peranan tugas IAM. Takrif tugas mempunyai versi—setiap semakan tidak boleh diubah. Anda boleh mentakrifkan berbilang bekas bagi setiap tugas untuk corak sidecar (aplikasi utama + penghantar log + ejen pemantauan).

{
  'family': 'myapp-task',
  'networkMode': 'awsvpc',
  'requiresCompatibilities': ['FARGATE'],
  'cpu': '512',
  'memory': '1024',
  'executionRoleArn': 'arn:aws:iam::123456789012:role/ecsTaskExecutionRole',
  'taskRoleArn': 'arn:aws:iam::123456789012:role/myAppTaskRole',
  'containerDefinitions': [{
    'name': 'myapp',
    'image': '123456789012.dkr.ecr.us-east-1.amazonaws.com/myapp:latest',
    'portMappings': [{'containerPort': 8080}]
  }]
}

Peranan Tugas berbanding Peranan Pelaksanaan

Tugasan ECS menggunakan dua peranan IAM berasingan dengan tujuan yang berbeza. Peranan Pelaksanaan Tugas digunakan oleh ejen ECS untuk menarik imej bekas daripada ECR, menghantar log ke CloudWatch dan mendapatkan rahsia daripada Secrets Manager atau Parameter Store semasa permulaan tugas. Peranan Tugas digunakan oleh kod aplikasi yang berjalan di dalam bekas untuk memanggil perkhidmatan AWS (S3, DynamoDB, SQS). Sentiasa berikan kebenaran keistimewaan minimum kepada setiap peranan secara berasingan—jangan berikan peranan pelaksanaan kebenaran yang tidak diperlukan oleh aplikasi.

Perkhidmatan ECS untuk Beban Kerja Berjalan Lama

Perkhidmatan ECS mengekalkan bilangan tika tugas yang berjalan serentak seperti yang ditentukan (kiraan dikehendaki). Jika tugas gagal atau berhenti, penjadual perkhidmatan melancarkan pengganti secara automatik. Perkhidmatan juga berintegrasi dengan Elastic Load Balancing untuk pengagihan trafik serta menyokong pelancaran beransur-ansur dan pelancaran biru/hijau. Gunakan perkhidmatan untuk sebarang proses yang berjalan lama (pelayan web, pelayan API atau pekerja latar belakang). Untuk kerja sekali sahaja, jalankan tugas kendiri sebagai gantinya.

aws ecs create-service \
  --cluster 'MyAppCluster' \
  --service-name 'MyAppService' \
  --task-definition 'myapp-task:5' \
  --desired-count 3 \
  --launch-type FARGATE \
  --network-configuration '{
    "awsvpcConfiguration": {
      "subnets": ["subnet-aaa111", "subnet-bbb222"],
      "securityGroups": ["sg-xyz"],
      "assignPublicIp": "DISABLED"
    }
  }'

Mod Rangkaian: awsvpc berbanding bridge

Mod rangkaian awsvpc memberikan setiap tugas ECS Elastic Network Interface (ENI) dan alamat IP peribadinya sendiri dalam VPC anda—sama seperti tika EC2. Ini membolehkan kawalan kumpulan keselamatan yang terperinci bagi setiap tugas dan diperlukan untuk tugas Fargate. Mod rangkaian bridge menggunakan rangkaian maya terbina dalam Docker pada hos, dengan pemetaan port daripada hos kepada bekas—ia berkongsi ENI tika EC2 hos. Untuk peperiksaan SAA-C03, Fargate sentiasa menggunakan awsvpc; jenis pelancaran EC2 boleh menggunakan mana-mana satu.

Melampirkan Pengimbang Beban pada Perkhidmatan ECS

Daftarkan perkhidmatan ECS anda dengan kumpulan sasaran ALB untuk mengagihkan trafik merentas tika tugas. Apabila tugas baharu bermula, ECS mendaftarkannya secara automatik dengan kumpulan sasaran; apabila tugas itu berhenti, ECS membatalkan pendaftarannya. Konfigurasikan tempoh ihsan pemeriksaan kesihatan (contohnya, 60–120 saat) untuk memberi masa kepada bekas bermula sebelum pemeriksaan kesihatan dijalankan. Tanpa tempoh ihsan, ALB mungkin menandakan bekas yang bermula dengan perlahan sebagai tidak sihat sebelum bersedia, lalu menyebabkan gelung penggantian.

aws ecs create-service \
  --cluster 'MyAppCluster' \
  --service-name 'MyAppService' \
  --load-balancers \
    'targetGroupArn=arn:aws:elasticloadbalancing:...,containerName=myapp,containerPort=8080' \
  --health-check-grace-period-seconds 120 \
  --task-definition 'myapp-task:5' \
  --desired-count 3

Pelancaran Beransur-ansur berbanding Pelancaran Biru/Hijau

Perkhidmatan ECS menyokong dua strategi pelancaran: Kemas Kini Beransur-ansur menggantikan tugasan lama dengan tugasan baharu secara berperingkat—boleh dikonfigurasikan dengan minimumHealthyPercent (had bawah) dan maximumPercent (had atas). Tetapan 100/200 bermaksud tugasan lama berjalan sementara tugasan baharu dilancarkan (100% sihat diperlukan, sehingga kapasiti 200%). Pelancaran biru/hijau (melalui AWS CodeDeploy) mencipta set tugas baharu di samping set lama, mengalihkan trafik secara beransur-ansur menggunakan penghalaan berwajaran ALB dan menamatkan tugas lama selepas pengesahan. Pelancaran biru/hijau mempunyai keupayaan pemulihan tanpa masa henti.

Pembalakan CloudWatch daripada ECS

Konfigurasikan pemacu log awslogs dalam takrif tugas anda untuk menghantar stdout/stderr bekas terus ke CloudWatch Logs. Tentukan kumpulan log, rantau dan awalan strim. Peranan pelaksanaan tugas memerlukan kebenaran logs:CreateLogStream dan logs:PutLogEvents. Untuk pengagregatan log terpusat merentas berbilang perkhidmatan, pertimbangkan penggunaan FireLens (bekas sidecar dengan Fluent Bit atau Fluentd) untuk menghalakan log ke S3, OpenSearch atau sistem pembalakan pihak ketiga.

'logConfiguration': {
    'logDriver': 'awslogs',
    'options': {
        'awslogs-group': '/ecs/myapp',
        'awslogs-region': 'us-east-1',
        'awslogs-stream-prefix': 'myapp'
    }
}

Penemuan Perkhidmatan ECS dengan Cloud Map

Apabila perkhidmatan mikro dalam ECS perlu berkomunikasi antara satu sama lain, alamat IP yang dikodkan secara tetap tidak akan berfungsi kerana tugas bersifat sementara dan mendapat IP baharu setiap kali dilancarkan. Gunakan AWS Cloud Map (Penemuan Perkhidmatan ECS) untuk mendaftarkan IP dan port setiap tugas dalam ruang nama DNS. Perkhidmatan lain menyelesaikan myservice.namespace.local kepada IP tugas sihat semasa. ECS mendaftarkan tugas baharu dan membatalkan pendaftaran tugas yang gagal secara automatik, lalu memastikan rekod DNS tepat tanpa pengurusan manual.

Rahsia dalam Takrif Tugas ECS

Jangan sekali-kali mengekodkan kelayakan secara tetap dalam takrif tugas. Sebaliknya, rujuk rahsia Secrets Manager atau Parameter Store dalam takrif tugas anda—ECS menyuntikkannya sebagai pemboleh ubah persekitaran semasa permulaan tugas. Peranan pelaksanaan tugas mesti mempunyai kebenaran untuk mendapatkan rahsia tersebut. Untuk Secrets Manager, gunakan secretsmanager:GetSecretValue; untuk Parameter Store, gunakan ssm:GetParameters. Rahsia diambil sekali semasa permulaan bekas; pemutaran rahsia memerlukan penggantian tugas untuk mendapatkan nilai baharu.

'secrets': [
    {
        'name': 'DB_PASSWORD',
        'valueFrom': 'arn:aws:secretsmanager:us-east-1:123456789012:secret:myapp/db-password-AbCdEf'
    },
    {
        'name': 'API_KEY',
        'valueFrom': 'arn:aws:ssm:us-east-1:123456789012:parameter/myapp/api-key'
    }
]

Semakan Pantas

Uji pemahaman anda tentang konsep AWS Solutions Architect (SAA-C03) daripada pelajaran ini.

Ringkasan Pelajaran

Dalam pelajaran ini, anda telah mempelajari bahawa: Kluster ECS mengumpulkan sumber pengkomputeran tempat tugas berjalan, Takrif Tugas mentakrifkan imej bekas, CPU/memori, peranan dan pembalakan sebagai pelan tindakan berversi, manakala Perkhidmatan ECS mengekalkan kiraan tugas yang dikehendaki, berintegrasi dengan ALB untuk pengagihan trafik dan menyokong pelancaran beransur-ansur atau biru/hijau. Seterusnya, kita akan membandingkan jenis pelancaran EC2 dengan jenis pelancaran tanpa pelayan Fargate.

Percuma untuk bermula

Pelajari Cloud & IT Cert Prep dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
150
Pelajaran
600

Soalan Lazim

Adakah pelajaran “Kluster ECS, Takrif Tugas dan Perkhidmatan” percuma?

Ya — teks penuh “Kluster ECS, Takrif Tugas dan Perkhidmatan” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Cloud & IT Cert Prep, tingkat taraf kepada CoddyKit PRO. Kursus Cloud & IT Cert Prep merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Kluster ECS, Takrif Tugas dan Perkhidmatan”?

Takrifkan definisi tugasan ECS dengan imej bekas dan had sumber, daftarkan definisi tersebut dalam kluster, dan cipta perkhidmatan untuk mengekalkan bilangan yang dikehendaki. Anda berlatih Cloud & IT Cert Prep menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Cloud & IT Cert Prep?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Cloud & IT Cert Prep di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 1 daripada 4.

Berapa lamakah pelajaran “Kluster ECS, Takrif Tugas dan Perkhidmatan” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Cloud & IT Cert Prep ini?

Ya. Setiap pelajaran Cloud & IT Cert Prep menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Kluster ECS, Takrif Tugas dan Perkhidmatan
  2. Jenis Pelancaran EC2 berbanding Fargate
  3. ECR: Menyimpan dan Menarik Imej Bekas
  4. Penskalaan Automatik dan Pengimbangan Beban Perkhidmatan ECS
← Kembali ke Cloud & IT Cert Prep