{"id":25761,"date":"2026-06-23T15:31:26","date_gmt":"2026-06-23T15:31:26","guid":{"rendered":"https:\/\/umang.pk\/2026\/06\/23\/eks-%da%a9%d8%a7%d8%b3%d9%b9-%d8%a2%d9%be%d9%b9%db%8c%d9%85%d8%a7%d8%a6%d8%b2%db%8c%d8%b4%d9%86-%db%81%db%8c%d9%86%da%88-%d8%a8%da%a9-%da%a9%d8%a7%d8%b1%d9%be%db%8c%d9%86%d9%b9%d8%b1-%d8%a7%d9%88\/"},"modified":"2026-06-23T15:31:26","modified_gmt":"2026-06-23T15:31:26","slug":"eks-%da%a9%d8%a7%d8%b3%d9%b9-%d8%a2%d9%be%d9%b9%db%8c%d9%85%d8%a7%d8%a6%d8%b2%db%8c%d8%b4%d9%86-%db%81%db%8c%d9%86%da%88-%d8%a8%da%a9-%da%a9%d8%a7%d8%b1%d9%be%db%8c%d9%86%d9%b9%d8%b1-%d8%a7%d9%88","status":"publish","type":"post","link":"https:\/\/umang.pk\/ur\/2026\/06\/23\/eks-%da%a9%d8%a7%d8%b3%d9%b9-%d8%a2%d9%be%d9%b9%db%8c%d9%85%d8%a7%d8%a6%d8%b2%db%8c%d8%b4%d9%86-%db%81%db%8c%d9%86%da%88-%d8%a8%da%a9-%da%a9%d8%a7%d8%b1%d9%be%db%8c%d9%86%d9%b9%d8%b1-%d8%a7%d9%88\/","title":{"rendered":"EKS \u06a9\u0627\u0633\u0679 \u0622\u067e\u0679\u06cc\u0645\u0627\u0626\u0632\u06cc\u0634\u0646 \u06c1\u06cc\u0646\u0688 \u0628\u06a9: \u06a9\u0627\u0631\u067e\u06cc\u0646\u0679\u0631 \u0627\u0648\u0631 \u0631\u0627\u0626\u0679 \u0633\u0627\u0626\u0632\u0646\u06af \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 AWS \u0628\u0644\u0648\u06ba \u06a9\u0648 60% \u062a\u06a9 \u06a9\u0645 \u06a9\u0631\u06cc\u06ba\u06d4"},"content":{"rendered":"\n<div id=\"\">\n<p>\u06cc\u06c1 \u06c1\u06cc\u0646\u0688 \u0628\u06a9 7 \u0642\u062f\u0645\u06cc \u067e\u0644\u06d2 \u0628\u06a9 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9 \u0645\u06a9\u0645\u0644 \u06af\u0627\u0626\u06cc\u0688 \u06c1\u06d2 \u062c\u0633 \u0646\u06d2 \u067e\u0631\u0648\u0688\u06a9\u0679 \u06a9\u0648\u0688 \u06a9\u06cc \u0627\u06cc\u06a9 \u0644\u0627\u0626\u0646 \u06a9\u0648 \u0686\u06be\u0648\u0626\u06d2 \u0628\u063a\u06cc\u0631 \u0645\u06cc\u0631\u0627 EKS \u0628\u0644 $85,000\/\u0645\u0627\u06c1 \u0633\u06d2 $34,000\/\u0645\u0627\u06c1 \u062a\u06a9 \u0644\u06d2 \u0644\u06cc\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0645\u06cc\u06ba \u0646\u06d2 10 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u06a9\u0645\u067e\u0646\u06cc\u0648\u06ba \u0645\u06cc\u06ba EKS \u06a9\u0644\u0633\u0679\u0631\u0632 \u06a9\u0627 \u0622\u0688\u0679 \u06a9\u06cc\u0627 \u06c1\u06d2\u06d4 \u06c1\u0645 \u06c1\u0631 \u0628\u0627\u0631 \u0641\u0636\u0644\u06d2 \u06a9\u06d2 \u0627\u06cc\u06a9 \u062c\u06cc\u0633\u06d2 \u0646\u0645\u0648\u0646\u06d2 \u062f\u06cc\u06a9\u06be\u062a\u06d2 \u06c1\u06cc\u06ba: \u0636\u0631\u0648\u0631\u062a \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u0646\u0648\u0688\u0633\u060c AZs \u06a9\u06d2 \u062f\u0631\u0645\u06cc\u0627\u0646 \u0688\u06cc\u0679\u0627 \u06a9\u06cc \u0645\u0646\u062a\u0642\u0644\u06cc\u060c \u0627\u0648\u0631 \u063a\u06cc\u0631 \u0641\u0639\u0627\u0644 EBS \u0648\u0627\u0644\u06cc\u0648\u0645\u06d4 \u0627\u0648\u0631 \u0633\u0628 \u0633\u06d2 \u0645\u06c1\u0646\u06af\u06cc \u063a\u0644\u0637\u06cc \u0622\u067e \u06a9\u06d2 \u0633\u0627\u0626\u0632 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0627\u06cc\u06a9 \u06a9\u0645\u067e\u06cc\u0648\u0679 \u06a9\u0645\u0679\u0645\u0646\u0679 \u062e\u0631\u06cc\u062f\u0646\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u06cc\u06c1 \u06c1\u06cc\u0646\u0688 \u0628\u06a9 \u0627\u0633 \u06a9\u0627 \u062d\u0644 \u06c1\u06d2\u06d4 \u0645\u06cc\u06ba \u0646\u06d2 \u0627\u0633 7 \u0642\u062f\u0645\u06cc \u067e\u0644\u06d2 \u0628\u06a9 \u06a9\u0648 \u06c1\u0631 \u0627\u0633 \u06a9\u0645\u067e\u0646\u06cc \u067e\u0631 EKS \u0644\u0627\u06af\u062a \u06a9\u0648 50-60% \u062a\u06a9 \u06a9\u0645 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u06cc\u0627 \u06c1\u06d2 \u062c\u0633 \u0646\u06d2 \u0627\u0633\u06d2 \u0644\u0627\u06af\u0648 \u06a9\u06cc\u0627 \u06c1\u06d2\u06d4 \u067e\u0631\u0648\u0688\u06a9\u0679 \u06a9\u0648\u0688 \u0645\u06cc\u06ba \u06a9\u0648\u0626\u06cc \u062a\u0628\u062f\u06cc\u0644\u06cc \u06cc\u0627 \u0688\u0627\u0624\u0646 \u0679\u0627\u0626\u0645 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4 \u0628\u0646\u06cc\u0627\u062f\u06cc \u0688\u06be\u0627\u0646\u0686\u06d2 \u06a9\u06cc \u0627\u0635\u0644\u0627\u062d \u062f\u0631\u0633\u062a \u062a\u0631\u062a\u06cc\u0628 \u0645\u06cc\u06ba \u0686\u0644\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u0633 \u06af\u0627\u0626\u06cc\u0688 \u06a9\u06d2 \u0627\u062e\u062a\u062a\u0627\u0645 \u062a\u06a9\u060c \u0622\u067e \u062c\u0627\u0646 \u0644\u06cc\u06ba \u06af\u06d2 \u06a9\u06c1 \u067e\u0648\u0688 \u0631\u06cc\u0633\u0648\u0631\u0633 \u06a9\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u0648\u06ba \u06a9\u0648 \u06a9\u0633 \u0637\u0631\u062d \u0631\u0627\u0626\u0679 \u0633\u0627\u0626\u0632 \u06a9\u0631\u0646\u0627 \u06c1\u06d2\u060c \u06a9\u0627\u0631\u067e\u06cc\u0646\u0679\u0631 \u06a9\u0648 \u0630\u06c1\u06cc\u0646 \u0628\u0646 \u067e\u06cc\u06a9\u0646\u06af \u0627\u0648\u0631 \u0627\u0633\u067e\u0627\u0679 \u0688\u0627\u0626\u06cc\u0648\u0631\u0633\u06cc\u0641\u06a9\u06cc\u0634\u0646 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0644\u0627\u06af\u0648 \u06a9\u0631\u0646\u0627\u060c 20% \u0633\u0633\u062a\u06cc \u06a9\u0645\u067e\u06cc\u0648\u0679 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06c1\u0645 \u0622\u06c1\u0646\u06af \u06a9\u0627\u0645 \u06a9\u06d2 \u0628\u0648\u062c\u06be \u06a9\u0648 Graviton \u0645\u06cc\u06ba \u0645\u0646\u062a\u0642\u0644 \u06a9\u0631\u0646\u0627\u060c \u0627\u0648\u0631 VPC \u0627\u06cc\u0646\u0688 \u067e\u0648\u0627\u0626\u0646\u0679\u0633 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 NAT \u06af\u06cc\u0679 \u0648\u06d2 \u0641\u06cc\u0633 \u06a9\u0648 \u0645\u06a9\u0645\u0644 \u0637\u0648\u0631 \u067e\u0631 \u062e\u062a\u0645 \u06a9\u0631\u0646\u0627\u06d4<\/p>\n<p>\u062a\u0645\u0627\u0645 Terraform \u0645\u0627\u0688\u06cc\u0648\u0644\u0632\u060c NodePool \u0679\u06cc\u0645\u067e\u0644\u06cc\u0679\u0633\u060c \u0627\u0648\u0631 \u0622\u0679\u0648\u0645\u06cc\u0634\u0646 \u0627\u0633\u06a9\u0631\u067e\u0679\u0633 \u062c\u0646 \u06a9\u0627 \u0627\u0633 \u06af\u0627\u0626\u06cc\u0688 \u0645\u06cc\u06ba \u062d\u0648\u0627\u0644\u06c1 \u062f\u06cc\u0627 \u06af\u06cc\u0627 \u06c1\u06d2\u060c \u0633\u0627\u062a\u06be\u06cc \u0630\u062e\u06cc\u0631\u06c1 \u0645\u06cc\u06ba github.com\/aayostem\/eks-cost-optimization \u067e\u0631 \u062f\u0633\u062a\u06cc\u0627\u0628 \u06c1\u06cc\u06ba\u06d4 \u0631\u06cc\u067e\u0648\u0632\u0679\u0631\u06cc \u0645\u06cc\u06ba \u06c1\u0631 \u0642\u062f\u0645 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0688\u06cc\u067e\u0644\u0627\u0626\u06cc \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062a\u06cc\u0627\u0631 \u06a9\u0646\u0641\u06cc\u06af\u0631\u06cc\u0634\u0646 \u0634\u0627\u0645\u0644 \u06c1\u06d2\u060c \u0644\u06c1\u0630\u0627 \u0622\u067e \u0627\u0633\u06cc \u062f\u0648\u067e\u06c1\u0631 \u06a9\u0648 \u067e\u0691\u06be\u0646\u06d2 \u0633\u06d2 \u0639\u0645\u0644 \u062f\u0631\u0622\u0645\u062f \u062a\u06a9 \u062c\u0627 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h2 id=\"heading-table-of-contents\">\u0627\u0646\u0688\u06cc\u06a9\u0633<\/h2>\n<h2 id=\"heading-what-youll-learn\">\u062c\u0648 \u0622\u067e \u0633\u06cc\u06a9\u06be\u06cc\u06ba \u06af\u06d2\u06d4<\/h2>\n<ul>\n<li>\n<p>\u067e\u0648\u0688 \u0631\u06cc\u0633\u0648\u0631\u0633 \u06a9\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u0648\u06ba \u06a9\u0648 \u0645\u0646\u0627\u0633\u0628 \u0633\u0627\u0626\u0632 \u06a9\u06d2 \u0644\u06cc\u06d2 VPA \u06a9\u06cc \u0633\u0641\u0627\u0631\u0634\u0627\u062a \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u06cc\u0633\u06d2 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0627\u0633\u067e\u0627\u0679 \u0688\u0627\u0626\u06cc\u0648\u0631\u0633\u06cc\u0641\u06a9\u06cc\u0634\u0646 \u0627\u0648\u0631 \u062e\u0648\u062f\u06a9\u0627\u0631 \u0627\u0646\u0636\u0645\u0627\u0645 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u06a9\u0627\u0631\u067e\u06cc\u0646\u0679\u0631 \u0633\u06cc\u0679 \u0627\u067e \u0645\u06a9\u0645\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p>\u062a\u0645\u0627\u0645 \u063a\u06cc\u0631 GPU \u0648\u0631\u06a9 \u0628\u0648\u062c\u06be \u06a9\u06d2 \u0644\u06cc\u06d2 Graviton3 \u06a9\u06cc \u0645\u0646\u062a\u0642\u0644\u06cc<\/p>\n<\/li>\n<li>\n<p>NAT \u06af\u06cc\u0679 \u0648\u06d2 \u0688\u06cc\u0679\u0627 \u06a9\u06cc \u0645\u0646\u062a\u0642\u0644\u06cc \u06a9\u06d2 \u0627\u062e\u0631\u0627\u062c\u0627\u062a \u06a9\u0648 \u062e\u062a\u0645 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 VPC \u0627\u06cc\u0646\u0688 \u067e\u0648\u0627\u0626\u0646\u0679\u0633<\/p>\n<\/li>\n<li>\n<p>EBS gp2 \u0633\u06d2 gp3 \u0645\u06cc\u06ba \u06c1\u062c\u0631\u062a \u06a9\u0631\u06cc\u06ba \u2014 \u06a9\u0627\u0631\u06a9\u0631\u062f\u06af\u06cc \u0645\u06cc\u06ba \u06a9\u0645\u06cc \u06a9\u06d2 \u0628\u063a\u06cc\u0631 20% \u0633\u0633\u062a\u0627<\/p>\n<\/li>\n<li>\n<p>\u0645\u0634\u062a\u0631\u06a9\u06c1 \u062f\u0627\u062e\u0644\u06d2 \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u0628\u06cc\u0644\u0646\u0633\u0631 \u0627\u0646\u0636\u0645\u0627\u0645 \u06a9\u0648 \u0644\u0648\u0688 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p>ROI \u06a9\u0648 \u0632\u06cc\u0627\u062f\u06c1 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 7 \u0642\u062f\u0645\u0648\u06ba \u06a9\u06cc \u062a\u0631\u062a\u06cc\u0628 &#8211; \u0627\u0648\u0631 \u062a\u0631\u062a\u06cc\u0628 \u0627\u062e\u062a\u06cc\u0627\u0631\u06cc \u06a9\u06cc\u0648\u06ba \u0646\u06c1\u06cc\u06ba \u06c1\u06d2<\/p>\n<\/li>\n<\/ul>\n<p>\u0622\u0626\u06cc\u06d2 \u0627\u0646\u062f\u0631 \u063a\u0648\u0637\u06c1 \u0644\u06af\u0627\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h2 id=\"heading-prerequisites\">\u0634\u0631\u0637\u06cc\u06ba<\/h2>\n<p>\u067e\u06cc\u0631\u0648\u06cc \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2\u060c \u0622\u067e \u06a9\u0648 \u0636\u0631\u0648\u0631\u062a \u06c1\u0648 \u06af\u06cc:<\/p>\n<p><strong>\u0639\u0644\u0645:<\/strong><\/p>\n<ul>\n<li>\n<p>\u0627\u06cc\u06a9 \u0628\u0627\u0631 \u062c\u0628 \u0622\u067e Kubernetes \u0633\u06d2 \u0648\u0627\u0642\u0641 \u06c1\u0648 \u062c\u0627\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u062a\u0648 \u0622\u067e \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646\u0632 \u06a9\u0648 \u062a\u0639\u06cc\u0646\u0627\u062a \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u067e\u0648\u0688\u0632 \u06a9\u0627 \u0645\u0639\u0627\u0626\u0646\u06c1 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0628\u0646\u06cc\u0627\u062f\u06cc AWS \u0639\u0644\u0645 &#8211; EC2 \u0645\u062b\u0627\u0644 \u06a9\u06cc \u0627\u0642\u0633\u0627\u0645\u060c VPCs\u060c \u0627\u0648\u0631 EBS \u0648\u0627\u0644\u06cc\u0648\u0645 \u06a9\u0648 \u0633\u0645\u062c\u06be\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p>Terraform HCL \u0627\u0648\u0631 Kubernetes YAML \u067e\u0691\u06be\u0646\u06d2 \u0645\u06cc\u06ba \u0622\u0633\u0627\u0646 \u06c1\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<\/ul>\n<p><strong>\u0627\u0648\u0632\u0627\u0631 \u0627\u0648\u0631 \u0631\u0633\u0627\u0626\u06cc:<\/strong><\/p>\n<ul>\n<li>\n<p>\u0627\u06cc\u06a9 \u0645\u0648\u062c\u0648\u062f\u06c1 EKS \u06a9\u0644\u0633\u0679\u0631 \u062c\u0648 Kubernetes 1.27 \u06cc\u0627 \u0627\u0633 \u0633\u06d2 \u0627\u0648\u067e\u0631 \u0686\u0644\u0627 \u0631\u06c1\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><code>kubectl<\/code>    \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u0646\u0627 \u0627\u0648\u0631 \u0627\u06cc\u06a9 \u06a9\u0644\u0633\u0679\u0631 \u06a9\u06cc \u0637\u0631\u0641 \u0627\u0634\u0627\u0631\u06c1 \u06a9\u0631\u0646\u0627<\/p>\n<\/li>\n<li>\n<p>AWS CLI v2 \u0627\u0646\u0633\u0679\u0627\u0644 \u0627\u0648\u0631 \u0645\u0646\u0627\u0633\u0628 \u0627\u062c\u0627\u0632\u062a\u0648\u06ba \u06a9\u06d2 \u0633\u0627\u062a\u06be \u062a\u0635\u062f\u06cc\u0642 \u0634\u062f\u06c1<\/p>\n<\/li>\n<li>\n<p>\u06c1\u06cc\u0644\u0645 3 \u0646\u0635\u0628 (\u06a9\u0627\u0631\u067e\u06cc\u0646\u0679\u0631 \u0627\u0648\u0631 \u06a9\u06cc\u0648\u0628\u06a9\u0648\u0633\u0679 \u06a9\u06d2 \u0644\u06cc\u06d2)<\/p>\n<\/li>\n<li>\n<p>\u06a9\u0644\u0633\u0679\u0631 \u0645\u06cc\u06ba \u0645\u06cc\u0679\u0631\u06a9\u0633 \u0633\u0631\u0648\u0631 \u0627\u0646\u0633\u0679\u0627\u0644 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<\/ul>\n<p><strong>\u0633\u0627\u062a\u06be\u06cc \u0630\u062e\u06cc\u0631\u06c1:<\/strong> \u0634\u0631\u0648\u0639 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0627\u067e\u0646\u06d2 \u0630\u062e\u06cc\u0631\u06d2 \u06a9\u0648 \u06a9\u0644\u0648\u0646 \u06a9\u0631\u06cc\u06ba\u06d4 \u0627\u0633 \u0645\u06cc\u06ba \u062a\u0645\u0627\u0645 YAML\u060c Terraform\u060c \u0627\u0648\u0631 \u0634\u06cc\u0644 \u0627\u0633\u06a9\u0631\u067e\u0679\u0633 \u0634\u0627\u0645\u0644 \u06c1\u06cc\u06ba \u062c\u0646 \u06a9\u0627 \u0627\u0633 \u06af\u0627\u0626\u06cc\u0688 \u0645\u06cc\u06ba \u062d\u0648\u0627\u0644\u06c1 \u062f\u06cc\u0627 \u06af\u06cc\u0627 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-bash\">git clone https:\/\/github.com\/aayostem\/eks-cost-optimization\ncd eks-cost-optimization\n<\/code><\/pre>\n<p><strong>\u0645\u062a\u0648\u0642\u0639 \u0628\u0686\u062a:<\/strong> \u0639\u0627\u0645 \u0627\u0636\u0627\u0641\u06cc \u067e\u0631\u0648\u0648\u06cc\u0698\u0646\u0646\u06af \u06a9\u06d2 \u0633\u0627\u062a\u06be $85,000\/\u0645\u0627\u06c1 \u067e\u0631 \u0686\u0644\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u06a9\u0644\u0633\u0679\u0631 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u0622\u067e \u062a\u0645\u0627\u0645 \u0633\u0627\u062a \u0645\u0631\u0627\u062d\u0644 \u06a9\u0648 \u0645\u06a9\u0645\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0628\u0639\u062f $40,000 \u0633\u06d2 $55,000\/\u0645\u0627\u06c1 \u06a9\u06cc \u0628\u0686\u062a \u06a9\u06cc \u062a\u0648\u0642\u0639 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u06c1\u0631 \u0645\u0627\u06c1 $10,000 \u0633\u06d2 \u06a9\u0645 \u06a9\u0645\u0627\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u0686\u06be\u0648\u0679\u06d2 \u06a9\u0644\u0633\u0679\u0631\u0632 \u0645\u06cc\u06ba \u0639\u0627\u0645 \u0637\u0648\u0631 \u067e\u0631 40-50% \u06a9\u0645\u06cc \u0646\u0638\u0631 \u0622\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-part-1-the-baseline-where-your-eks-money-is-going\">\u062d\u0635\u06c1 1: \u0645\u0639\u06cc\u0627\u0631 \u2014 \u0622\u067e \u06a9\u0627 EKS \u067e\u06cc\u0633\u06c1 \u06a9\u06c1\u0627\u06ba \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/h2>\n<h3 id=\"heading-11-the-typical-eks-cost-breakdown\">1.1 \u0639\u0627\u0645 EKS \u0644\u0627\u06af\u062a \u06a9\u0627 \u062a\u062c\u0632\u06cc\u06c1<\/h3>\n<p>\u06a9\u0633\u06cc \u0628\u06be\u06cc \u0686\u06cc\u0632 \u06a9\u0648 \u0686\u06be\u0648\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2\u060c \u0622\u067e \u06a9\u0648 \u06cc\u06c1 \u062c\u0627\u0646\u0646\u0627 \u06c1\u0648\u06af\u0627 \u06a9\u06c1 \u0622\u067e \u06a9\u0627 \u067e\u06cc\u0633\u06c1 \u06a9\u06c1\u0627\u06ba \u062c\u0627 \u0631\u06c1\u0627 \u06c1\u06d2\u06d4 \u067e\u06c1\u0644\u06d2 \u063a\u0644\u0637 \u0632\u0645\u0631\u06d2 \u06a9\u0648 \u0628\u06c1\u062a\u0631 \u0628\u0646\u0627\u0646\u0627 \u0622\u067e \u06a9\u06cc \u0679\u06cc\u0645 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u0646\u062c\u06cc\u0646\u0626\u0631\u0646\u06af \u06a9\u06d2 \u06c1\u0641\u062a\u0648\u06ba \u06a9\u0627 \u0648\u0642\u062a \u0636\u0627\u0626\u0639 \u06a9\u0631\u0646\u06d2 \u0627\u0648\u0631 \u06a9\u0648\u0626\u06cc \u0645\u0639\u0646\u06cc \u062e\u06cc\u0632 \u06a9\u0645\u06cc \u062f\u06cc\u06a9\u06be\u0646\u06d2 \u06a9\u0627 \u0627\u06cc\u06a9 \u0637\u0631\u06cc\u0642\u06c1 \u06c1\u06d2\u06d4<\/p>\n<p>\u06cc\u06c1\u0627\u06ba \u0627\u06cc\u06a9 \u0639\u0627\u0645 $85,000 \u0641\u06cc \u0645\u06c1\u06cc\u0646\u06c1 EKS \u06a9\u0644\u0633\u0679\u0631 \u06a9\u06cc \u062e\u0631\u0627\u0628\u06cc \u06c1\u06d2:<\/p>\n<table>\n<thead>\n<tr>\n<th>\u0632\u0645\u0631\u06c1<\/th>\n<th>\u0645\u0627\u06c1\u0627\u0646\u06c1 \u0644\u0627\u06af\u062a<\/th>\n<th>\u0641\u06cc\u0635\u062f<\/th>\n<th>\u0636\u0627\u0626\u0639 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0635\u0644\u0627\u062d\u06cc\u062a<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u06a9\u0645\u067e\u06cc\u0648\u0679 (EC2 \u0646\u0648\u0688\u0633)<\/td>\n<td>$52,000<\/td>\n<td>61%<\/td>\n<td>\u0632\u06cc\u0627\u062f\u06c1 &#8211; \u0632\u06cc\u0627\u062f\u06c1 \u0641\u0631\u0627\u06c1\u0645\u06cc\u060c \u063a\u0644\u0637 \u0645\u062b\u0627\u0644 \u06a9\u06cc \u0642\u0633\u0645<\/td>\n<\/tr>\n<tr>\n<td>\u0688\u06cc\u0679\u0627 \u06a9\u06cc \u0645\u0646\u062a\u0642\u0644\u06cc<\/td>\n<td>$15,300<\/td>\n<td>18%<\/td>\n<td>\u0628\u06c1\u062a \u0632\u06cc\u0627\u062f\u06c1 \u2014 \u06a9\u0631\u0627\u0633-AZ \u0627\u0648\u0631 NAT \u06af\u06cc\u0679 \u0648\u06d2 \u0686\u0627\u0631\u062c\u0632<\/td>\n<\/tr>\n<tr>\n<td>\u0630\u062e\u06cc\u0631\u06c1 (EBS \u0648\u0627\u0644\u06cc\u0648\u0645)<\/td>\n<td>$10,200<\/td>\n<td>12%<\/td>\n<td>\u0645\u06cc\u0688\u06cc\u0645 \u2014 \u0645\u0646\u0642\u0637\u0639 \u062c\u0644\u062f\u06cc\u06ba \u0627\u0648\u0631 gp2 \u0628\u0645\u0642\u0627\u0628\u0644\u06c1 gp3<\/td>\n<\/tr>\n<tr>\n<td>\u0644\u0648\u0688 \u0628\u06cc\u0644\u0646\u0633\u0631<\/td>\n<td>$4,250<\/td>\n<td>5%<\/td>\n<td>\u06a9\u0645 \u0633\u06d2 \u062f\u0631\u0645\u06cc\u0627\u0646\u06d2 \u062f\u0631\u062c\u06d2 \u062a\u06a9 &#8211; \u0633\u0646\u06af\u0644 \u0633\u0631\u0648\u0633 ALB<\/td>\n<\/tr>\n<tr>\n<td>\u0627\u06cc \u06a9\u06d2 \u0627\u06cc\u0633 \u06a9\u0646\u0679\u0631\u0648\u0644 \u06c1\u0648\u0627\u0626\u06cc \u062c\u06c1\u0627\u0632<\/td>\n<td>$72<\/td>\n<td><1%<\/td>\n<td>\u06a9\u0648\u0626\u06cc \u0646\u06c1\u06cc\u06ba &#8211; \u06cc\u06c1 \u0627\u06cc\u06a9 \u0645\u0642\u0631\u0631\u06c1 \u0644\u0627\u06af\u062a \u06c1\u06d2\u06d4<\/td>\n<\/tr>\n<tr>\n<td>\u0645\u062e\u062a\u0644\u0641<\/td>\n<td>$3,178<\/td>\n<td>4%<\/td>\n<td>\u06a9\u0645<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u06a9\u0645\u067e\u06cc\u0648\u0679 \u0627\u0648\u0631 \u0688\u06cc\u0679\u0627 \u06a9\u06cc \u0645\u0646\u062a\u0642\u0644\u06cc \u0627\u06cc\u06a9 \u0633\u0627\u062a\u06be 79% \u0644\u0627\u06af\u062a \u0627\u0648\u0631 90% \u0642\u0627\u0628\u0644 \u0627\u0635\u0644\u0627\u062d \u0641\u0636\u0644\u06c1 \u06c1\u06d2\u06d4 \u0648\u06c1 \u0645\u0642\u0627\u0635\u062f \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0634\u0631\u0648\u0639 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2\u060c \u062f\u0631\u062c \u0630\u06cc\u0644 \u06a9\u0645\u0627\u0646\u0688 \u06a9\u0648 \u0686\u0644\u0627 \u06a9\u0631 \u0627\u067e\u0646\u0627 \u062a\u062c\u0632\u06cc\u06c1 \u0686\u06cc\u06a9 \u06a9\u0631\u06cc\u06ba:<\/p>\n<pre><code class=\"language-bash\"># Pull last month's cost breakdown by service\n# Save this output \u2014 it becomes your before number\naws ce get-cost-and-usage \\\n  --time-period Start=\\((date -d 'last month' +%Y-%m-01),End=\\)(date +%Y-%m-01) \\\n  --granularity MONTHLY \\\n  --group-by Type=DIMENSION,Key=SERVICE \\\n  --metrics UnblendedCost \\\n  --query 'ResultsByTime[0].Groups[*].{Service:Keys[0],Cost:Metrics.UnblendedCost.Amount}' \\\n  --output table | sort -k3 -rn\n<\/code><\/pre>\n<p>\u0627\u0633\u06a9\u0631\u06cc\u0646 \u0634\u0627\u0679 \u0644\u06cc\u06ba \u0627\u0648\u0631 \u0622\u0624\u0679 \u067e\u0679 \u06a9\u0648 \u0645\u062d\u0641\u0648\u0638 \u06a9\u0631\u06cc\u06ba\u06d4 \u0627\u06af\u0644\u06d2 \u0645\u0631\u062d\u0644\u06d2 \u067e\u0631 \u062c\u0627\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0622\u067e \u0627\u067e\u0646\u06cc \u0627\u0635\u0644 \u0628\u0686\u062a \u06a9\u0648 \u062f\u06cc\u06a9\u06be\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06c1\u0631 \u0642\u062f\u0645 \u06a9\u06d2 \u0628\u0639\u062f \u0627\u0646 \u06a9\u0627 \u0645\u0648\u0627\u0632\u0646\u06c1 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-12-the-most-expensive-mistake-wrong-optimisation-order\">1.2 \u0645\u06c1\u0646\u06af\u06cc \u062a\u0631\u06cc\u0646 \u063a\u0644\u0637\u06cc: \u063a\u0644\u0637 \u0627\u0635\u0644\u0627\u062d\u06cc \u062a\u0631\u062a\u06cc\u0628<\/h3>\n<p>\u06cc\u06c1\u0627\u06ba \u06cc\u06c1 \u06c1\u06d2 \u06a9\u06c1 \u0632\u06cc\u0627\u062f\u06c1 \u062a\u0631 \u0679\u06cc\u0645\u06cc\u06ba \u06a9\u06cc\u0627 \u06a9\u0631\u062a\u06cc \u06c1\u06cc\u06ba \u062c\u0628 \u0627\u0646\u06c1\u06cc\u06ba AWS \u06a9\u0627 \u0628\u0691\u0627 \u0628\u0644 \u0645\u0648\u0635\u0648\u0644 \u06c1\u0648\u062a\u0627 \u06c1\u06d2:<\/p>\n<ol>\n<li>\n<p>\u0628\u0686\u062a \u06a9\u06d2 \u0645\u0646\u0635\u0648\u0628\u06d2 \u0641\u0648\u0631\u0627\u064b \u062e\u0631\u06cc\u062f\u06cc\u06ba \u0627\u0648\u0631 30% \u06a9\u06cc \u0686\u06be\u0648\u0679 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0636\u0627\u0626\u0639 \u06a9\u0631\u0646\u0627 \u0628\u0646\u062f \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0627\u0633 \u06a9\u06d2 \u0628\u0639\u062f \u06c1\u0645 \u0646\u06d2 \u06a9\u0627\u0631\u067e\u06cc\u0646\u0679\u0631 \u06a9\u0648 \u0644\u0627\u06af\u0648 \u06a9\u06cc\u0627 \u0627\u0648\u0631 \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u06cc\u0627 \u06a9\u06c1 \u06c1\u0645 \u0646\u06d2 \u063a\u0644\u0637 \u0645\u062b\u0627\u0644 \u0648\u0627\u0644\u06d2 \u062e\u0627\u0646\u062f\u0627\u0646\u0648\u06ba \u0633\u06d2 \u0632\u06cc\u0627\u062f\u062a\u06cc \u06a9\u06cc \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0627\u0633 \u06a9\u06d2 \u0628\u0639\u062f \u0622\u067e Graviton \u06a9\u06cc \u0637\u0631\u0641 \u06c1\u062c\u0631\u062a \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba \u06a9\u06c1 \u0628\u0686\u062a \u06a9\u06d2 \u0645\u0646\u0635\u0648\u0628\u06d2 \u0645\u06cc\u06ba ARM \u0645\u062b\u0627\u0644\u06cc\u06ba \u0634\u0627\u0645\u0644 \u0646\u06c1\u06cc\u06ba \u06c1\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<\/ol>\n<p>\u0646\u062a\u06cc\u062c\u06d2 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631\u060c \u0622\u067e \u06a9\u0648 12 \u0633\u06d2 36 \u0645\u0627\u06c1 \u06a9\u06d2 \u0641\u0636\u0644\u06d2 \u06a9\u06cc \u0627\u062f\u0627\u0626\u06cc\u06af\u06cc \u062e\u062a\u0645 \u06c1\u0648 \u062c\u0627\u062a\u06cc \u06c1\u06d2 \u062c\u0648 3 \u06c1\u0641\u062a\u0648\u06ba \u0645\u06cc\u06ba \u062e\u062a\u0645 \u06c1\u0648 \u0633\u06a9\u062a\u06cc \u062a\u06be\u06cc\u06d4<\/p>\n<p>\u0635\u062d\u06cc\u062d \u062a\u0631\u062a\u06cc\u0628 \u06cc\u06c1 \u06c1\u06d2:<\/p>\n<pre><code class=\"language-plaintext\">Step 1: Right-size pod requests        \u2190 Always first\nStep 2: Implement Karpenter            \u2190 Dynamic provisioning on rightsized requests\nStep 3: Enable Spot for non-prod       \u2190 Karpenter handles fallback automatically\nStep 4: Migrate to Graviton            \u2190 Karpenter makes this seamless\nStep 5: Add VPC endpoints              \u2190 Eliminate data transfer charges\nStep 6: Optimise EBS volumes           \u2190 Quick win, run alongside other steps\nStep 7: Consolidate load balancers     \u2190 Final structural cleanup\n<\/code><\/pre>\n<p>\u0627\u0633 \u06a9\u06d2 \u0628\u0639\u062f \u0622\u067e \u06a9\u06d2 \u0627\u0628\u06be\u06cc \u0645\u0642\u0631\u0631 \u06a9\u0631\u062f\u06c1 \u0622\u067e\u0679\u0645\u0627\u0626\u0632\u0688 \u0645\u0639\u06cc\u0627\u0631 \u06a9\u06cc \u0628\u0646\u06cc\u0627\u062f \u067e\u0631 \u0628\u0686\u062a \u06a9\u0627 \u0645\u0646\u0635\u0648\u0628\u06c1 \u062e\u0631\u06cc\u062f\u06cc\u06ba\u06d4<\/p>\n<p>\u0648\u0627\u062d\u062f \u0627\u0635\u0648\u0644 \u06cc\u06c1 \u06c1\u06d2 \u06a9\u06c1 \u067e\u06c1\u0644\u06d2 \u0627\u0635\u0644\u0627\u062d \u06a9\u0631\u06cc\u06ba \u0627\u0648\u0631 \u067e\u06be\u0631 \u0639\u06c1\u062f \u06a9\u0631\u06cc\u06ba\u06d4 \u0633\u06cc\u0648\u0646\u06af \u067e\u0644\u0627\u0646 \u062e\u0631\u06cc\u062f\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0622\u067e \u062c\u0648 \u0628\u06be\u06cc \u0642\u062f\u0645 \u0627\u0679\u06be\u0627\u062a\u06d2 \u06c1\u06cc\u06ba \u0627\u0633 \u0633\u06d2 \u0622\u067e \u06a9\u06d2 \u067e\u0627\u0633 \u0627\u06cc\u06a9 \u0633\u06d2 \u062a\u06cc\u0646 \u0633\u0627\u0644 \u062a\u06a9 \u06a9\u06cc \u0631\u0642\u0645 \u06a9\u0645 \u06c1\u0648 \u062c\u0627\u0626\u06d2 \u06af\u06cc\u06d4<\/p>\n<h2 id=\"heading-part-2-right-sizing-pod-resource-requests\">\u062d\u0635\u06c1 2: \u0627\u0633\u06a9\u06cc\u0644\u0646\u06af \u067e\u0648\u0688 \u0631\u06cc\u0633\u0648\u0631\u0633 \u06a9\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u06cc\u06ba\u06d4<\/h2>\n<h3 id=\"heading-21-why-over-provisioned-requests-are-so-expensive\">2.1 \u0636\u0631\u0648\u0631\u062a \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062f\u06c1 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u06cc\u06ba \u0645\u06c1\u0646\u06af\u06cc \u06a9\u06cc\u0648\u06ba \u06c1\u06cc\u06ba\u06d4<\/h3>\n<p>Kubernetes \u0648\u0633\u0627\u0626\u0644 \u06a9\u06cc \u0628\u0646\u06cc\u0627\u062f \u067e\u0631 \u067e\u0648\u0688 \u06a9\u0648 \u0634\u06cc\u0688\u0648\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 <em>\u062f\u0631\u062e\u0648\u0627\u0633\u062a<\/em> &#8211; \u0627\u0635\u0644 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u0646\u06c1\u06cc\u06ba\u06d4 2 vCPUs \u0627\u0648\u0631 4 GB \u0645\u06cc\u0645\u0648\u0631\u06cc \u06a9\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0631\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u067e\u0648\u0688 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9 \u0646\u0648\u0688 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u0648\u062a\u06cc \u06c1\u06d2 \u062c\u0648 \u0627\u0633 \u0635\u0644\u0627\u062d\u06cc\u062a \u06a9\u0648 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631 \u0633\u06a9\u06d2\u060c \u0642\u0637\u0639 \u0646\u0638\u0631 \u0627\u0633 \u06a9\u06d2 \u06a9\u06c1 \u067e\u0648\u0688 \u0627\u0633\u06d2 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u063a\u0644\u0637 \u0646\u0642\u0637\u06c1 \u0646\u0638\u0631\u060c \u062c\u0648 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0648 \u0632\u06cc\u0627\u062f\u06c1 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u0628\u062f\u062a\u0631\u06cc\u0646 \u062a\u062e\u0645\u06cc\u0646\u06c1 \u067e\u0631 \u0633\u06cc\u0679 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u06cc\u06c1 \u06c1\u06d2:<\/p>\n<pre><code class=\"language-yaml\"># Bad: Resource requests set during initial deployment, never revisited\n# This pod actually uses 250m CPU and 512Mi memory on average\nresources:\n  requests:\n    cpu: \"2\"        # 8x more than actual usage\n    memory: \"4Gi\"   # 8x more than actual usage\n  limits:\n    cpu: \"4\"\n    memory: \"8Gi\"\n<\/code><\/pre>\n<p>\u0627\u06af\u0631 \u062a\u0645\u0627\u0645 \u067e\u0648\u0688\u0632 \u06a9\u0648 8 \u06af\u0646\u0627 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u0633\u0628\u0633\u06a9\u0631\u0627\u0626\u0628 \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u060c \u062a\u0648 \u0622\u067e \u06a9\u06d2 \u06a9\u0644\u0633\u0679\u0631 \u06a9\u0648 \u0622\u067e \u06a9\u06d2 \u06a9\u0627\u0645 \u06a9\u06d2 \u0628\u0648\u062c\u06be \u0633\u06d2 8 \u06af\u0646\u0627 \u0632\u06cc\u0627\u062f\u06c1 \u0646\u0648\u0688\u0633 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u0648\u06af\u06cc\u06d4 \u06cc\u06c1 \u0648\u06c1 \u062c\u06af\u06c1 \u06c1\u06d2 \u062c\u06c1\u0627\u06ba \u0628\u0644 \u06a9\u06cc 61% \u06a9\u0645\u067e\u06cc\u0648\u0679 \u0644\u0627\u0626\u0646 \u0622\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p>\u0633\u0628 \u0633\u06d2 \u067e\u06c1\u0644\u06d2\u060c \u06a9\u0633\u06cc \u0628\u06be\u06cc \u0686\u06cc\u0632 \u06a9\u0648 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0627\u067e\u0646\u06d2 \u0627\u0635\u0644 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0648 \u0686\u06cc\u06a9 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-bash\"># Install Metrics Server if not already running\nkubectl apply -f https:\/\/github.com\/kubernetes-sigs\/metrics-server\/releases\/latest\/download\/components.yaml\n\n# Check actual CPU and memory usage per pod\n# Compare these numbers against your current resource requests\nkubectl top pods --all-namespaces --sort-by=cpu\n<\/code><\/pre>\n<p>\u0645\u062a\u0648\u0642\u0639 \u0622\u0624\u0679 \u067e\u0679 \u0639\u0627\u0645 \u0641\u0631\u0642 \u062f\u06a9\u06be\u0627 \u0631\u06c1\u0627 \u06c1\u06d2:<\/p>\n<pre><code class=\"language-plaintext\">NAMESPACE     NAME                    CPU(cores)   MEMORY(bytes)\nproduction    payment-api-xxx         25m          128Mi\nproduction    user-api-xxx            15m          96Mi\nproduction    notification-svc-xxx    5m           64Mi\nstaging       worker-xxx              10m          256Mi\n<\/code><\/pre>\n<p>\u0627\u06af\u0631 \u067e\u0648\u0688 \u06c1\u0631 \u0627\u06cc\u06a9 \u0645\u06cc\u06ba 2 \u0633\u06cc \u067e\u06cc \u06cc\u0648 \u06a9\u0648\u0631 \u06a9\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba \u0644\u06cc\u06a9\u0646 \u062f\u0631\u062d\u0642\u06cc\u0642\u062a 25 \u0633\u06d2 15 \u0645\u0644\u06cc\u0646 \u06a9\u0648\u0631 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba \u062a\u0648 \u0627\u0633 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0627 \u062a\u0646\u0627\u0633\u0628 50 \u0633\u06d2 80 \u06af\u0646\u0627 \u06c1\u06d2\u06d4 \u06a9\u0644\u0633\u0679\u0631 \u0645\u06cc\u06ba \u062a\u0645\u0627\u0645 \u0646\u0648\u0688\u0633 \u0632\u06cc\u0627\u062f\u06c1 \u062a\u0631 \u062e\u0627\u0644\u06cc \u062c\u06af\u06c1\u06cc\u06ba \u06c1\u06cc\u06ba \u062c\u0646 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0622\u067e \u0627\u062f\u0627\u0626\u06cc\u06af\u06cc \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-22-using-the-vertical-pod-autoscaler-for-recommendations\">2.2 \u0633\u0641\u0627\u0631\u0634\u0627\u062a \u06a9\u06d2 \u0644\u06cc\u06d2 \u0639\u0645\u0648\u062f\u06cc \u067e\u0648\u0688 \u0622\u0679\u0648 \u0627\u0633\u06a9\u06cc\u0644\u0646\u06af \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/h3>\n<p>Vertical Pod Autoscaler (VPA) \u0627\u06cc\u06a9 Kubernetes \u062c\u0632\u0648 \u06c1\u06d2 \u062c\u0648 \u06c1\u0631 \u062a\u0639\u06cc\u0646\u0627\u062a\u06cc \u06a9\u06d2 \u0644\u06cc\u06d2 \u062a\u0627\u0631\u06cc\u062e\u06cc CPU \u0627\u0648\u0631 \u0645\u06cc\u0645\u0648\u0631\u06cc \u06a9\u06d2 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0627 \u062a\u062c\u0632\u06cc\u06c1 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0648\u0633\u0627\u0626\u0644 \u06a9\u06cc \u0628\u06c1\u062a\u0631\u06cc\u0646 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u0648\u06ba \u06a9\u06cc \u0633\u0641\u0627\u0631\u0634 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0633\u0628 \u0633\u06d2 \u067e\u06c1\u0644\u06d2\u060c \u0627\u0633\u06d2 \u0635\u0631\u0641 \u062a\u062c\u0648\u06cc\u0632 \u06a9\u0631\u062f\u06c1 \u0645\u0648\u0688 \u0645\u06cc\u06ba \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4 \u06cc\u06c1 \u062e\u0648\u062f \u0628\u062e\u0648\u062f \u0622\u067e \u06a9\u0648 \u0628\u062a\u0627\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u0628\u063a\u06cc\u0631 \u06a9\u0633\u06cc \u062a\u0628\u062f\u06cc\u0644\u06cc \u06a9\u06d2 \u06a9\u06cc\u0627 \u0633\u06cc\u0679 \u06a9\u0631\u0646\u0627 \u06c1\u06d2\u060c \u0644\u06c1\u0630\u0627 \u0622\u067e \u06a9\u06d2 \u067e\u0627\u0633 \u0645\u06a9\u0645\u0644 \u06a9\u0646\u0679\u0631\u0648\u0644 \u06c1\u06d2 \u0627\u0648\u0631 \u0622\u067e \u062e\u0648\u062f \u062a\u0628\u062f\u06cc\u0644\u06cc\u0648\u06ba \u06a9\u0627 \u062c\u0627\u0626\u0632\u06c1 \u0644\u06d2 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u0627\u0646 \u06a9\u0627 \u0627\u0637\u0644\u0627\u0642 \u06a9\u0631\u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u062f\u0631\u0633\u062a \u0646\u0641\u0627\u0630 \u06cc\u06c1 \u06c1\u06d2:<\/p>\n<pre><code class=\"language-yaml\"># Good: VPA in recommendation-only mode\n# Watches your pod's actual usage for 24+ hours, then recommends right-sized requests\n# updateMode: \"Off\" means it only recommends \u2014 it never restarts your pods\napiVersion: autoscaling.k8s.io\/v1\nkind: VerticalPodAutoscaler\nmetadata:\n  name: payment-api-vpa\n  namespace: production\nspec:\n  targetRef:\n    apiVersion: apps\/v1\n    kind: Deployment\n    name: payment-api\n  updatePolicy:\n    updateMode: \"Off\"   # Recommendation only \u2014 you apply manually after review\n  resourcePolicy:\n    containerPolicies:\n    - containerName: \"*\"\n      minAllowed:\n        cpu: \"100m\"     # VPA will never recommend below this floor\n        memory: \"256Mi\"\n      maxAllowed:\n        cpu: \"2\"        # VPA will never recommend above this ceiling\n        memory: \"4Gi\"\n<\/code><\/pre>\n<p>VPA \u0627\u0646\u0633\u0679\u0627\u0644 \u06a9\u0631\u06cc\u06ba \u0627\u0648\u0631 \u0633\u0641\u0627\u0631\u0634\u0627\u062a \u062a\u0644\u0627\u0634 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-bash\"># Install VPA components\nkubectl apply -f https:\/\/github.com\/kubernetes\/autoscaler\/releases\/download\/vertical-pod-autoscaler-1.0.0\/vpa-v1.0.0.yaml\n\n# Apply the VPA manifest for each deployment you want to right-size\nkubectl apply -f vpa\/payment-api-vpa.yaml\n\n# Wait 24 hours for VPA to collect usage data, then check recommendations\nkubectl describe vpa payment-api-vpa -n production\n<\/code><\/pre>\n<p>VPA \u06a9\u06cc \u0633\u0641\u0627\u0631\u0634\u0627\u062a \u0645\u06cc\u06ba \u0634\u0627\u0645\u0644 \u06c1\u06cc\u06ba:<\/p>\n<pre><code class=\"language-plaintext\">Recommendation:\n  Container Recommendations:\n    Container Name: payment-api\n    Lower Bound:\n      cpu:     50m\n      memory:  128Mi\n    Target:\n      cpu:     250m      \u2190 Set your requests to this value\n      memory:  512Mi     \u2190 Set your requests to this value\n    Upper Bound:\n      cpu:     500m\n      memory:  1Gi\n<\/code><\/pre>\n<p>\u0627\u067e\u0646\u06cc \u062a\u0639\u06cc\u0646\u0627\u062a\u06cc \u067e\u0631 \u0633\u0641\u0627\u0631\u0634\u0627\u062a \u06a9\u0627 \u0627\u0637\u0644\u0627\u0642 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-yaml\"># Good: Right-sized requests based on VPA Target recommendation\nresources:\n  requests:\n    cpu: \"250m\"     # Down from 2000m \u2014 an 8x reduction\n    memory: \"512Mi\" # Down from 4096Mi \u2014 an 8x reduction\n  limits:\n    cpu: \"500m\"     # 2x the request \u2014 headroom for genuine spikes\n    memory: \"1Gi\"   # 2x the request\n<\/code><\/pre>\n<p>\u0639\u0627\u0645 \u062a\u0639\u06cc\u0646\u0627\u062a\u06cc \u06a9\u06cc \u0627\u0642\u0633\u0627\u0645 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062a\u0645\u0627\u0645 VPA \u0645\u06cc\u0646\u06cc \u0641\u06cc\u0633\u0679 \u06c1\u06cc\u06ba\u06d4 <code>vpa\/<\/code> \u06cc\u06c1 \u0633\u0627\u062a\u06be\u06cc \u0630\u062e\u06cc\u0631\u06c1 \u0645\u06cc\u06ba \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-23-the-roi-of-right-sizing\">2.3 \u062f\u0627\u0626\u06cc\u06ba \u0633\u0627\u0626\u0632 \u06a9\u0627 ROI<\/h3>\n<table>\n<thead>\n<tr>\n<th>\u0645\u06cc\u0679\u0631\u06a9 \u0646\u0638\u0627\u0645<\/th>\n<th>\u067e\u06c1\u0644\u06d2<\/th>\n<th>\u0628\u0639\u062f \u0645\u06cc\u06ba<\/th>\n<th>\u0628\u06c1\u062a\u0631\u06cc<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u0627\u0648\u0633\u0637 CPU \u0627\u0633\u062a\u0639\u0645\u0627\u0644<\/td>\n<td>18%<\/td>\n<td>65%<\/td>\n<td>+47 \u0641\u06cc\u0635\u062f \u067e\u0648\u0627\u0626\u0646\u0679\u0633<\/td>\n<\/tr>\n<tr>\n<td>\u0646\u0648\u0688\u0633 \u06a9\u06cc \u062a\u0639\u062f\u0627\u062f \u062f\u0631\u06a9\u0627\u0631 \u06c1\u06d2\u06d4<\/td>\n<td>42<\/td>\n<td>28<\/td>\n<td>-33%<\/td>\n<\/tr>\n<tr>\n<td>\u0645\u0627\u06c1\u0627\u0646\u06c1 \u06a9\u0645\u067e\u06cc\u0648\u0679 \u0644\u0627\u06af\u062a<\/td>\n<td>$52,000<\/td>\n<td>$36,400<\/td>\n<td>-$15,600\/\u0645\u06c1\u06cc\u0646\u06c1<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u0633\u0641\u0627\u0631\u0634\u0627\u062a \u06a9\u0648 \u0644\u0627\u06af\u0648 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0628\u0639\u062f\u060c \u0628\u06c1\u062a\u0631\u06cc \u062f\u06cc\u06a9\u06be\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-bash\"># Check cluster-level utilisation after right-sizing\n# Target: 60\u201375% CPU and memory utilisation across nodes\nkubectl top nodes\n<\/code><\/pre>\n<h2 id=\"heading-part-3-karpenter-for-bin-packing-and-spot-diversification\">\u062d\u0635\u06c1 3: \u0628\u0646 \u067e\u06cc\u06a9\u0646\u06af \u0627\u0648\u0631 \u062c\u06af\u06c1 \u06a9\u06cc \u062a\u0646\u0648\u0639 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u0627\u0631\u067e\u06cc\u0646\u0679\u0631\u06d4<\/h2>\n<p>\u06a9\u0627\u0631\u067e\u06cc\u0646\u0679\u0631 \u0627\u06cc\u06a9 \u0627\u0648\u067e\u0646 \u0633\u0648\u0631\u0633 Kubernetes \u0646\u0648\u0688 \u067e\u0631\u0648\u0648\u06cc\u0698\u0646\u0631 \u06c1\u06d2 \u062c\u0648 AWS \u067e\u0631 \u0628\u0646\u0627\u06cc\u0627 \u06af\u06cc\u0627 \u06c1\u06d2 \u0627\u0648\u0631 CNCF \u06a9\u0648 \u0639\u0637\u06cc\u06c1 \u06a9\u06cc\u0627 \u06af\u06cc\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u062c\u06cc\u0633\u0627 \u06a9\u06c1 \u0688\u06cc\u0641\u0627\u0644\u0679 Kubernetes Cluster Autoscaler \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u062a\u0631\u062a\u06cc\u0628 \u0634\u062f\u06c1 \u0646\u0648\u0688 \u06af\u0631\u0648\u067e\u0633 \u06a9\u0648 \u0627\u0648\u067e\u0631 \u0627\u0648\u0631 \u0646\u06cc\u0686\u06d2 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u06a9\u0627\u0631\u067e\u06cc\u0646\u0679\u0631 \u067e\u0648\u0688 \u06a9\u06cc \u0632\u06cc\u0631 \u0627\u0644\u062a\u0648\u0627\u0621 \u0627\u0635\u0644 \u0648\u0633\u0627\u0626\u0644 \u06a9\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u0648\u06ba \u0627\u0648\u0631 \u0627\u0646 \u0633\u06d2 \u0645\u0644\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0628\u0627\u0644\u06a9\u0644 \u0645\u0648\u0632\u0648\u06ba EC2 \u0645\u062b\u0627\u0644 \u06a9\u06cc \u0627\u0642\u0633\u0627\u0645 \u06a9\u0648 \u062f\u06cc\u06a9\u06be\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u0633 \u06a9\u0627 \u0645\u0637\u0644\u0628 \u06cc\u06c1 \u06c1\u06d2 \u06a9\u06c1 \u0622\u067e \u0635\u0631\u0641 \u062f\u0648 \u06cc\u0627 \u062a\u06cc\u0646 \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u062a\u0634\u06a9\u06cc\u0644 \u0634\u062f\u06c1 \u0645\u062b\u0627\u0644\u0648\u06ba \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2 \u06c1\u0632\u0627\u0631\u0648\u06ba \u062f\u0633\u062a\u06cc\u0627\u0628 \u0645\u062b\u0627\u0644 \u06a9\u06d2 \u062e\u0627\u0646\u062f\u0627\u0646\u0648\u06ba \u0645\u06cc\u06ba \u0633\u06d2 \u0645\u062a\u062d\u0631\u06a9 \u0637\u0648\u0631 \u067e\u0631 \u0645\u0646\u062a\u062e\u0628 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u06cc\u06c1 \u06a9\u0645 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0686\u0644\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u0646\u0648\u0688\u0633 \u06a9\u06cc \u0645\u0633\u0644\u0633\u0644 \u0646\u06af\u0631\u0627\u0646\u06cc \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u06a9\u0627\u0645 \u06a9\u06d2 \u0628\u0648\u062c\u06be \u06a9\u0648 \u06a9\u0645 \u0646\u0648\u0688\u0633 \u067e\u0631 \u0645\u0633\u062a\u062d\u06a9\u0645 \u06a9\u0631\u06a9\u06d2 \u062e\u0627\u0644\u06cc \u0646\u0648\u0688\u0633 \u06a9\u0648 \u062e\u0648\u062f \u0628\u062e\u0648\u062f \u062e\u062a\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0646\u062a\u06cc\u062c\u06d2 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631\u060c \u06a9\u0644\u0633\u0679\u0631 \u06a9\u0627 \u0633\u0627\u0626\u0632 \u06c1\u0645\u06cc\u0634\u06c1 \u0633\u06cc\u0679 \u0627\u067e \u06a9\u06d2 \u0648\u0642\u062a \u0645\u062a\u0648\u0642\u0639 \u0633\u0627\u0626\u0632 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2 \u0645\u0648\u062c\u0648\u062f\u06c1 \u06a9\u0627\u0645 \u06a9\u06d2 \u0628\u0648\u062c\u06be \u06a9\u06d2 \u0644\u06cc\u06d2 \u062f\u0631\u06a9\u0627\u0631 \u0633\u0627\u0626\u0632 \u0645\u06cc\u06ba \u062a\u0628\u062f\u06cc\u0644 \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-31-the-ceiling-with-cluster-autoscaler\">3.1 \u06a9\u0644\u0633\u0679\u0631 \u0622\u0679\u0648 \u0627\u0633\u06a9\u06cc\u0644\u0631 \u06a9\u06cc \u062d\u062f\u0648\u062f<\/h3>\n<p>\u06a9\u0644\u0633\u0679\u0631 \u0622\u0679\u0648 \u0627\u0633\u06a9\u06cc\u0644\u0631 \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u0637\u06d2 \u0634\u062f\u06c1 \u0646\u0648\u0688 \u06af\u0631\u0648\u067e\u0633 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u06a9\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u062c\u06cc\u0633\u0627 \u06a9\u06c1 \u0622\u067e \u062f\u0633\u062a\u06cc\u0627\u0628 \u0645\u062b\u0627\u0644 \u06a9\u06cc \u0627\u0642\u0633\u0627\u0645 \u06a9\u0648 \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u06af\u0631\u0648\u067e \u06a9\u0648 \u0627\u0648\u067e\u0631 \u0627\u0648\u0631 \u0646\u06cc\u0686\u06d2 \u06a9\u06cc \u067e\u06cc\u0645\u0627\u0626\u0634 \u06c1\u0648\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p>\u062d\u062f \u06cc\u06c1 \u06c1\u06d2 \u06a9\u06c1 \u0622\u067e \u0635\u0631\u0641 \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u062a\u0634\u06a9\u06cc\u0644 \u0634\u062f\u06c1 \u0627\u0642\u0633\u0627\u0645 \u06a9\u06cc \u0645\u062b\u0627\u0644\u06cc\u06ba \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0622\u067e \u0645\u062a\u062d\u0631\u06a9 \u0637\u0648\u0631 \u067e\u0631 \u0635\u062d\u06cc\u062d \u0645\u062b\u0627\u0644 \u06a9\u06cc \u0642\u0633\u0645 \u06a9\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u0646\u06c1\u06cc\u06ba \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba \u0627\u0633 \u06a9\u06cc \u0628\u0646\u06cc\u0627\u062f \u067e\u0631 \u06a9\u06c1 \u0622\u067e \u06a9\u06d2 \u0645\u0648\u062c\u0648\u062f\u06c1 \u06a9\u0627\u0645 \u06a9\u06d2 \u0628\u0648\u062c\u06be \u06a9\u0648 \u062f\u0631\u062d\u0642\u06cc\u0642\u062a \u06a9\u06cc\u0627 \u0636\u0631\u0648\u0631\u062a \u06c1\u06d2\u06d4<\/p>\n<p>\u062c\u0627\u0645\u062f \u0646\u0648\u0688 \u06af\u0631\u0648\u067e\u0633 \u06a9\u0648 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u0627 \u063a\u0644\u0637 \u0637\u0631\u06cc\u0642\u06c1 \u06cc\u06c1 \u06c1\u06d2:<\/p>\n<pre><code class=\"language-bash\"># Bad: Two static node groups, each over-provisioning against worst-case scenarios\n# CPU-optimised group runs even when workloads are memory-bound\n# Memory-optimised group runs even when workloads are CPU-bound\neksctl create nodegroup \\\n  --cluster my-cluster \\\n  --name cpu-optimized \\\n  --instance-types c5.2xlarge \\\n  --nodes-min 5 --nodes-max 20\n\neksctl create nodegroup \\\n  --cluster my-cluster \\\n  --name memory-optimized \\\n  --instance-types r5.2xlarge \\\n  --nodes-min 3 --nodes-max 10\n<\/code><\/pre>\n<p>\u06c1\u0645 \u0628\u06cc\u06a9 \u0648\u0642\u062a \u06c1\u0631 \u062e\u0627\u0646\u062f\u0627\u0646 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0628\u062f\u062a\u0631\u06cc\u0646 \u0635\u0648\u0631\u062a \u062d\u0627\u0644 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062a\u06cc\u0627\u0631\u06cc \u06a9\u0631 \u0631\u06c1\u06d2 \u06c1\u06cc\u06ba\u06d4 \u06a9\u0633\u06cc \u0628\u06be\u06cc \u0644\u0645\u062d\u06d2\u060c \u0627\u06cc\u06a9 \u06af\u0631\u0648\u06c1 \u06a9\u0648 \u06a9\u0645 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u06cc\u0627 \u062c\u0627 \u0631\u06c1\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u062f\u0648\u0633\u0631\u0627 \u06af\u0631\u0648\u06c1 \u067e\u06be\u06cc\u0644 \u0631\u06c1\u0627 \u06c1\u06d2\u06d4 \u0646\u06c1 \u06c1\u06cc \u062f\u0631\u0633\u062a \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-32-how-karpenter-solves-this\">3.2 \u06a9\u0627\u0631\u067e\u06cc\u0646\u0679\u0631 \u0627\u0633 \u0645\u0633\u0626\u0644\u06d2 \u06a9\u0648 \u06a9\u06cc\u0633\u06d2 \u062d\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/h3>\n<p>\u06a9\u0627\u0631\u067e\u06cc\u0646\u0679\u0631 \u067e\u0648\u0688 \u06a9\u06cc \u0632\u06cc\u0631 \u0627\u0644\u062a\u0648\u0627\u0621 \u0627\u0635\u0644 \u0648\u0633\u0627\u0626\u0644 \u06a9\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u0648\u06ba \u06a9\u06cc \u0646\u06af\u0631\u0627\u0646\u06cc \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0627\u0633 \u06a9\u06d2 \u0645\u0637\u0627\u0628\u0642 \u0645\u062b\u0627\u0644 \u06a9\u06cc \u0635\u062d\u06cc\u062d \u0642\u0633\u0645 \u06a9\u06cc \u0641\u0631\u0627\u06c1\u0645\u06cc \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u062f\u0648 \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u062a\u0634\u06a9\u06cc\u0644 \u0634\u062f\u06c1 \u0645\u062b\u0627\u0644 \u06a9\u06cc \u0627\u0642\u0633\u0627\u0645 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0633\u0627\u062a\u06be \u06c1\u0632\u0627\u0631\u0648\u06ba \u062f\u0633\u062a\u06cc\u0627\u0628 \u0645\u062b\u0627\u0644 \u06a9\u06cc \u0627\u0642\u0633\u0627\u0645 \u0645\u06cc\u06ba \u0633\u06d2 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0631\u06cc\u06ba\u06d4 \u0645\u0632\u06cc\u062f \u0628\u0631\u0622\u06ba\u060c \u062c\u0628 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u0645\u06cc\u06ba \u06a9\u0645\u06cc \u0622\u062a\u06cc \u06c1\u06d2\u060c \u062a\u0648 \u06cc\u06c1 \u062e\u0648\u062f \u0628\u062e\u0648\u062f \u06a9\u0645 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u0634\u062f\u06c1 \u0646\u0648\u0688\u0633 \u06a9\u0648 \u06a9\u0645 \u0646\u0648\u0688\u0633 \u067e\u0631 \u0686\u0644\u0627\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u06a9\u0627\u0645 \u06a9\u06d2 \u0628\u0648\u062c\u06be \u06a9\u0648 \u0645\u0636\u0628\u0648\u0637 \u06a9\u0631 \u06a9\u06d2 \u0628\u0646\u062f \u06a9\u0631 \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u062f\u0631\u0633\u062a \u0646\u0641\u0627\u0630 \u06cc\u06c1 \u06c1\u06d2:<\/p>\n<pre><code class=\"language-yaml\"># Good: Karpenter NodePool\n# Karpenter selects the optimal instance type based on pending pod requirements\n# Tries Spot first, falls back to On-Demand automatically when Spot isn't available\napiVersion: karpenter.sh\/v1beta1\nkind: NodePool\nmetadata:\n  name: default\nspec:\n  template:\n    spec:\n      requirements:\n        # Allow both x86 and ARM (Graviton) \u2014 Karpenter picks the cheaper option\n        - key: kubernetes.io\/arch\n          operator: In\n          values: [\"amd64\", \"arm64\"]\n        # Try Spot first, fall back to On-Demand if unavailable\n        - key: karpenter.sh\/capacity-type\n          operator: In\n          values: [\"spot\", \"on-demand\"]\n        # Exclude families with poor price-to-performance ratio\n        - key: karpenter.k8s.aws\/instance-family\n          operator: NotIn\n          values: [\"t2\", \"t3a\"]\n  limits:\n    cpu: \"1000\"\n    memory: \"4000Gi\"\n  disruption:\n    # Remove underutilised nodes and reschedule their pods automatically\n    consolidationPolicy: WhenUnderutilized\n    # Recycle nodes after 30 days to ensure fresh, patched AMIs\n    expireAfter: 720h\n<\/code><\/pre>\n<p>\u06c1\u0631 \u062a\u0631\u062a\u06cc\u0628 \u06a9\u0627 \u06a9\u0631\u062f\u0627\u0631 \u0645\u0646\u062f\u0631\u062c\u06c1 \u0630\u06cc\u0644 \u06c1\u06d2:<\/p>\n<ul>\n<li>\n<p><code>consolidationPolicy: WhenUnderutilized<\/code>: \u06a9\u0627\u0631\u067e\u06cc\u0646\u0679\u0631 \u0645\u0633\u0644\u0633\u0644 \u0646\u0648\u0688 \u06a9\u06d2 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u06cc \u0646\u06af\u0631\u0627\u0646\u06cc \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u067e\u0648\u0688 \u06a9\u0648 \u062f\u0648\u0633\u0631\u06cc \u062c\u06af\u06c1 \u0645\u0646\u062a\u0642\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u0645 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u0634\u062f\u06c1 \u0646\u0648\u0688\u0633 \u06a9\u0648 \u06c1\u0679\u0627\u062a\u0627 \u06c1\u06d2\u06d4 \u0646\u0648\u0688\u0633 \u06a9\u06cc \u062a\u0639\u062f\u0627\u062f \u062e\u0648\u062f \u0628\u062e\u0648\u062f \u06a9\u0645 \u06c1\u0648 \u062c\u0627\u062a\u06cc \u06c1\u06d2 \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u0628\u0648\u062c\u06be \u0628\u063a\u06cc\u0631 \u06a9\u0633\u06cc \u062f\u0633\u062a\u06cc \u0645\u062f\u0627\u062e\u0644\u062a \u06a9\u06d2 \u06a9\u0645 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><code>expireAfter: 720h<\/code>: 30 \u062f\u0646 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u067e\u0631\u0627\u0646\u06d2 \u0646\u0648\u0688\u0633 \u06a9\u0648 \u0645\u0646\u0627\u0633\u0628 \u0637\u0631\u06cc\u0642\u06d2 \u0633\u06d2 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u060c \u0627\u0633 \u0628\u0627\u062a \u06a9\u0648 \u06cc\u0642\u06cc\u0646\u06cc \u0628\u0646\u0627\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u06a9\u06c1 \u0622\u067e \u06a9\u0627 \u0627\u0646\u0641\u0631\u0627\u0633\u0679\u0631\u06a9\u0686\u0631 \u06c1\u0645\u06cc\u0634\u06c1 \u0645\u0648\u062c\u0648\u062f\u06c1 \u0633\u06cc\u06a9\u06cc\u0648\u0631\u0679\u06cc \u067e\u06cc\u0686 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u062c\u062f\u06cc\u062f \u062a\u0631\u06cc\u0646 EKS \u0633\u06d2 \u0628\u06c1\u062a\u0631 AMIs \u0686\u0644\u0627 \u0631\u06c1\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><code>values: [\"spot\", \"on-demand\"]<\/code>: \u06a9\u0627\u0631\u067e\u06cc\u0646\u0679\u0631 \u067e\u06c1\u0644\u06d2 \u062c\u06af\u06c1 \u06a9\u06cc \u0635\u0644\u0627\u062d\u06cc\u062a \u06a9\u0648 \u0622\u0632\u0645\u0627\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u06af\u0631 \u0627\u0633\u067e\u0627\u0679 \u0622\u067e \u06a9\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0631\u062f\u06c1 \u0645\u062b\u0627\u0644 \u06a9\u06cc \u0642\u0633\u0645 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062f\u0633\u062a\u06cc\u0627\u0628 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u060c \u062a\u0648 \u06cc\u06c1 \u0628\u063a\u06cc\u0631 \u06a9\u0633\u06cc \u0627\u0637\u0644\u0627\u0639 \u06cc\u0627 \u062f\u0633\u062a\u06cc \u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc \u06a9\u06d2 \u0648\u0627\u067e\u0633 \u0622\u0646 \u0688\u06cc\u0645\u0627\u0646\u0688 \u067e\u0631 \u0622 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<\/ul>\n<p>\u06a9\u0644\u0633\u0679\u0631 \u0622\u0679\u0648 \u0627\u0633\u06a9\u06cc\u0644\u0631 \u0633\u06d2 \u0645\u062d\u0641\u0648\u0638 \u0637\u0631\u06cc\u0642\u06d2 \u0633\u06d2 \u06c1\u062c\u0631\u062a \u06a9\u0631\u06cc\u06ba:<\/p>\n<pre><code class=\"language-bash\"># Step 1: Install Karpenter alongside Cluster Autoscaler \u2014 do not remove CAS yet\nhelm repo add karpenter https:\/\/charts.karpenter.sh\nhelm install karpenter karpenter\/karpenter \\\n  --namespace karpenter \\\n  --create-namespace \\\n  --set settings.clusterName=your-cluster-name\n\n# Step 2: Apply NodePool and NodeClass configuration\nkubectl apply -f karpenter\/nodepool.yaml\nkubectl apply -f karpenter\/nodeclass.yaml\n\n# Step 3: Taint existing legacy nodes so new pods schedule on Karpenter nodes\n# This migrates workloads gradually \u2014 zero downtime\nkubectl taint nodes -l eks.amazonaws.com\/nodegroup=cpu-optimized \\\n  group=legacy:NoSchedule\n\n# Step 4: Watch pods reschedule to Karpenter-managed nodes over the next hour\nkubectl get pods -o wide --all-namespaces | grep -v legacy\n\n# Step 5: After 30 days of stable operation, remove the old node groups\neksctl delete nodegroup --cluster my-cluster --name cpu-optimized\neksctl delete nodegroup --cluster my-cluster --name memory-optimized\n<\/code><\/pre>\n<p>\u0646\u0648\u0688 \u067e\u0648\u0644 \u0627\u0648\u0631 \u0646\u0648\u0688 \u06a9\u0644\u0627\u0633 \u0679\u06cc\u0645\u067e\u0644\u06cc\u0679\u0633 \u062a\u0639\u06cc\u0646\u0627\u062a \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062a\u06cc\u0627\u0631 \u06c1\u06cc\u06ba\u06d4 <code>karpenter\/<\/code> \u06cc\u06c1 \u0633\u0627\u062a\u06be\u06cc \u0630\u062e\u06cc\u0631\u06c1 \u0645\u06cc\u06ba \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-33-spot-instances-for-non-production-workloads\">3.3 \u063a\u06cc\u0631 \u067e\u06cc\u062f\u0627\u0648\u0627\u0631\u06cc \u06a9\u0627\u0645 \u06a9\u06d2 \u0628\u0648\u062c\u06be \u06a9\u06d2 \u0644\u06cc\u06d2 \u062c\u06af\u06c1 \u06a9\u06cc \u0645\u062b\u0627\u0644\u06cc\u06ba\u06d4<\/h3>\n<p>\u0627\u0633\u0679\u06cc\u062c\u0646\u06af \u0627\u0648\u0631 \u0688\u0648\u06cc\u0644\u067e\u0645\u0646\u0679 \u0648\u0631\u06a9 \u0628\u0648\u062c\u06be \u06a9\u0648 \u0622\u0646 \u0688\u06cc\u0645\u0627\u0646\u0688 \u0645\u062b\u0627\u0644\u0648\u06ba \u06a9\u06cc \u0642\u0627\u0628\u0644 \u0627\u0639\u062a\u0645\u0627\u062f \u0636\u0645\u0627\u0646\u062a\u0648\u06ba \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4 \u0627\u0633\u067e\u0627\u0679 \u067e\u0631 \u0645\u0646\u062a\u0642\u0644 \u06c1\u0648\u0646\u06d2 \u0633\u06d2 \u0627\u0633 \u0646\u0648\u0688 \u06a9\u06cc \u0642\u06cc\u0645\u062a \u067e\u0631 60-90% \u06a9\u06cc \u0628\u0686\u062a \u06c1\u0648\u062a\u06cc \u06c1\u06d2\u06d4 \u06a9\u0627\u0631\u067e\u06cc\u0646\u0679\u0631 \u062e\u0648\u062f \u0628\u062e\u0648\u062f \u067e\u0648\u0688\u0632 \u06a9\u0648 \u062c\u06af\u06c1 \u06a9\u06cc \u0628\u0646\u062f\u0634 \u0633\u06d2 \u0646\u0645\u0679\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062f\u0648\u0628\u0627\u0631\u06c1 \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4 \u0631\u06cc\u0627\u0633\u062a \u06a9\u06d2 \u0628\u063a\u06cc\u0631 \u06a9\u0627\u0645 \u06a9\u06d2 \u0628\u0648\u062c\u06be \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u0628\u0646\u062f\u0634 \u0635\u0627\u0631\u0641\u06cc\u0646 \u06a9\u06d2 \u0644\u06cc\u06d2 \u067e\u0648\u0634\u06cc\u062f\u06c1 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-yaml\"># Good: Spot-only NodePool for staging environments\napiVersion: karpenter.sh\/v1beta1\nkind: NodePool\nmetadata:\n  name: staging-spot\nspec:\n  template:\n    metadata:\n      labels:\n        billing\/environment: staging\n    spec:\n      taints:\n        - key: environment\n          value: staging\n          effect: NoSchedule  # Only pods that tolerate this taint schedule here\n      requirements:\n        - key: karpenter.sh\/capacity-type\n          operator: In\n          values: [\"spot\"]   # Spot only for non-production\n  disruption:\n    consolidationPolicy: WhenUnderutilized\n<\/code><\/pre>\n<h3 id=\"heading-34-the-roi-of-karpenter-and-spot\">3.4 \u06a9\u0627\u0631\u067e\u06cc\u0646\u0679\u0631 \u0627\u0648\u0631 \u0633\u067e\u0627\u0679 \u06a9\u0627 ROI<\/h3>\n<table>\n<thead>\n<tr>\n<th>\u0645\u06cc\u0679\u0631\u06a9 \u0646\u0638\u0627\u0645<\/th>\n<th>\u067e\u0686\u06be\u0644\u0627 (\u06a9\u0644\u0633\u0679\u0631 \u0622\u0679\u0648 \u0627\u0633\u06a9\u06cc\u0644\u0631)<\/th>\n<th>\u06a9\u06d2 \u0628\u0639\u062f (\u0628\u0691\u06be\u0626\u06cc + \u062c\u06af\u06c1)<\/th>\n<th>\u0628\u06c1\u062a\u0631\u06cc<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u0646\u0648\u0688\u0633 \u06a9\u06cc \u0627\u0648\u0633\u0637 \u062a\u0639\u062f\u0627\u062f<\/td>\n<td>28<\/td>\n<td>18<\/td>\n<td>-36%<\/td>\n<\/tr>\n<tr>\n<td>\u0627\u0648\u0633\u0637 CPU \u0627\u0633\u062a\u0639\u0645\u0627\u0644<\/td>\n<td>65%<\/td>\n<td>82%<\/td>\n<td>+17 \u0641\u06cc\u0635\u062f \u067e\u0648\u0627\u0626\u0646\u0679\u0633<\/td>\n<\/tr>\n<tr>\n<td>\u0633\u0679\u06cc\u062c\u0646\u06af \u0645\u0627\u062d\u0648\u0644 \u06a9\u06d2 \u0627\u062e\u0631\u0627\u062c\u0627\u062a<\/td>\n<td>$8,000\/\u0645\u0627\u06c1<\/td>\n<td>$2,400\/\u0645\u0627\u06c1<\/td>\n<td>-70%<\/td>\n<\/tr>\n<tr>\n<td>\u0646\u0626\u06cc \u067e\u06be\u0644\u06cc\u0648\u06ba \u06a9\u06d2 \u0644\u06cc\u06d2 \u062a\u0648\u0633\u06cc\u0639 \u06a9\u0627 \u0648\u0642\u062a<\/td>\n<td>3-5 \u0645\u0646\u0679<\/td>\n<td>30~60 \u0633\u06cc\u06a9\u0646\u0688<\/td>\n<td>-80%<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2 id=\"heading-part-4-graviton-migration\">\u062d\u0635\u06c1 4: \u06af\u0631\u06cc\u0648\u06cc\u0679\u0646 \u0645\u0648\u0648\u0645\u0646\u0679<\/h2>\n<p>AWS Graviton ARM \u067e\u0631 \u0645\u0628\u0646\u06cc \u067e\u0631\u0648\u0633\u06cc\u0633\u0631\u0632 \u06a9\u0627 \u0627\u06cc\u0645\u06cc\u0632\u0648\u0646 \u06a9\u0627 \u0627\u067e\u0646\u0627 \u062e\u0627\u0646\u062f\u0627\u0646 \u06c1\u06d2\u060c \u062c\u0648 EC2 \u0645\u062b\u0627\u0644 \u06a9\u06cc \u0627\u0642\u0633\u0627\u0645 \u0645\u06cc\u06ba \u062f\u0633\u062a\u06cc\u0627\u0628 \u06c1\u06d2 \u062c\u0646 \u06a9\u06d2 \u0646\u0627\u0645 \u0627\u0633 \u067e\u0631 \u062e\u062a\u0645 \u06c1\u0648\u062a\u06d2 \u06c1\u06cc\u06ba: <code>g<\/code> &#8211; <code>m7g<\/code>, <code>c7g<\/code>, <code>r7g<\/code>\u0648\u063a\u06cc\u0631\u06c1<\/p>\n<p>Graviton \u0645\u062b\u0627\u0644\u0648\u06ba \u06a9\u06cc \u0642\u06cc\u0645\u062a \u062a\u0642\u0627\u0628\u0644\u06cc Intel \u06cc\u0627 AMD x86 \u0645\u062b\u0627\u0644\u0648\u06ba \u0633\u06d2 \u062a\u0642\u0631\u06cc\u0628\u0627\u064b 20% \u06a9\u0645 \u06c1\u06d2\u06d4 \u0632\u06cc\u0627\u062f\u06c1 \u062a\u0631 \u0633\u0631\u0648\u0631 \u0633\u0627\u0626\u06cc\u0688 \u0648\u0631\u06a9 \u0628\u0648\u062c\u06be (Node.js, Python, Go, Java) \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u0648\u06c1 \u0641\u06cc \u0688\u0627\u0644\u0631 20-40% \u0628\u06c1\u062a\u0631 \u06a9\u0627\u0631\u06a9\u0631\u062f\u06af\u06cc \u0628\u06be\u06cc \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u067e\u0631\u0648\u0633\u06cc\u0633\u0631 \u06a9\u0627 \u0641\u0646 \u062a\u0639\u0645\u06cc\u0631 \u0627\u0633 \u0642\u0633\u0645 \u06a9\u06d2 \u06a9\u0627\u0645 \u06a9\u06d2 \u0628\u0648\u062c\u06be \u06a9\u06d2 \u0644\u06cc\u06d2 \u0645\u0648\u0632\u0648\u06ba \u06c1\u06d2\u06d4<\/p>\n<p>Graviton \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u067e\u0646\u0627 \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u06a9\u0648\u0688 \u062a\u0628\u062f\u06cc\u0644 \u0646\u06c1 \u06a9\u0631\u06cc\u06ba\u06d4 \u0627\u067e\u0646\u06d2 \u06a9\u0646\u0679\u06cc\u0646\u0631 \u0627\u0645\u06cc\u062c \u0628\u0644\u0688 \u06a9\u06d2 \u0641\u0646 \u062a\u0639\u0645\u06cc\u0631 \u06a9\u06d2 \u062c\u06be\u0646\u0688\u06d2 \u0627\u0648\u0631 \u0627\u067e\u0646\u06cc Kubernetes \u062a\u0639\u06cc\u0646\u0627\u062a\u06cc \u06a9\u06d2 \u0646\u0648\u0688 \u0633\u0644\u06cc\u06a9\u0679\u0631 \u06a9\u0648 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-41-why-graviton-reduces-cost-without-reducing-performance\">4.1 \u06a9\u06cc\u0648\u06ba Graviton \u06a9\u0627\u0631\u06a9\u0631\u062f\u06af\u06cc \u067e\u0631 \u0633\u0645\u062c\u06be\u0648\u062a\u06c1 \u06a9\u06cc\u06d2 \u0628\u063a\u06cc\u0631 \u067e\u06cc\u0633\u06d2 \u0628\u0686\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/h3>\n<p>\u0645\u0646\u062a\u0642\u0644\u06cc \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0622\u067e \u06a9\u0648 \u067e\u06c1\u0644\u0627 \u0633\u0648\u0627\u0644 \u062c\u0633 \u06a9\u0627 \u062c\u0648\u0627\u0628 \u062f\u06cc\u0646\u0627 \u06c1\u0648\u06af\u0627 \u0648\u06c1 \u06cc\u06c1 \u06c1\u06d2 \u06a9\u06c1 \u0622\u06cc\u0627 \u0622\u067e \u06a9\u06d2 \u06a9\u0646\u0679\u06cc\u0646\u0631 \u06a9\u06cc \u062a\u0635\u0648\u06cc\u0631 ARM64 \u06a9\u0648 \u0633\u067e\u0648\u0631\u0679 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4 Docker Hub \u067e\u0631 \u0632\u06cc\u0627\u062f\u06c1 \u062a\u0631 \u0633\u0631\u06a9\u0627\u0631\u06cc \u062a\u0635\u0627\u0648\u06cc\u0631 \u0645\u0644\u0679\u06cc \u0622\u0631\u06a9\u06cc\u0679\u06cc\u06a9\u0686\u0631 \u0627\u0645\u06cc\u062c\u0632 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u062f\u0633\u062a\u06cc\u0627\u0628 \u06c1\u06cc\u06ba\u06d4 \u0622\u067e \u06a9\u0648 \u062f\u0648\u0646\u0648\u06ba \u0622\u0631\u06a9\u06cc\u0679\u06cc\u06a9\u0686\u0631\u0632 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0648\u0627\u0636\u062d \u0637\u0648\u0631 \u067e\u0631 \u0627\u067e\u0646\u06cc \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0627\u0645\u06cc\u062c\u0632 \u0628\u0646\u0627\u0646\u0627 \u06c1\u0648\u06ba \u06af\u06cc\u06d4<\/p>\n<p>\u06cc\u0642\u06cc\u0646\u06cc \u0628\u0646\u0627\u0626\u06cc\u06ba \u06a9\u06c1 \u0622\u067e \u06a9\u06cc \u062a\u0635\u0648\u06cc\u0631 ARM64 \u06a9\u0648 \u0633\u067e\u0648\u0631\u0679 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-bash\"># Check if an image has an ARM64 manifest\ndocker manifest inspect your-registry\/your-app:latest | jq '.manifests[].platform'\n<\/code><\/pre>\n<p>\u0645\u0644\u0679\u06cc \u0622\u0631\u06a9\u06cc\u0679\u06cc\u06a9\u0686\u0631 \u0627\u0645\u06cc\u062c \u06a9\u06d2 \u0644\u06cc\u06d2 \u0645\u062a\u0648\u0642\u0639 \u0622\u0624\u0679 \u067e\u0679:<\/p>\n<pre><code class=\"language-json\">{\"architecture\": \"amd64\", \"os\": \"linux\"},\n{\"architecture\": \"arm64\", \"os\": \"linux\", \"variant\": \"v8\"}\n<\/code><\/pre>\n<p>\u0627\u06af\u0631 <code>arm64<\/code> \u0627\u0634\u0627\u0631\u06c1 \u06a9\u0631\u0646\u06d2 \u067e\u0631\u060c \u0622\u067e \u06a9\u06cc \u062a\u0635\u0648\u06cc\u0631 \u062a\u06cc\u0627\u0631 \u06c1\u06d2\u06d4 \u0628\u0635\u0648\u0631\u062a \u062f\u06cc\u06af\u0631\u060c \u0622\u067e \u06a9\u0648 \u067e\u06c1\u0644\u06d2 \u0645\u0644\u0679\u06cc \u0622\u0631\u06a9\u06cc\u0679\u06cc\u06a9\u0686\u0631 \u0627\u0645\u06cc\u062c \u0628\u0646\u0627\u0646\u06d2 \u0627\u0648\u0631 \u0622\u06af\u06d2 \u0628\u0691\u06be\u0627\u0646\u06d2 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u0648\u06af\u06cc\u06d4<\/p>\n<p>\u0645\u0644\u0679\u06cc \u0622\u0631\u06a9\u06cc\u0679\u06cc\u06a9\u0686\u0631 \u0627\u0645\u06cc\u062c\u0632 \u0628\u0646\u0627\u0626\u06cc\u06ba \u0627\u0648\u0631 \u067e\u0634 \u06a9\u0631\u06cc\u06ba:<\/p>\n<pre><code class=\"language-bash\"># Build for both x86 and ARM in a single command using Docker Buildx\ndocker buildx create --use --name multi-arch-builder\n\ndocker buildx build \\\n  --platform linux\/amd64,linux\/arm64 \\\n  --tag your-registry\/your-app:latest \\\n  --push \\\n  .\n<\/code><\/pre>\n<h3 id=\"heading-42-migrating-workloads-to-graviton\">4.2 \u06a9\u0627\u0645 \u06a9\u06d2 \u0628\u0648\u062c\u06be \u06a9\u0648 Graviton \u0645\u06cc\u06ba \u0645\u0646\u062a\u0642\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/h3>\n<p>\u0627\u06af\u0631 \u06a9\u0627\u0631\u067e\u06cc\u0646\u0679\u0631 \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u0627\u0646\u0633\u0679\u0627\u0644 \u06c1\u06d2\u060c \u062a\u0648 \u06af\u0631\u06cc\u0648\u06cc\u0679\u0646 \u06a9\u06cc \u0645\u0646\u062a\u0642\u0644\u06cc \u062a\u0639\u06cc\u0646\u0627\u062a\u06cc \u06a9\u06d2 \u0648\u0642\u062a \u0627\u06cc\u06a9 \u0644\u06cc\u0628\u0644 \u06a9\u06cc \u062a\u0628\u062f\u06cc\u0644\u06cc \u06c1\u06d2\u06d4 \u06a9\u0627\u0631\u067e\u06cc\u0646\u0679\u0631 \u062e\u0648\u062f \u0628\u062e\u0648\u062f \u0645\u0646\u0627\u0633\u0628 ARM64 \u0646\u0648\u0688\u0633 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u062f\u0631\u0633\u062a \u0646\u0641\u0627\u0630 \u06cc\u06c1 \u06c1\u0648\u06af\u0627:<\/p>\n<pre><code class=\"language-yaml\"># Good: nodeSelector directs the pod to Graviton nodes\n# Karpenter provisions an arm64 node if one isn't already available\napiVersion: apps\/v1\nkind: Deployment\nmetadata:\n  name: payment-api\nspec:\n  template:\n    spec:\n      nodeSelector:\n        kubernetes.io\/arch: arm64   # Schedule exclusively on Graviton nodes\n      containers:\n        - name: api\n          image: your-registry\/payment-api:latest  # Must be multi-arch\n<\/code><\/pre>\n<p>\u0628\u06d2 \u0648\u0637\u0646 \u062e\u062f\u0645\u0627\u062a \u0633\u06d2 \u0634\u0631\u0648\u0639 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0622\u06c1\u0633\u062a\u06c1 \u0622\u06c1\u0633\u062a\u06c1 \u06c1\u062c\u0631\u062a \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-bash\"># Step 1: Migrate one stateless service and monitor for 48 hours\nkubectl patch deployment payment-api \\\n  -p '{\"spec\":{\"template\":{\"spec\":{\"nodeSelector\":{\"kubernetes.io\/arch\":\"arm64\"}}}}}'\n\n# Step 2: Watch for errors in the first 30 minutes\nkubectl logs -l app=payment-api --tail=100 -f\n\n# Step 3: Verify the pod is running on a Graviton node\n# The NODE column should show a Graviton instance type (m7g, c7g, r7g)\nkubectl get pods -l app=payment-api -o wide\n\n# Step 4: After 48 hours of stable operation, migrate the next service\n<\/code><\/pre>\n<p>\u0627\u06cc\u0633\u06d2 \u062d\u0627\u0644\u0627\u062a \u06c1\u06cc\u06ba \u062c\u06c1\u0627\u06ba \u0622\u067e \u06a9\u0648 Graviton \u0645\u06cc\u06ba \u0645\u0646\u062a\u0642\u0644 \u0646\u06c1\u06cc\u06ba \u06c1\u0648\u0646\u0627 \u0686\u0627\u06c1\u0626\u06d2\u060c \u062c\u06cc\u0633\u06d2 GPU \u0648\u0631\u06a9 \u0644\u0648\u0688\u060c \u0645\u0642\u0627\u0645\u06cc x86 \u0628\u0627\u0626\u0646\u0631\u06cc \u0627\u0646\u062d\u0635\u0627\u0631 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0627\u06cc\u067e\u0644\u06cc \u06a9\u06cc\u0634\u0646\u0632\u060c \u06cc\u0627 \u06a9\u0627\u0645 \u06a9\u06d2 \u0628\u0648\u062c\u06be \u062c\u0646 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0622\u067e \u0646\u06d2 \u0627\u0628\u06be\u06cc \u062a\u06a9 \u0645\u0644\u0679\u06cc \u0622\u0631\u06a9\u06cc\u0679\u06cc\u06a9\u0686\u0631 \u0627\u0645\u06cc\u062c \u0646\u06c1\u06cc\u06ba \u0628\u0646\u0627\u06cc\u0627 \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-43-the-roi-of-graviton\">4.3 Graviton&#8217;s ROI<\/h3>\n<table>\n<thead>\n<tr>\n<th>\u06a9\u0627\u0645 \u06a9\u06d2 \u0628\u0648\u062c\u06be \u06a9\u06cc \u0642\u0633\u0645<\/th>\n<th>x86 \u0645\u0627\u06c1\u0627\u0646\u06c1 \u0644\u0627\u06af\u062a<\/th>\n<th>Graviton \u0645\u0627\u06c1\u0627\u0646\u06c1 \u0644\u0627\u06af\u062a<\/th>\n<th>\u0628\u0686\u062a<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u0648\u06cc\u0628 \u0633\u0631\u0648\u0633\u0632 (Node.js\u060c Python)<\/td>\n<td>$18,000<\/td>\n<td>$14,400<\/td>\n<td>$3,600\/\u0645\u0627\u06c1<\/td>\n<\/tr>\n<tr>\n<td>\u0688\u06cc\u0679\u0627 \u067e\u0631\u0648\u0633\u06cc\u0633\u0646\u06af<\/td>\n<td>$12,000<\/td>\n<td>$9,600<\/td>\n<td>$2,400\/\u0645\u06c1\u06cc\u0646\u06c1<\/td>\n<\/tr>\n<tr>\n<td>API \u0633\u0631\u0648\u0633 (\u06af\u0648\u060c \u062c\u0627\u0648\u0627)<\/td>\n<td>$8,000<\/td>\n<td>$6,400<\/td>\n<td>$1,600\/\u0645\u06c1\u06cc\u0646\u06c1<\/td>\n<\/tr>\n<tr>\n<td><strong>\u0628\u0646\u062f\u0648\u0642<\/strong><\/td>\n<td><strong>$38,000<\/strong><\/td>\n<td><strong>$30,400<\/strong><\/td>\n<td><strong>$7,600\/\u0645\u06c1\u06cc\u0646\u06c1<\/strong><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2 id=\"heading-part-5-vpc-endpoints-for-data-transfer\">\u062d\u0635\u06c1 5: \u0688\u06cc\u0679\u0627 \u06a9\u06cc \u0645\u0646\u062a\u0642\u0644\u06cc \u06a9\u06d2 \u0644\u06cc\u06d2 VPC \u0627\u06cc\u0646\u0688 \u067e\u0648\u0627\u0626\u0646\u0679\u0633<\/h2>\n<h3 id=\"heading-51-the-nat-gateway-tax\">5.1 NAT \u06af\u06cc\u0679 \u0648\u06d2 \u0679\u06cc\u06a9\u0633<\/h3>\n<p>\u0648\u06c1 \u062a\u0645\u0627\u0645 \u0628\u0627\u0626\u0679\u0633 \u062c\u0648 \u0622\u067e \u06a9\u06d2 EKS \u067e\u0648\u0688 \u0633\u06d2 AWS \u0633\u0631\u0648\u0633\u0632 (S3, DynamoDB, ECR, SQS) \u062a\u06a9 \u062c\u0627\u062a\u06d2 \u06c1\u06cc\u06ba NAT \u06af\u06cc\u0679 \u0648\u06d2 \u0633\u06d2 \u06af\u0632\u0631\u062a\u06d2 \u06c1\u06cc\u06ba \u062c\u0628 \u062a\u06a9 \u06a9\u06c1 \u0622\u067e VPC \u0627\u06cc\u0646\u0688 \u067e\u0648\u0627\u0626\u0646\u0679 \u06a9\u0646\u0641\u06cc\u06af\u0631 \u0646\u06c1 \u06a9\u0631\u06cc\u06ba\u06d4 NAT \u06af\u06cc\u0679 \u0648\u06d2 \u067e\u0631\u0648\u0633\u06cc\u0633 \u0634\u062f\u06c1 \u0688\u06cc\u0679\u0627 \u06a9\u06d2 \u0641\u06cc GB $0.045 \u0686\u0627\u0631\u062c \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u06cc\u06a9 \u0645\u0635\u0631\u0648\u0641 EKS \u06a9\u0644\u0633\u0679\u0631 ECR \u0633\u06d2 \u06a9\u0646\u0679\u06cc\u0646\u0631 \u06a9\u06cc \u062a\u0635\u0627\u0648\u06cc\u0631 \u06a9\u06be\u06cc\u0646\u0686\u062a\u0627 \u06c1\u06d2\u060c S3 \u067e\u0631 \u0644\u06a9\u06be\u062a\u0627 \u06c1\u06d2\u060c \u0627\u0648\u0631 \u067e\u0648\u0644\u0646\u06af SQS \u0642\u0637\u0627\u0631\u06cc\u06ba NAT \u06af\u06cc\u0679 \u0648\u06d2 \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u06c1\u0631 \u0645\u0627\u06c1 \u0633\u06cc\u0646\u06a9\u0691\u0648\u06ba \u0679\u06cc\u0631\u0627 \u0628\u0627\u0626\u0679\u0633 \u067e\u0631 \u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc \u06a9\u0631 \u0633\u06a9\u062a\u06cc \u06c1\u06cc\u06ba\u060c \u062c\u0633 \u0633\u06d2 \u0679\u0631\u06cc\u0641\u06a9 \u06a9\u06d2 \u0686\u0627\u0631\u062c\u0632 \u0645\u06cc\u06ba \u06c1\u0632\u0627\u0631\u0648\u06ba \u0688\u0627\u0644\u0631 \u062e\u0631\u0686 \u06c1\u0648\u062a\u06d2 \u06c1\u06cc\u06ba \u062c\u0646\u06c1\u0648\u06ba \u0646\u06d2 AWS \u0646\u06cc\u0679 \u0648\u0631\u06a9 \u06a9\u0648 \u062d\u0642\u06cc\u0642\u062a \u0645\u06cc\u06ba \u06a9\u0628\u06be\u06cc \u0646\u06c1\u06cc\u06ba \u0686\u06be\u0648\u0691\u0627\u06d4<\/p>\n<p>\u0627\u062e\u062a\u062a\u0627\u0645\u06cc \u067e\u0648\u0627\u0626\u0646\u0679\u0633 \u0634\u0627\u0645\u0644 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0627\u067e\u0646\u06d2 \u0645\u0648\u062c\u0648\u062f\u06c1 NAT \u06af\u06cc\u0679 \u0648\u06d2 \u06a9\u06d2 \u0627\u062e\u0631\u0627\u062c\u0627\u062a \u06a9\u06cc \u067e\u06cc\u0645\u0627\u0626\u0634 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-bash\"># Get last month's NAT Gateway data processing charges\naws ce get-cost-and-usage \\\n  --time-period Start=\\((date -d 'last month' +%Y-%m-01),End=\\)(date +%Y-%m-01) \\\n  --granularity DAILY \\\n  --filter '{\n    \"Dimensions\": {\n      \"Key\": \"USAGE_TYPE\",\n      \"Values\": [\"NATGateway-Bytes\"]\n    }\n  }' \\\n  --metrics UnblendedCost \\\n  --query 'ResultsByTime[*].{Date:TimePeriod.Start,Cost:Total.UnblendedCost.Amount}' \\\n  --output table\n<\/code><\/pre>\n<h3 id=\"heading-52-vpc-endpoints-the-fix-that-takes-30-minutes\">5.2 VPC \u0627\u06cc\u0646\u0688 \u067e\u0648\u0627\u0626\u0646\u0679\u0633 \u2014 30 \u0645\u0646\u0679 \u0645\u06cc\u06ba \u062d\u0644 \u06c1\u0648 \u06af\u0626\u06d2\u06d4<\/h3>\n<p>VPC \u0627\u06cc\u0646\u0688 \u067e\u0648\u0627\u0626\u0646\u0679\u0633 \u0622\u067e \u06a9\u06d2 VPC \u0627\u0648\u0631 AWS \u0633\u0631\u0648\u0633\u0632 \u06a9\u06d2 \u062f\u0631\u0645\u06cc\u0627\u0646 \u0627\u06cc\u06a9 \u0646\u062c\u06cc \u06a9\u0646\u06a9\u0634\u0646 \u0628\u0646\u0627\u062a\u06d2 \u06c1\u06cc\u06ba\u060c NAT \u06af\u06cc\u0679 \u0648\u06d2 \u06a9\u0648 \u0686\u06be\u0648\u0626\u06d2 \u0628\u063a\u06cc\u0631 AWS \u0628\u06cc\u06a9 \u0628\u0648\u0646 \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u0679\u0631\u06cc\u0641\u06a9 \u06a9\u0648 \u0631\u0648\u0679 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0688\u06cc\u0679\u0627 \u0679\u0631\u0627\u0646\u0633\u0641\u0631 \u0645\u0641\u062a \u06c1\u0648 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4 \u06c1\u0631 \u0627\u062e\u062a\u062a\u0627\u0645\u06cc \u0646\u0642\u0637\u06c1 \u06a9\u06cc \u0642\u06cc\u0645\u062a NAT \u06af\u06cc\u0679 \u0648\u06d2 \u067e\u0631\u0648\u0633\u06cc\u0633\u0646\u06af \u0644\u0627\u06af\u062a \u0633\u06d2 \u0646\u0645\u0627\u06cc\u0627\u06ba \u0637\u0648\u0631 \u067e\u0631 \u06a9\u0645 \u06c1\u06d2 \u062c\u0648 \u0627\u0633 \u06a9\u06cc \u062c\u06af\u06c1 \u0644\u06cc\u062a\u06cc \u06c1\u06d2\u060c \u062c\u0648 \u06a9\u06c1 \u062a\u0642\u0631\u06cc\u0628\u0627\u064b \\(0.01\/\u06af\u06be\u0646\u0679\u06c1 &#8211; \u062a\u0642\u0631\u06cc\u0628\u0627\u064b \\)7.20\/\u0645\u06c1\u06cc\u0646\u06c1 \u06c1\u06d2\u06d4<\/p>\n<p>\u06cc\u06c1\u0627\u06ba \u0686\u0627\u0631 \u0633\u0628 \u0633\u06d2 \u0639\u0627\u0645 EKS \u0679\u0631\u06cc\u0641\u06a9 \u0645\u0642\u0627\u0645\u0627\u062a \u06a9\u06d2 \u0644\u06cc\u06d2 \u0645\u06a9\u0645\u0644 \u0646\u0641\u0627\u0630 \u06c1\u06cc\u06ba:<\/p>\n<pre><code class=\"language-bash\"># Get your VPC ID and primary route table ID first\nVPC_ID=$(aws eks describe-cluster --name your-cluster \\\n  --query 'cluster.resourcesVpcConfig.vpcId' --output text)\n\nROUTE_TABLE_ID=$(aws ec2 describe-route-tables \\\n  --filters Name=vpc-id,Values=$VPC_ID Name=association.main,Values=true \\\n  --query 'RouteTables[0].RouteTableId' --output text)\n\necho \"VPC: \\(VPC_ID | Route Table: \\)ROUTE_TABLE_ID\"\n\n# S3 gateway endpoint \u2014 free to create, eliminates all S3 traffic through NAT\naws ec2 create-vpc-endpoint \\\n  --vpc-id $VPC_ID \\\n  --service-name com.amazonaws.us-east-1.s3 \\\n  --route-table-ids $ROUTE_TABLE_ID\n\n# DynamoDB gateway endpoint \u2014 also free, same mechanism as S3\naws ec2 create-vpc-endpoint \\\n  --vpc-id $VPC_ID \\\n  --service-name com.amazonaws.us-east-1.dynamodb \\\n  --route-table-ids $ROUTE_TABLE_ID\n\n# ECR API interface endpoint \u2014 eliminates NAT charges on image pulls\naws ec2 create-vpc-endpoint \\\n  --vpc-id $VPC_ID \\\n  --vpc-endpoint-type Interface \\\n  --service-name com.amazonaws.us-east-1.ecr.api \\\n  --subnet-ids $(aws ec2 describe-subnets \\\n    --filters Name=vpc-id,Values=$VPC_ID Name=tag:Tier,Values=private \\\n    --query 'Subnets[*].SubnetId' --output text)\n\n# ECR Docker endpoint \u2014 required alongside ECR API for complete image pull coverage\naws ec2 create-vpc-endpoint \\\n  --vpc-id $VPC_ID \\\n  --vpc-endpoint-type Interface \\\n  --service-name com.amazonaws.us-east-1.ecr.dkr \\\n  --subnet-ids $(aws ec2 describe-subnets \\\n    --filters Name=vpc-id,Values=$VPC_ID Name=tag:Tier,Values=private \\\n    --query 'Subnets[*].SubnetId' --output text)\n<\/code><\/pre>\n<p>\u0679\u06cc\u0631\u0627\u0641\u0627\u0631\u0645 \u0645\u0627\u0688\u06cc\u0648\u0644 \u0627\u06cc\u06a9 \u06c1\u06cc \u0645\u06cc\u06ba \u0686\u0627\u0631\u0648\u06ba \u0627\u06cc\u0646\u0688 \u067e\u0648\u0627\u0626\u0646\u0679\u0633 \u0628\u0646\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 <code>apply<\/code> \u06cc\u06c1 \u0627\u0646\u062f\u0631 \u06c1\u06d2\u06d4 <code>terraform\/vpc-endpoints\/<\/code> \u06cc\u06c1 \u0633\u0627\u062a\u06be\u06cc \u0630\u062e\u06cc\u0631\u06c1 \u0645\u06cc\u06ba \u06c1\u06d2\u06d4<\/p>\n<p>\u062a\u0635\u062f\u06cc\u0642 \u06a9\u0631\u06cc\u06ba \u06a9\u06c1 \u0627\u06cc\u0646\u0688 \u067e\u0648\u0627\u0626\u0646\u0679 \u0679\u0631\u06cc\u0641\u06a9 \u06a9\u0648 \u0635\u062d\u06cc\u062d \u0637\u0631\u06cc\u0642\u06d2 \u0633\u06d2 \u0631\u0648\u0679 \u06a9\u0631 \u0631\u06c1\u0627 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-bash\">aws ec2 describe-vpc-endpoints \\\n  --filters Name=vpc-id,Values=$VPC_ID \\\n  --query 'VpcEndpoints[*].{Service:ServiceName,State:State,Type:VpcEndpointType}' \\\n  --output table\n# Expected: all endpoints showing State=available\n<\/code><\/pre>\n<h3 id=\"heading-53-the-roi-of-vpc-endpoints\">VPC \u0627\u062e\u062a\u062a\u0627\u0645\u06cc \u067e\u0648\u0627\u0626\u0646\u0679\u0633 \u06a9\u0627 5.3 ROI<\/h3>\n<table>\n<thead>\n<tr>\n<th>\u0633\u0631\u0648\u0633<\/th>\n<th>\u067e\u0686\u06be\u0644\u0627 (NAT \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2)<\/th>\n<th>\u06a9\u06d2 \u0628\u0639\u062f (VPC \u0627\u062e\u062a\u062a\u0627\u0645\u06cc \u0646\u0642\u0637\u06c1)<\/th>\n<th>\u0645\u0627\u06c1\u0627\u0646\u06c1 \u0628\u0686\u062a<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>S3 \u0688\u06cc\u0679\u0627 \u06a9\u06cc \u0645\u0646\u062a\u0642\u0644\u06cc<\/td>\n<td>$4,500<\/td>\n<td>$0<\/td>\n<td>$4,500<\/td>\n<\/tr>\n<tr>\n<td>ECR \u062a\u0635\u0627\u0648\u06cc\u0631 \u062f\u0631\u0622\u0645\u062f \u06a9\u0631\u06cc\u06ba\u06d4<\/td>\n<td>$800<\/td>\n<td>$0<\/td>\n<td>$800<\/td>\n<\/tr>\n<tr>\n<td>DynamoDB \u0633\u0648\u0627\u0644\u0627\u062a<\/td>\n<td>$1,200<\/td>\n<td>$0<\/td>\n<td>$1,200<\/td>\n<\/tr>\n<tr>\n<td>\u0627\u062e\u062a\u062a\u0627\u0645\u06cc \u0642\u06cc\u0645\u062a<\/td>\n<td>&#8211;<\/td>\n<td>$29 (4 \u0627\u062e\u062a\u062a\u0627\u0645\u06cc \u067e\u0648\u0627\u0626\u0646\u0679\u0633)<\/td>\n<td>-$29<\/td>\n<\/tr>\n<tr>\n<td><strong>\u062e\u0627\u0644\u0635 \u0628\u0686\u062a<\/strong><\/td>\n<td\/>\n<td\/>\n<td><strong>$6,471\/\u0645\u06c1\u06cc\u0646\u06c1<\/strong><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2 id=\"heading-part-6-ebs-volume-optimisation\">\u062d\u0635\u06c1 6: EBS \u0648\u0627\u0644\u06cc\u0648\u0645 \u0622\u067e\u0679\u06cc\u0645\u0627\u0626\u0632\u06cc\u0634\u0646<\/h2>\n<h3 id=\"heading-61-the-gp2-to-gp3-migration\">6.1 gp2 \u0633\u06d2 gp3 \u0645\u06cc\u06ba \u0645\u0646\u062a\u0642\u0644\u06cc<\/h3>\n<p>IOPS \u0645\u06cc\u06ba EBS gp2 \u0648\u0627\u0644\u06cc\u0648\u0645 \u06a9\u06cc \u0642\u06cc\u0645\u062a \u0627\u0633\u0679\u0648\u0631\u06cc\u062c \u06a9\u06d2 \u0633\u0627\u0626\u0632 \u06a9\u06cc \u0628\u0646\u06cc\u0627\u062f \u067e\u0631 \u0631\u06a9\u06be\u06cc \u06af\u0626\u06cc \u06c1\u06d2 (3 IOPS \u0641\u06cc GB\u060c \u06a9\u0645 \u0627\u0632 \u06a9\u0645 100 IOPS \u06a9\u06d2 \u0633\u0627\u062a\u06be)\u06d4 EBS gp3 \u0648\u0627\u0644\u06cc\u0648\u0645 \u0633\u0627\u0626\u0632 \u0633\u06d2 \u0642\u0637\u0639 \u0646\u0638\u0631 3,000 IOPS \u06a9\u06cc \u0628\u0646\u06cc\u0627\u062f\u06cc \u0644\u0627\u0626\u0646 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u0627\u0633 \u06a9\u06cc \u0642\u06cc\u0645\u062a \u0641\u06cc GB 20% \u06a9\u0645 \u06c1\u06d2\u06d4 \u0646\u0642\u0644 \u0645\u06a9\u0627\u0646\u06cc \u0628\u063a\u06cc\u0631 \u06a9\u0633\u06cc \u0648\u0642\u062a \u06a9\u06d2 \u0622\u0646 \u0644\u0627\u0626\u0646 \u06a9\u06cc \u062c\u0627\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p>\u062a\u0645\u0627\u0645 gp2 \u0648\u0627\u0644\u06cc\u0648\u0645 \u062a\u0644\u0627\u0634 \u06a9\u0631\u06cc\u06ba \u0627\u0648\u0631 \u0645\u0646\u062a\u0642\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-bash\"># Step 1: List all gp2 volumes and their sizes\naws ec2 describe-volumes \\\n  --filters Name=volume-type,Values=gp2 \\\n  --query 'Volumes[*].{ID:VolumeId,Size:Size,State:State}' \\\n  --output table\n\n# Step 2: Migrate each gp2 volume to gp3 \u2014 no instance stop required\n# The modify operation runs online while the volume stays attached and in use\naws ec2 describe-volumes \\\n  --filters Name=volume-type,Values=gp2 \\\n  --query 'Volumes[*].VolumeId' \\\n  --output text | tr '\\t' '\\n' | while read vol; do\n    echo \"Migrating $vol from gp2 to gp3...\"\n    aws ec2 modify-volume \\\n      --volume-id $vol \\\n      --volume-type gp3\ndone\n\n# Step 3: Verify all volumes are now gp3\naws ec2 describe-volumes \\\n  --filters Name=volume-type,Values=gp2 \\\n  --query 'Volumes[*].VolumeId' \\\n  --output text\n# Expected: empty output \u2014 zero gp2 volumes remaining\n<\/code><\/pre>\n<h3 id=\"heading-62-finding-and-removing-orphaned-volumes-and-snapshots\">6.2 \u06cc\u062a\u06cc\u0645 \u062c\u0644\u062f\u0648\u06ba \u0627\u0648\u0631 \u0633\u0646\u06cc\u067e \u0634\u0627\u0679\u0633 \u06a9\u0648 \u062a\u0644\u0627\u0634 \u06a9\u0631\u0646\u0627 \u0627\u0648\u0631 \u06c1\u0679\u0627\u0646\u0627<\/h3>\n<p>\u062c\u0628 \u0627\u06cc\u06a9 Kubernetes PertantVolumeClaim \u06a9\u0648 \u062d\u0630\u0641 \u06a9\u0631 \u062f\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u060c \u062a\u0648 \u0628\u0639\u0636 \u0627\u0648\u0642\u0627\u062a \u0628\u0646\u06cc\u0627\u062f\u06cc EBS \u0648\u0627\u0644\u06cc\u0648\u0645 \u06a9\u0648 \u0635\u0627\u0641 \u0646\u06c1\u06cc\u06ba \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0686\u0644\u062a\u0627 \u0631\u06c1\u06d2 \u06af\u0627 \u0627\u0648\u0631 \u0628\u0644 \u062f\u06cc\u0627 \u062c\u0627\u0626\u06d2 \u06af\u0627\u06d4<\/p>\n<pre><code class=\"language-bash\"># Find unattached EBS volumes \u2014 status=available means not attached to any instance\naws ec2 describe-volumes \\\n  --filters Name=status,Values=available \\\n  --query 'Volumes[*].{ID:VolumeId,Size:Size,Created:CreateTime}' \\\n  --output table\n\n# Find EBS snapshots older than 90 days\naws ec2 describe-snapshots \\\n  --owner-ids self \\\n  --query \"Snapshots[?StartTime<='$(date -d '90 days ago' --iso-8601=seconds)'].[SnapshotId,StartTime,VolumeSize]\" \\\n  --output table\n<\/code><\/pre>\n<p>\u0627\u0633\u0646\u06cc\u067e \u0634\u0627\u0679 \u06a9\u0648 \u062d\u0630\u0641 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2\u060c \u0627\u067e\u0646\u06d2 RDS \u062e\u0648\u062f\u06a9\u0627\u0631 \u0628\u06cc\u06a9 \u0627\u067e \u0634\u06cc\u0688\u0648\u0644 \u06a9\u0627 \u062d\u0648\u0627\u0644\u06c1 \u062f\u06cc\u06ba \u062a\u0627\u06a9\u06c1 \u06cc\u06c1 \u06cc\u0642\u06cc\u0646\u06cc \u0628\u0646\u0627\u06cc\u0627 \u062c\u0627 \u0633\u06a9\u06d2 \u06a9\u06c1 \u06cc\u06c1 \u0622\u067e \u06a9\u06d2 \u067e\u0631\u0648\u0688\u06a9\u0634\u0646 \u0688\u06cc\u0679\u0627 \u0628\u06cc\u0633 \u06a9\u0627 \u0648\u0627\u062d\u062f \u0628\u06cc\u06a9 \u0627\u067e \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-63-the-roi-of-ebs-optimisation\">EBS \u06a9\u06cc \u0627\u0635\u0644\u0627\u062d \u06a9\u0627 6.3 ROI<\/h3>\n<table>\n<thead>\n<tr>\n<th>\u0645\u0631\u0636\u06cc<\/th>\n<th>\u067e\u06c1\u0644\u06d2<\/th>\n<th>\u0628\u0639\u062f \u0645\u06cc\u06ba<\/th>\n<th>\u0645\u0627\u06c1\u0627\u0646\u06c1 \u0628\u0686\u062a<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>gp2 \u2192 gp3 \u0645\u0646\u062a\u0642\u0644\u06cc (\u06a9\u0644 1TB)<\/td>\n<td>$102<\/td>\n<td>$72<\/td>\n<td>$30<\/td>\n<\/tr>\n<tr>\n<td>\u063a\u06cc\u0631 \u0645\u0646\u0633\u0644\u06a9 \u0648\u0627\u0644\u06cc\u0648\u0645 \u06c1\u0679\u0627 \u062f\u06cc\u06d2 \u062c\u0627\u062a\u06d2 \u06c1\u06cc\u06ba (50 \u00d7 100 GB)<\/td>\n<td>$500<\/td>\n<td>$0<\/td>\n<td>$500<\/td>\n<\/tr>\n<tr>\n<td>\u067e\u0686\u06be\u0644\u06d2 \u0633\u0646\u06cc\u067e \u0634\u0627\u0679\u0633 \u06a9\u0648 \u0635\u0627\u0641 \u06a9\u06cc\u0627 \u06af\u06cc\u0627 (500 GB)<\/td>\n<td>$25<\/td>\n<td>$0<\/td>\n<td>$25<\/td>\n<\/tr>\n<tr>\n<td><strong>\u0628\u0646\u062f\u0648\u0642<\/strong><\/td>\n<td><strong>$627<\/strong><\/td>\n<td><strong>$72<\/strong><\/td>\n<td><strong>$555\/\u0645\u06c1\u06cc\u0646\u06c1<\/strong><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2 id=\"heading-part-7-load-balancer-consolidation\">\u062d\u0635\u06c1 7: \u0644\u0648\u0688 \u0628\u06cc\u0644\u0646\u0633 \u0627\u0646\u0636\u0645\u0627\u0645<\/h2>\n<h3 id=\"heading-71-the-problem-one-load-balancer-per-service\">\u0645\u0633\u0626\u0644\u06c1 7.1 - \u0627\u06cc\u06a9 \u0644\u0648\u0688 \u0628\u06cc\u0644\u0646\u0633 \u0641\u06cc \u0633\u0631\u0648\u0633<\/h3>\n<p>\u0628\u06c1\u062a \u0633\u06cc \u0679\u06cc\u0645\u06cc\u06ba \u0627\u0644\u06af \u0627\u0644\u06af \u0679\u06cc\u0645\u06cc\u06ba \u0628\u0646\u0627\u062a\u06cc \u06c1\u06cc\u06ba\u06d4 <code>LoadBalancer<\/code> \u062a\u0645\u0627\u0645 \u0645\u0627\u0626\u06cc\u06a9\u0631\u0648 \u0633\u0631\u0648\u0633\u0632 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9 \u0633\u0631\u0648\u0633\u06d4 AWS \u0645\u06cc\u06ba\u060c \u06c1\u0631 \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0644\u0648\u0688 \u0628\u06cc\u0644\u0646\u0633 \u06a9\u06cc \u0644\u0627\u06af\u062a \u062a\u0642\u0631\u06cc\u0628\u0627\u064b \\(16.20\/\u0645\u0627\u06c1 \u06a9\u06cc \u0628\u0646\u06cc\u0627\u062f\u06cc \u0641\u06cc\u0633 + \\)0.008\/LCU-\u06af\u06be\u0646\u0679\u06c1 \u067e\u0631\u0648\u0633\u06cc\u0633 \u0634\u062f\u06c1 \u0679\u0631\u06cc\u0641\u06a9 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06c1\u0648\u062a\u06cc \u06c1\u06d2\u06d4 20 \u0645\u0627\u0626\u06cc\u06a9\u0631\u0648 \u0633\u0631\u0648\u0633\u0632 \u067e\u0631\u060c \u0627\u06cc\u06a9 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u067e\u0631 \u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u06cc\u06c1 $324 \u0641\u06cc \u0645\u06c1\u06cc\u0646\u06c1 \u06c1\u06d2\u06d4<\/p>\n<p>\u063a\u0644\u0637 \u0637\u0631\u06cc\u0642\u06c1 \u06cc\u06c1 \u06c1\u06d2:<\/p>\n<pre><code class=\"language-yaml\"># Bad: This creates a dedicated AWS ALB every time it's applied\n# 20 microservices = 20 ALBs = $324+\/month before any traffic charges\napiVersion: v1\nkind: Service\nmetadata:\n  name: payment-api\nspec:\n  type: LoadBalancer   # Creates a dedicated ALB\n  ports:\n  - port: 80\n    targetPort: 8080\n<\/code><\/pre>\n<h3 id=\"heading-72-the-fix-shared-ingress-controller\">7.2 \u062d\u0644 - \u0645\u0634\u062a\u0631\u06a9\u06c1 \u062f\u0627\u062e\u0644\u06cc \u06a9\u0646\u0679\u0631\u0648\u0644\u0631<\/h3>\n<p>Ingress \u06a9\u0646\u0679\u0631\u0648\u0644\u0631 \u0627\u06cc\u06a9 Kubernetes \u062c\u0632\u0648 \u06c1\u06d2 \u062c\u0648 \u06a9\u0644\u0633\u0679\u0631 \u06a9\u06d2 \u0627\u0646\u062f\u0631 \u0627\u06cc\u06a9 Pod \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0686\u0644\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0645\u06cc\u0632\u0628\u0627\u0646 \u0646\u0627\u0645 \u0627\u0648\u0631 URL \u067e\u0627\u062a\u06be \u06a9\u06cc \u0628\u0646\u06cc\u0627\u062f \u067e\u0631 \u0645\u062a\u0639\u062f\u062f \u0633\u0631\u0648\u0633\u0632 \u062a\u06a9 \u0679\u0631\u06cc\u0641\u06a9 \u06a9\u0648 \u0631\u0648\u0679 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9 \u0628\u06cc\u0631\u0648\u0646\u06cc \u0644\u0648\u0688 \u0628\u06cc\u0644\u0646\u0633 \u06a9\u0648 \u067e\u0631\u0648\u06af\u0631\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u06cc\u06a9 AWS \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0644\u0648\u0688 \u0628\u06cc\u0644\u0646\u0633\u0631 \u0641\u06cc \u0645\u0627\u0626\u06cc\u06a9\u0631\u0648 \u0633\u0631\u0648\u0633 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2\u060c \u0622\u067e \u06a9\u0648 \u067e\u0627\u062a\u06be \u067e\u0631 \u0645\u0628\u0646\u06cc \u0631\u0648\u0679\u0646\u06af \u06a9\u06d2 \u0633\u0627\u062a\u06be \u06a9\u0644 \u0627\u06cc\u06a9 ALB \u0645\u0644\u062a\u0627 \u06c1\u06d2 \u062c\u0648 \u06c1\u0631 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0648 \u062f\u0631\u0633\u062a \u0628\u06cc\u06a9 \u0627\u06cc\u0646\u0688 \u0633\u0631\u0648\u0633 \u06a9\u06cc \u0637\u0631\u0641 \u0644\u06d2 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4 \u0646\u062a\u06cc\u062c\u06d2 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631\u060c \u0622\u067e \u06a9\u0645 \u0642\u06cc\u0645\u062a \u067e\u0631 \u0648\u06c1\u06cc \u0631\u0648\u0679\u0646\u06af \u0631\u0648\u06cc\u06c1 \u062d\u0627\u0635\u0644 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u062f\u0631\u0633\u062a \u0646\u0641\u0627\u0630 \u06cc\u06c1 \u06c1\u0648\u06af\u0627:<\/p>\n<pre><code class=\"language-yaml\"># Good: One Ingress resource routes all external traffic\n# The AWS Load Balancer Controller creates one ALB for all services listed here\napiVersion: networking.k8s.io\/v1\nkind: Ingress\nmetadata:\n  name: shared-ingress\n  namespace: production\n  annotations:\n    kubernetes.io\/ingress.class: alb\n    alb.ingress.kubernetes.io\/scheme: internet-facing\n    alb.ingress.kubernetes.io\/listen-ports: '[{\"HTTP\": 80}, {\"HTTPS\": 443}]'\n    alb.ingress.kubernetes.io\/ssl-redirect: \"443\"\nspec:\n  rules:\n  - host: api.company.com\n    http:\n      paths:\n      - path: \/payments\n        pathType: Prefix\n        backend:\n          service:\n            name: payment-service\n            port:\n              number: 8080\n      - path: \/users\n        pathType: Prefix\n        backend:\n          service:\n            name: user-service\n            port:\n              number: 8080\n  - host: dashboard.company.com\n    http:\n      paths:\n      - path: \/\n        pathType: Prefix\n        backend:\n          service:\n            name: dashboard-service\n            port:\n              number: 3000\n  tls:\n  - hosts:\n    - api.company.com\n    - dashboard.company.com\n    secretName: tls-wildcard-cert\n<\/code><\/pre>\n<p>\u06cc\u0642\u06cc\u0646\u06cc \u0628\u0646\u0627\u0626\u06cc\u06ba \u06a9\u06c1 \u062f\u0627\u062e\u0644\u06d2 \u06a9\u0627 \u0627\u0646\u062a\u0638\u0627\u0645 \u06a9\u06cc\u0627 \u06af\u06cc\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0627\u06cc\u06a9 ALB DNS \u0646\u0627\u0645 \u062a\u0641\u0648\u06cc\u0636 \u06a9\u06cc\u0627 \u06af\u06cc\u0627 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-bash\"># Watch until the ADDRESS column shows the ALB DNS name (typically 2\u20133 minutes)\nkubectl get ingress shared-ingress -n production -w\n<\/code><\/pre>\n<p>\u0644\u0627\u06af\u062a \u06a9\u0627 \u0641\u0631\u0642:<\/p>\n<table>\n<thead>\n<tr>\n<th>\u0646\u0642\u0637\u06c1 \u0646\u0638\u0631<\/th>\n<th>\u0644\u0648\u0688 \u0628\u06cc\u0644\u0646\u0633\u0631<\/th>\n<th>\u0645\u0627\u06c1\u0627\u0646\u06c1 \u0644\u0627\u06af\u062a<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u0644\u0648\u0688 \u0628\u06cc\u0644\u0646\u0633 \u0633\u0631\u0648\u0633 \u0641\u06cc \u0645\u0627\u0626\u06cc\u06a9\u0631\u0648 \u0633\u0631\u0648\u0633 (20 \u0633\u0631\u0648\u0633\u0632)<\/td>\n<td>20 ALBs<\/td>\n<td>~$400\/\u0645\u06c1\u06cc\u0646\u06c1<\/td>\n<\/tr>\n<tr>\n<td>\u0648\u0627\u062d\u062f \u0648\u0635\u0648\u0644 \u06a9\u0631\u0646\u06d2 \u0648\u0627\u0644\u0627 \u06a9\u0646\u0679\u0631\u0648\u0644\u0631<\/td>\n<td>1 \u0627\u0644\u0628\u06cc<\/td>\n<td>~$27\/\u0645\u06c1\u06cc\u0646\u06c1<\/td>\n<\/tr>\n<tr>\n<td><strong>\u0645\u0627\u06c1\u0627\u0646\u06c1 \u0628\u0686\u062a<\/strong><\/td>\n<td\/>\n<td><strong>~$373\/\u0645\u06c1\u06cc\u0646\u06c1<\/strong><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u0645\u0634\u062a\u0631\u06a9\u06c1 \u062f\u0627\u062e\u0644\u06cc \u0645\u0646\u0634\u0648\u0631 \u06cc\u06c1\u0627\u06ba \u067e\u0631 \u0648\u0627\u0642\u0639 \u06c1\u06d2: <code>k8s\/ingress\/<\/code> \u06cc\u06c1 \u0633\u0627\u062a\u06be\u06cc \u0630\u062e\u06cc\u0631\u06c1 \u0645\u06cc\u06ba \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-the-complete-7-step-sequence\">7 \u0642\u062f\u0645\u0648\u06ba \u06a9\u06cc \u062a\u0631\u062a\u06cc\u0628 \u06a9\u0648 \u0645\u06a9\u0645\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/h2>\n<table>\n<thead>\n<tr>\n<th>\u0642\u062f\u0645<\/th>\n<th>\u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc<\/th>\n<th>\u0639\u0645\u0644 \u062f\u0631\u0622\u0645\u062f \u06a9\u0627 \u0648\u0642\u062a<\/th>\n<th>\u062a\u062e\u0645\u06cc\u0646\u06cc \u0645\u0627\u06c1\u0627\u0646\u06c1 \u0628\u0686\u062a<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>1<\/td>\n<td>\u0645\u0646\u0627\u0633\u0628 \u0633\u0627\u0626\u0632 \u06a9\u06d2 \u067e\u0648\u0688 \u0631\u06cc\u0633\u0648\u0631\u0633 \u06a9\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u06cc\u06ba (VPA)<\/td>\n<td>1 \u06c1\u0641\u062a\u06c1<\/td>\n<td>$15,600<\/td>\n<\/tr>\n<tr>\n<td>2<\/td>\n<td>\u0627\u0646\u0636\u0645\u0627\u0645 \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u06a9\u0627\u0631\u067e\u06cc\u0646\u0679\u0631 \u06a9\u06cc \u062a\u0646\u0635\u06cc\u0628<\/td>\n<td>1 \u06c1\u0641\u062a\u06c1<\/td>\n<td>$8,400<\/td>\n<\/tr>\n<tr>\n<td>3<\/td>\n<td>\u0633\u0679\u06cc\u062c\u0646\u06af \u0627\u0648\u0631 \u062a\u0631\u0642\u06cc \u06a9\u0648 \u0627\u0633\u067e\u0627\u0679 \u067e\u0631 \u0645\u0646\u062a\u0642\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/td>\n<td>1 \u06c1\u0641\u062a\u06c1<\/td>\n<td>$11,200<\/td>\n<\/tr>\n<tr>\n<td>4<\/td>\n<td>\u06c1\u0645 \u0622\u06c1\u0646\u06af \u06a9\u0627\u0645 \u06a9\u06d2 \u0628\u0648\u062c\u06be \u06a9\u0648 Graviton \u0645\u06cc\u06ba \u0645\u0646\u062a\u0642\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/td>\n<td>2 \u06c1\u0641\u062a\u06d2<\/td>\n<td>$7,600<\/td>\n<\/tr>\n<tr>\n<td>5<\/td>\n<td>S3\u060c ECR\u060c \u0627\u0648\u0631 DynamoDB \u06a9\u06d2 \u0644\u06cc\u06d2 VPC \u0627\u06cc\u0646\u0688 \u067e\u0648\u0627\u0626\u0646\u0679\u0633 \u0634\u0627\u0645\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/td>\n<td>1 \u062f\u0646<\/td>\n<td>$6,471<\/td>\n<\/tr>\n<tr>\n<td>6<\/td>\n<td>gp2 \u06a9\u0648 gp3 \u0645\u06cc\u06ba \u0645\u0646\u062a\u0642\u0644 \u06a9\u0631\u06cc\u06ba \u0627\u0648\u0631 \u06cc\u062a\u06cc\u0645 \u0648\u0627\u0644\u06cc\u0648\u0645 \u06a9\u0648 \u062d\u0630\u0641 \u06a9\u0631\u06cc\u06ba\u06d4<\/td>\n<td>1 \u062f\u0646<\/td>\n<td>$555<\/td>\n<\/tr>\n<tr>\n<td>7<\/td>\n<td>\u0645\u0634\u062a\u0631\u06a9\u06c1 \u062f\u0627\u062e\u0644\u06d2 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0644\u0648\u0688 \u0628\u06cc\u0644\u0646\u0633\u0631\u0632 \u06a9\u0648 \u0645\u0631\u0628\u0648\u0637 \u06a9\u0631\u06cc\u06ba\u06d4<\/td>\n<td>1 \u062f\u0646<\/td>\n<td>$373<\/td>\n<\/tr>\n<tr>\n<td><strong>\u0628\u0646\u062f\u0648\u0642<\/strong><\/td>\n<td\/>\n<td><strong>3-4 \u06c1\u0641\u062a\u06d2<\/strong><\/td>\n<td><strong>$49,799\/\u0645\u06c1\u06cc\u0646\u06c1<\/strong><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u0627\u0633 \u0634\u0631\u062d \u067e\u0631 \u0633\u0627\u0644\u0627\u0646\u06c1 \u0628\u0686\u062a: <strong>$597,588<\/strong>. \u0627\u0646\u062c\u06cc\u0646\u0626\u0631\u0646\u06af \u06a9\u0627 \u0648\u0642\u062a \u062f\u0631\u06a9\u0627\u0631 \u06c1\u06d2: \u0627\u06cc\u06a9 \u0627\u0646\u062c\u06cc\u0646\u0626\u0631\u060c \u0641\u06cc \u0645\u0631\u062d\u0644\u06c1 \u0627\u06cc\u06a9 \u0633\u067e\u0631\u0646\u0679\u06d4<\/p>\n<h2 id=\"heading-best-practices-for-eks-cost-optimisation\">EKS \u0644\u0627\u06af\u062a \u06a9\u06cc \u0627\u0635\u0644\u0627\u062d \u06a9\u06d2 \u0628\u06c1\u062a\u0631\u06cc\u0646 \u0637\u0631\u06cc\u0642\u06d2<\/h2>\n<p> <strong>\u06a9\u0631\u0646\u0627:<\/strong> \u06a9\u0633\u06cc \u0628\u06be\u06cc \u062f\u0648\u0633\u0631\u06cc \u0627\u0635\u0644\u0627\u062d \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0627\u067e\u0646\u06cc \u067e\u0648\u0688 \u0631\u06cc\u0633\u0648\u0631\u0633 \u06a9\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u0648\u06ba \u06a9\u0648 \u0645\u0646\u0627\u0633\u0628 \u0633\u0627\u0626\u0632 \u062f\u06cc\u06ba\u06d4 \u062a\u0645\u0627\u0645 \u0628\u0639\u062f \u06a9\u06d2 \u0627\u0642\u062f\u0627\u0645\u0627\u062a \u0622\u067e \u06a9\u06cc \u062f\u0631\u0633\u062a \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u067e\u0631 \u0645\u0646\u062d\u0635\u0631 \u06c1\u0648\u06ba \u06af\u06d2\u06d4<\/p>\n<p> <strong>\u06a9\u0631\u0646\u0627:<\/strong> \u06a9\u0627\u0631\u067e\u06cc\u0646\u0679\u0631 \u06a9\u0648 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0644\u0627\u06af\u0648 \u06a9\u0631\u06cc\u06ba: <code>consolidationPolicy: WhenUnderutilized<\/code>. \u062e\u0648\u062f \u0628\u062e\u0648\u062f \u0627\u0648\u0631 \u0645\u0633\u0644\u0633\u0644 \u0646\u0648\u0688 \u06a9\u06cc \u06af\u0646\u062a\u06cc \u06a9\u0648 \u0628\u06c1\u062a\u0631 \u0628\u0646\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p> <strong>\u06a9\u0631\u0646\u0627:<\/strong> \u0627\u067e\u0646\u06d2 \u0627\u0633\u0679\u06cc\u062c\u0646\u06af \u0627\u0648\u0631 \u062a\u0631\u0642\u06cc\u0627\u062a\u06cc \u06a9\u0627\u0645 \u06a9\u06d2 \u0628\u0648\u062c\u06be \u06a9\u0648 \u0627\u0633\u067e\u0627\u0679 \u067e\u0631 \u0645\u0646\u062a\u0642\u0644 \u06a9\u0631\u06cc\u06ba\u06d4 \u06a9\u0627\u0645 \u06a9\u06d2 \u0628\u0648\u062c\u06be \u06a9\u06d2 \u0644\u06cc\u06d2 \u062c\u0648 \u0631\u06a9\u0627\u0648\u0679\u0648\u06ba \u06a9\u0648 \u0628\u0631\u062f\u0627\u0634\u062a \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u0628\u0686\u062a\u06cc\u06ba 60-90% \u06c1\u06cc\u06ba\u06d4<\/p>\n<p> <strong>\u06a9\u0631\u0646\u0627:<\/strong> \u06c1\u0645 \u0622\u06c1\u0646\u06af \u06a9\u0627\u0645 \u06a9\u06d2 \u0628\u0648\u062c\u06be \u06a9\u0648 Graviton \u0645\u06cc\u06ba \u0645\u0646\u062a\u0642\u0644 \u06a9\u0631\u06cc\u06ba\u06d4 \u0632\u06cc\u0627\u062f\u06c1 \u062a\u0631 \u0648\u06cc\u0628 \u0633\u0631\u0648\u0633\u0632 \u0627\u0648\u0631 APIs \u0628\u063a\u06cc\u0631 \u06a9\u0633\u06cc \u06a9\u0648\u0688 \u0645\u06cc\u06ba \u062a\u0628\u062f\u06cc\u0644\u06cc \u06a9\u06d2 \u0686\u0644\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p> <strong>\u06a9\u0631\u0646\u0627:<\/strong> \u0688\u06cc\u0679\u0627 \u06a9\u06cc \u0645\u0646\u062a\u0642\u0644\u06cc \u06a9\u06d2 \u0627\u062e\u0631\u0627\u062c\u0627\u062a \u06a9\u0627 \u062c\u0627\u0626\u0632\u06c1 \u0644\u06cc\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 S3\u060c DynamoDB\u060c \u0627\u0648\u0631 ECR \u06a9\u06d2 \u0644\u06cc\u06d2 VPC \u0627\u06cc\u0646\u0688 \u067e\u0648\u0627\u0626\u0646\u0679\u0633 \u0634\u0627\u0645\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<p> <strong>\u06a9\u0631\u0646\u0627:<\/strong> gp2 \u0648\u0627\u0644\u06cc\u0648\u0645 \u06a9\u0648 gp3 \u0645\u06cc\u06ba \u0645\u0646\u062a\u0642\u0644 \u06a9\u0631\u06cc\u06ba\u06d4 \u06cc\u06c1 \u0622\u0646 \u0644\u0627\u0626\u0646 \u06c1\u06d2\u060c \u06a9\u0648\u0626\u06cc \u0688\u0627\u0624\u0646 \u0679\u0627\u0626\u0645 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u060c \u0627\u0648\u0631 \u06cc\u06c1 \u0641\u0648\u0631\u06cc \u0637\u0648\u0631 \u067e\u0631 20% \u0633\u0633\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p> <strong>\u06a9\u0631\u0646\u0627:<\/strong> \u062a\u0645\u0627\u0645 \u0628\u06cc\u0631\u0648\u0646\u06cc \u0679\u0631\u06cc\u0641\u06a9 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0641\u06cc \u0633\u0631\u0648\u0633 \u0644\u0648\u0688 \u0628\u06cc\u0644\u0646\u0633\u0631 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2 \u0627\u06cc\u06a9 \u0645\u0634\u062a\u0631\u06a9\u06c1 \u0627\u0646\u06af\u0631\u06cc\u0633 \u06a9\u0646\u0679\u0631\u0648\u0644\u0631 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<p> <strong>\u0645\u062a \u06a9\u0631\u0648:<\/strong> 1-6 \u0645\u0631\u0627\u062d\u0644 \u06a9\u0648 \u0645\u06a9\u0645\u0644 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0628\u0686\u062a \u06a9\u0627 \u0645\u0646\u0635\u0648\u0628\u06c1 \u062e\u0631\u06cc\u062f\u06cc\u06ba\u06d4 \u0641\u0636\u0644\u06c1 1 \u0633\u06d2 3 \u0633\u0627\u0644 \u062a\u06a9 \u067e\u06be\u0646\u0633 \u062c\u0627\u0626\u06d2 \u06af\u0627\u06d4<\/p>\n<p> <strong>\u0645\u062a \u06a9\u0631\u0648:<\/strong> \u06a9\u0644\u0633\u0679\u0631 \u0622\u0679\u0648 \u0627\u0633\u06a9\u06cc\u0644\u0631 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u062c\u0627\u0645\u062f \u0646\u0648\u0688 \u06af\u0631\u0648\u067e\u0633 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u0622\u067e \u06a9\u06d2 \u06a9\u0627\u0645 \u06a9\u0627 \u0628\u0648\u062c\u06be \u0645\u06a9\u0633 \u062a\u0628\u062f\u06cc\u0644 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4 \u06a9\u0627\u0631\u067e\u06cc\u0646\u0679\u0631 \u0627\u0633\u06d2 \u0645\u062a\u062d\u0631\u06a9 \u0637\u0648\u0631 \u067e\u0631 \u06c1\u06cc\u0646\u0688\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p> <strong>\u0645\u062a \u06a9\u0631\u0648:<\/strong> \u0622\u0646 \u0688\u06cc\u0645\u0627\u0646\u0688 \u0645\u062b\u0627\u0644\u0648\u06ba \u067e\u0631 \u0633\u0679\u06cc\u062c\u0646\u06af \u0627\u0648\u0631 \u0688\u06cc\u0648\u0644\u067e\u0645\u0646\u0679 \u0645\u0627\u062d\u0648\u0644 \u0686\u0644\u0627\u0626\u06cc\u06ba\u06d4 \u062c\u06af\u06c1 \u06a9\u06cc \u0628\u0646\u062f\u0634 \u0642\u0627\u0628\u0644 \u0627\u0646\u062a\u0638\u0627\u0645 \u06c1\u06d2\u060c \u0644\u06cc\u06a9\u0646 \u0644\u0627\u06af\u062a \u06a9\u0627 \u0641\u0631\u0642 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-resources\">\u0648\u0633\u0627\u0626\u0644<\/h2>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u06cc\u06c1 \u06c1\u06cc\u0646\u0688 \u0628\u06a9 7 \u0642\u062f\u0645\u06cc \u067e\u0644\u06d2 \u0628\u06a9 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9 \u0645\u06a9\u0645\u0644 \u06af\u0627\u0626\u06cc\u0688 \u06c1\u06d2 \u062c\u0633 \u0646\u06d2 \u067e\u0631\u0648\u0688\u06a9\u0679 \u06a9\u0648\u0688 \u06a9\u06cc \u0627\u06cc\u06a9 \u0644\u0627\u0626\u0646 \u06a9\u0648 \u0686\u06be\u0648\u0626\u06d2 \u0628\u063a\u06cc\u0631 \u0645\u06cc\u0631\u0627 EKS \u0628\u0644 $85,000\/\u0645\u0627\u06c1 \u0633\u06d2 $34,000\/\u0645\u0627\u06c1 \u062a\u06a9 \u0644\u06d2 \u0644\u06cc\u0627 \u06c1\u06d2\u06d4 \u0645\u06cc\u06ba \u0646\u06d2 10 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u06a9\u0645\u067e\u0646\u06cc\u0648\u06ba \u0645\u06cc\u06ba EKS \u06a9\u0644\u0633\u0679\u0631\u0632 \u06a9\u0627 \u0622\u0688\u0679 \u06a9\u06cc\u0627 \u06c1\u06d2\u06d4 \u06c1\u0645 \u06c1\u0631 \u0628\u0627\u0631 \u0641\u0636\u0644\u06d2 \u06a9\u06d2 \u0627\u06cc\u06a9 \u062c\u06cc\u0633\u06d2 \u0646\u0645\u0648\u0646\u06d2 \u062f\u06cc\u06a9\u06be\u062a\u06d2 [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[1],"tags":[],"class_list":["post-25761","post","type-post","status-publish","format-standard","hentry","category-blog"],"_links":{"self":[{"href":"https:\/\/umang.pk\/ur\/wp-json\/wp\/v2\/posts\/25761","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/umang.pk\/ur\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/umang.pk\/ur\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/umang.pk\/ur\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/umang.pk\/ur\/wp-json\/wp\/v2\/comments?post=25761"}],"version-history":[{"count":0,"href":"https:\/\/umang.pk\/ur\/wp-json\/wp\/v2\/posts\/25761\/revisions"}],"wp:attachment":[{"href":"https:\/\/umang.pk\/ur\/wp-json\/wp\/v2\/media?parent=25761"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/umang.pk\/ur\/wp-json\/wp\/v2\/categories?post=25761"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/umang.pk\/ur\/wp-json\/wp\/v2\/tags?post=25761"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}