AWS ECR: మీ ECS Fargate కు అవసరమైన కంటైనర్ రిజిస్ట్రీ (మరియు అది విచ్ఛిన్నమయ్యే వరకు ఎందుకు కనిపించదు)

AWS ECR: మీ ECS Fargate కు అవసరమైన కంటైనర్ రిజిస్ట్రీ (మరియు అది విచ్ఛిన్నమయ్యే వరకు ఎందుకు కనిపించదు)

AWS లో ఇమేజ్ పుల్స్, IAM పర్మిషన్స్ మరియు బిల్లులను నిర్వహించడానికి ఒక ఆచరణాత్మక గైడ్

AWS ECR అంటే ఏమిటి మరియు మీరు ఎందుకు పట్టించుకోవాలి?

AWS ECR (Elastic Container Registry) అనేది Amazon యొక్క మేనేజ్డ్ కంటైనర్ ఇమేజ్ స్టోరేజ్. దీన్ని ప్రైవేట్ Docker Hub లాగా భావించండి, కానీ AWS లో నిర్మించబడింది. మీరు ECS Fargate లో కంటైనర్‌ను రన్ చేసిన ప్రతిసారీ, టాస్క్ ఒక ఇమేజ్‌ను లాగాలి ఎక్కడినుండో — మరియు చాలా జట్లు తమ ఇమేజ్‌లను ECR లోనే ఉంచుతాయి.

1 జూలై 2026 న, కంటైనర్ ఆర్కెస్ట్రేషన్ అనేది ఏదైనా తీవ్రమైన క్లౌడ్ డిప్లాయ్‌మెంట్ కోసం టేబుల్ స్టాక్స్. మీరు ECS Fargate ని నడుపుతుంటే, మీరు ఖచ్చితంగా ECR ని కూడా ఉపయోగిస్తున్నారు. కానీ ఇక్కడ విషయం ఏమిటంటే: ECR అనేది ఒక రకంగా కనిపించదు. ఇది విచ్ఛిన్నమయ్యే వరకు పనిచేస్తుంది, మరియు అది విచ్ఛిన్నమైనప్పుడు, ఎర్రర్ మెసేజ్‌లు సహాయపడవు. దీనితో టాస్క్ ప్రారంభం కావడంలో విఫలమవుతుంది ResourceInitializationError. మీ సహచరులు భుజాలు ఎగురువేస్తారు. ఆరు నెలల తర్వాత, మీ రిజిస్ట్రీలో ఐదేళ్ల నాటి ట్యాగ్ చేయని ఇమేజ్‌లు కూర్చుని ఉన్నాయని, నిశ్శబ్దంగా నెలకు $400 స్టోరేజ్ కోసం మీకు ఛార్జ్ చేస్తున్నాయని మీరు కనుగొంటారు. ECR డాక్యుమెంటేషన్ వివరించని భాగాలను ఈ గైడ్ కవర్ చేస్తుంది: పుల్స్ వాస్తవానికి ఎలా పనిచేస్తాయి, ప్రైవేట్-సబ్‌నెట్ టాస్క్‌లు ఎందుకు విఫలమవుతాయి మరియు మీ బిల్లును సహేతుకంగా ఎలా ఉంచుకోవాలి.

ECS Fargate తో ECR ఎలా పనిచేస్తుంది

ECS Fargate టాస్క్ ప్రారంభమైనప్పుడు, దానికి కంటైనర్ ఇమేజ్‌ను లాగాల్సిన అవసరం ఉంటుంది. టాస్క్‌కు స్థానికంగా Docker ఇన్‌స్టాల్ చేయబడలేదు — ఇది Amazon యొక్క మేనేజ్డ్ ఇన్‌ఫ్రాస్ట్రక్చర్‌లో నడుస్తోంది. కాబట్టి Fargate ఏజెంట్ ECR కు చేరుకుని, ప్రామాణీకరించి, మరియు ఇమేజ్‌ను డౌన్‌లోడ్ చేస్తుంది.

ఆ ప్రామాణీకరణ అనేది ఎవరూ మాట్లాడని ముఖ్యమైన అంశం. మీ Fargate టాస్క్ యూజర్‌నేమ్ మరియు పాస్‌వర్డ్‌తో లాగిన్ అవ్వదు. దానికి బదులుగా, ఇది IAM రోల్‌ని ఉపయోగిస్తుంది — ప్రత్యేకంగా, మీరు టాస్క్‌కి కేటాయించిన ఎగ్జిక్యూషన్ రోల్. ECR ఆ రోల్ యొక్క పర్మిషన్‌లను తనిఖీ చేస్తుంది. రోల్ ఇమేజ్‌ను చదవగలిగితే, చాలా మంచిది. లేకపోతే, టాస్క్ నిశ్శబ్దంగా విఫలమవుతుంది (మీకు ఒక సాధారణ ఎర్రర్ వస్తుంది).

ECR కూడా ఒక నిర్దిష్ట AWS రీజియన్‌లో నివసిస్తుంది. మీ టాస్క్ ఇక్కడ ఉంటే us-east-1 మరియు మీ ఇమేజ్ ఇక్కడ ఉంటే eu-west-1, అదనపు కాన్ఫిగరేషన్ లేకుండా టాస్క్ దాన్ని లాగలేదు. ఇది సాధారణంగా సమస్య కాదు, కానీ ఇది తెలుసుకోవడం మంచిది.

IAM పర్మిషన్స్: అదృశ్య గోడ

ఇక్కడే చాలా మంది పొరబడతారు. మీ ECS టాస్క్‌కి ఒక ఎగ్జిక్యూషన్ రోల్ అవసరం — ఇమేజ్‌లను లాగడానికి, లాగ్‌లను రాయడానికి మరియు ఇతర AWS సేవలతో మాట్లాడటానికి ఇది ఉపయోగించే గుర్తింపు. ECR నుండి చదవడానికి ఆ రోల్‌కి నిర్దిష్ట పర్మిషన్స్ అవసరం.

కనీస అవసరం ఇలా ఉంటుంది:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ecr:GetDownloadUrlForLayer",
        "ecr:BatchGetImage",
        "ecr:BatchCheckLayerAvailability"
      ],
      "Resource": "arn:aws:ecr:us-east-1:REPLACE_WITH_ACCOUNT_ID:repository/REPLACE_WITH_REPO_NAME"
    },
    {
      "Effect": "Allow",
      "Action": "ecr:GetAuthorizationToken",
      "Resource": "*"
    }
  ]
}

ఆ రెండవ స్టేట్‌మెంట్ కీలకం. GetAuthorizationToken అనేది ఒకే ఒక్క ఒక నిర్దిష్ట రిపోజిటరీకి వర్తించని ECR యాక్షన్ — ఇది ప్రపంచవ్యాప్తంగా వర్తిస్తుంది. ఇది లేకుండా, మీ టాస్క్ ECR కి ప్రామాణీకరించబడదు మరియు మిగతావన్నీ విఫలమవుతాయి.

మీరు దీన్ని గందరగోళపరిస్తే, మీ టాస్క్ ఒక నిమిషం పాటు ఇందులో కూర్చుంటుంది PROVISIONING , ఆపై విఫలమవుతుంది ResourceInitializationError. "హే, మీ IAM రోల్ ECR ని చదవలేదు" అని చెప్పే లాగ్ ఏదీ లేదు. ఎర్రర్ అస్పష్టంగా ఉంది. కాబట్టి టాస్క్ ప్రారంభం కానప్పుడు తనిఖీ చేయవలసిన మొదటి విషయం ఎగ్జిక్యూషన్ రోల్.

ప్రైవేట్ సబ్‌నెట్ వైఫల్యాలు మరియు అవి ఎందుకు జరుగుతాయి

మీ Fargate టాస్క్ ఒక ప్రైవేట్ సబ్‌నెట్‌లో (మంచి సెక్యూరిటీ ప్రాక్టీస్) ఉందని అనుకుందాం. దానికి డైరెక్ట్ ఇంటర్నెట్ యాక్సెస్ లేదు — మొత్తం అవుట్‌బౌండ్ ట్రాఫిక్ NAT గేట్‌వే ద్వారా వెళుతుంది. ఇప్పుడు మీ టాస్క్ ECR నుండి ఇమేజ్‌ను లాగడానికి ప్రయత్నిస్తుంది.

ECR అనేది AWS సేవ, కాబట్టి ఇది ఇంటర్నెట్‌లో నివసిస్తుంది (ఒక విధంగా — సాంకేతికంగా దీనికి పబ్లిక్ మరియు VPC ఎండ్‌పాయింట్‌లు రెండూ ఉన్నాయి). మీ ప్రైవేట్-సబ్‌నెట్ టాస్క్ ECR యొక్క పబ్లిక్ ఎండ్‌పాయింట్‌కి చేరుకున్నప్పుడు, రిక్వెస్ట్ NAT గేట్‌వే ద్వారా వెళ్లి, తిరిగి వస్తుంది, మరియు పనిచేయాలి . సాధారణంగా ఇది పనిచేస్తుంది.

కానీ కొన్నిసార్లు ఇది పనిచేయదు. మీ NAT గేట్‌వే మీ టాస్క్ నుండి భిన్నమైన AZ లో ఉంటే, లేదా మీరు రూట్ టేబుల్స్‌ను తప్పుగా కాన్ఫిగర్ చేసి ఉంటే, రిక్వెస్ట్ నిశ్శబ్దంగా విఫలమవుతుంది. లేదా మీ సెక్యూరిటీ గ్రూపులు పోర్ట్ 443 (HTTPS) లో ఎగ్రెస్ (egress) ను బ్లాక్ చేస్తే, ECR ప్రతిస్పందించదు.

పరిష్కారం సాధారణంగా వీటిలో ఒకటి:

  1. ECR కోసం VPC ఎండ్‌పాయింట్‌ను ఉపయోగించండి. మీ VPC లో ఒక VPC ఎండ్‌పాయింట్‌ను సృష్టించండి, మరియు Fargate పబ్లిక్ ఇంటర్నెట్‌కు బదులుగా ఎండ్‌పాయింట్ ద్వారా ఇమేజ్‌ను లాగుతుంది. ఇది మరింత సురక్షితమైనది మరియు వేగవంతమైనది.
  2. మీ NAT గేట్‌వే చేరుకోగలదని నిర్ధారించుకోండి. రూట్ టేబుల్స్‌ను తనిఖీ చేయండి — ECR కి వెళ్లే ట్రాఫిక్ NAT ద్వారా రూట్ కావాలి.
  3. అవుట్‌బౌండ్ HTTPS ని తెరవండి. ECR ని చేరుకోవడానికి మీ టాస్క్ యొక్క సెక్యూరిటీ గ్రూప్‌కి పోర్ట్ 443 లో ఎగ్రెస్ అవసరం.
  4. CloudWatch లాగ్‌లను తనిఖీ చేయండి. మీరు ఎర్రర్ మెసేజ్‌ని దాటి త్రవ్వితే మీ టాస్క్ యొక్క CloudWatch లాగ్ గ్రూప్‌లో తరచుగా ఆధారాలు ఉంటాయి.

మీరు ప్రైవేట్ సబ్‌నెట్‌లో ఉన్నట్లయితే, VPC ఎండ్‌పాయింట్ అనేది గోల్డ్ స్టాండర్డ్. ఇది మొత్తం ట్రాఫిక్‌ను AWS లోపల ఉంచుతుంది, NAT ఛార్జీలను నివారిస్తుంది మరియు వేగవంతమైనది. దీన్ని ఒకసారి సెటప్ చేయండి, దాని గురించి మర్చిపోండి.

ECR ధర మరియు ఇమేజ్ క్లీనప్‌ను అర్థం చేసుకోవడం

ECR ఖర్చులు చాలా సులభం: మీరు నిల్వ చేసిన ఇమేజ్ డేటాకు చెల్లిస్తారు. ప్రతి పుల్‌కు ఛార్జీ లేదు, ప్రతి పుష్‌కి ఛార్జీ లేదు. కేవలం స్టోరేజ్.

క్యాచ్: మీరు పుష్ చేసే ప్రతి ఇమేజ్ లేయర్ మీరు దాన్ని తొలగించే వరకు శాశ్వతంగా నిల్వ చేయబడుతుంది. మీరు ఒకే ఇమేజ్ ట్యాగ్‌ని పదేపదే పుష్ చేస్తే ("లేటెస్ట్" ట్యాగ్ లాగా), ప్రతి పుష్ హుడ్ కింద కొత్త ఇమేజ్. కొన్ని సంవత్సరాల తర్వాత, మీరు అక్కడ వేలాది ట్యాగ్ చేయని ఇమేజ్‌లను కూర్చుని ఉంచుతారు.

బేస్ OS మరియు ప్యాకేజీలను బట్టి ఒకే ఇమేజ్ 500 MB నుండి 2 GB వరకు ఉండవచ్చు. దాన్ని వందల లేదా వేల బేస్ బిల్డ్‌లతో గుణించండి, మరియు మీరు టెరాబైట్‌లను చూస్తున్నారు. నెలకు GB కి సుమారు $0.10 వద్ద, అది ఖరీదైనది.

పరిష్కారం ఒక లైఫ్‌సైకిల్ పాలసీ. ఇది "30 రోజుల్లో ఉపయోగించని ఇమేజ్‌ని తొలగించండి" లేదా "ట్యాగ్‌కి చివరి 10 ఇమేజ్‌లను మాత్రమే ఉంచండి" అని చెప్పే నియమం. ఇక్కడ ఒక సహేతుకమైన ఉదాహరణ ఉంది:

{
  "rules": [
    {
      "rulePriority": 1,
      "description": "Keep last 10 images",
      "selection": {
        "tagStatus": "tagged",
        "countType": "imageCountMoreThan",
        "countNumber": 10
      },
      "action": {
        "type": "expire"
      }
    },
    {
      "rulePriority": 2,
      "description": "Delete untagged images after 30 days",
      "selection": {
        "tagStatus": "untagged",
        "countType": "sinceImagePushed",
        "countUnit": "days",
        "countNumber": 30
      },
      "action": {
        "type": "expire"
      }
    }
  ]
}

ఇది చివరి 10 ట్యాగ్ చేసిన ఇమేజ్‌లను ఉంచుతుంది మరియు 30 రోజుల కంటే పాతవైన ట్యాగ్ చేయని వాటిని తొలగిస్తుంది. మీరు ECR ని సెటప్ చేసినప్పుడు దీన్ని వర్తింపజేయండి, మరియు మీకు ఎప్పటికీ $400 ఆశ్చర్యకరమైన బిల్లు రాదు.

ECR సమస్యలను డీబగ్ చేయడం

టాస్క్ ప్రారంభం కానప్పుడు, ఎర్రర్ మెసేజ్ సాధారణంగా పనికిరాదు. కానీ సమాధానం దాదాపు ఎల్లప్పుడూ వీటిలో ఒకటి:

  1. చెడ్డ IAM పర్మిషన్స్. ఎగ్జిక్యూషన్ రోల్ రిపోజిటరీని చదవలేదు.
  2. తప్పు రిపోజిటరీ లేదా రీజియన్. టాస్క్ వెతుకుతోంది app.example.com/myimage:latest ఇందులో us-east-1, కానీ మీరు దానిని ఇక్కడకు పుష్ చేసారు eu-west-1.
  3. నెట్‌వర్క్ సమస్యలు. ప్రైవేట్ సబ్‌నెట్, సెక్యూరిటీ గ్రూపులు లేదా రూట్ టేబుల్స్ ECR కి యాక్సెస్‌ని బ్లాక్ చేస్తున్నాయి.
  4. ఇమేజ్ లేదు. మీరు ఒక ట్యాగ్‌ని పుష్ చేసి, దాన్ని తొలగించి, ఆపై దాన్ని ఉపయోగించడానికి ప్రయత్నించారు.
  5. ECR API థ్రోట్లింగ్. అరుదుగా, కానీ మీరు ఒకేసారి వందల కొద్దీ ఇమేజ్‌లను లాగుతున్నట్లయితే, ECR మిమ్మల్ని రేట్-లిమిట్ చేయవచ్చు.

ట్రబుల్షూట్ చేయడానికి:

  • IAM కన్సోల్‌లో టాస్క్ యొక్క ఎగ్జిక్యూషన్ రోల్‌ని తనిఖీ చేయండి. దానికి ECR పర్మిషన్స్ ఉన్నాయా?
  • టాస్క్ కోసం CloudWatch లాగ్స్ గ్రూప్‌ని తనిఖీ చేయండి. తరచుగా ఇందులో ఒక క్లూ ఉంటుంది awslogs అవుట్‌పుట్.
  • అదే VPC లోని EC2 ఇన్‌స్టాన్స్ నుండి మాన్యువల్‌గా ఇమేజ్‌ను లాగడానికి ప్రయత్నించండి. అది పనిచేస్తే, టాస్క్ కాన్ఫిగరేషన్‌లో సమస్య నెట్‌వర్కింగ్ లేదా IAM అని అర్థం.
  • VPC ఎండ్‌పాయింట్‌ని చూడండి (మీరు ఒకదాన్ని ఉపయోగిస్తుంటే). టాస్క్ యొక్క సబ్‌నెట్ నుండి దాన్ని చేరుకోగలరా?

ముగింపు

ECR సంక్లిష్టమైనది కాదు, కానీ వివరాలను కోల్పోవడం సులభం. ఇది మీ ECS టాస్క్ మరియు బయటి ప్రపంచం మధ్య కూర్చుంటుంది, మరియు ఇది తప్పుగా కాన్ఫిగర్ చేయబడితే, ప్రతిదీ ఆగిపోతుంది. సరిగ్గా తెలుసుకోవలసిన మూడు విషయాలు: IAM పర్మిషన్స్ (వీటితో సహా GetAuthorizationToken), నెట్‌వర్క్ యాక్సెస్ (ముఖ్యంగా ప్రైవేట్ సబ్‌నెట్‌లలో), మరియు ఇమేజ్ క్లీనప్ (లైఫ్‌సైకిల్ పాలసీలు). ఆ మూడు చేయండి, మరియు ECR మంచి మార్గంలో అదృశ్యమవుతుంది — ఇది కేవలం పనిచేస్తుంది మరియు మీ బిల్లు సహేతుకంగా ఉంటుంది.

ప్రయోజనాలు

  • పూర్తిగా మేనేజ్ చేయబడింది — మీరే ఆపరేట్ చేసుకోవడానికి కంటైనర్ రిజిస్ట్రీ ఏదీ లేదు
  • IAM తో ఇంటిగ్రేట్ చేయబడింది — ఫైన్-గ్రెయిన్డ్ యాక్సెస్ కంట్రోల్ నిర్మించబడింది
  • చౌక — స్టోరేజ్‌కి మాత్రమే చెల్లించండి, ప్రతి పుల్‌కు ఛార్జీలు లేవు
  • వేగవంతమైనది — మీ టాస్క్‌ల వలె అదే AWS రీజియన్‌లో ఇమేజ్‌లు నివసిస్తాయి
  • VPC ఎండ్‌పాయింట్‌లు అందుబాటులో ఉన్నాయి — భద్రత మరియు వేగం కోసం ట్రాఫిక్‌ను AWS లోపల ఉంచండి
  • లైఫ్‌సైకిల్ పాలసీలు — ఆటోమేటిక్ క్లీనప్ ఆశ్చర్యకరమైన బిల్లులను నివారిస్తుంది

లోపాలు

  • ఎర్రర్ మెసేజ్‌లు అపారదర్శకంగా ఉన్నాయి — "ResourceInitializationError" మీకు ఏమీ చెప్పదు
  • ప్రాంతీయమైనది — ఒక రీజియన్‌లోని ఇమేజ్‌లు వర్క్‌అరౌండ్స్ లేకుండా మరొక రీజియన్‌లోని టాస్క్‌లకు కనిపించవు
  • అంతర్నిర్మిత నోటిఫికేషన్‌లు లేవు — మీ ఇమేజ్ స్టోరేజ్ హెచ్చరిక లేకుండా బెలూన్ లాగా పెరగవచ్చు
  • IAM సంక్లిష్టత — ఎగ్జిక్యూషన్ రోల్ చాలా కదిలే భాగాలను కలిగి ఉంటుంది
  • VPC ఎండ్‌పాయింట్ సెటప్ మాన్యువల్ — ప్రైవేట్-సబ్‌నెట్ యాక్సెస్‌ను సురక్షితం చేయడం సులభం కావాలి
  • ట్యాగ్ చేయని ఇమేజ్ క్లీనప్ మాన్యువల్ — లైఫ్‌సైకిల్ పాలసీలు డిఫాల్ట్‌గా ఆక్టివేట్ కావు

జాగ్రత్త

ఈ గైడ్ ప్లేస్‌హోల్డర్ విలువలని ఉపయోగిస్తుంది: రిపోజిటరీ పేర్లు REPLACE_WITH_REPO_NAME, అకౌంట్ ID లు REPLACE_WITH_ACCOUNT_ID, మరియు రీజియన్స్ సాధారణ ఉదాహరణలు. ఎల్లప్పుడూ మీ AWS అకౌంట్ నుండి నిజమైన విలువలతో ప్రత్యామ్నాయం చేయండి. ఈ కాన్ఫిగరేషన్‌లలో దేనినైనా ప్రొడక్షన్‌కు డిప్లాయ్ చేయడానికి ముందు, వాటిని ముందుగా శాండ్‌బాక్స్ వాతావరణంలో పరీక్షించండి. IAM మార్పులు మరియు నెట్‌వర్కింగ్ కాన్ఫిగరేషన్‌లు నడుస్తున్న వర్క్‌లోడ్‌లకు అంతరాయం కలిగించవచ్చు, కాబట్టి జాగ్రత్తగా మార్పులు చేయండి మరియు రోల్‌బ్యాక్ ప్లాన్‌ను కలిగి ఉండండి. మీ స్వంత పూచీకతో ముందుకు సాగండి మరియు అన్ని ప్లేస్‌హోల్డర్‌లు వాస్తవ, సరైన విలువలతో భర్తీ చేయబడ్డాయని ధృవీకరించండి.

తరచుగా అడిగే ప్రశ్నలు

  • నా CI/CD పైప్‌లైన్ నుండి ECR కి ఇమేజ్‌ను ఎలా పుష్ చేయాలి?
  • పబ్లిక్ మరియు ప్రైవేట్ ECR రిపోజిటరీ మధ్య తేడా ఏమిటి?
  • నేను AWS వెలుపల నుండి ECR ఇమేజ్‌ను లాగవచ్చా?
  • సెక్యూరిటీ వల్నరబిలిటీస్ కోసం నేను ECR ఇమేజ్‌లను ఎలా స్కాన్ చేయాలి?
  • నా ECR బిల్లు అకస్మాత్తుగా ఎందుకు అంత ఎక్కువగా ఉంది?
  • నేను ECR ని ఉపయోగించాలా, లేక నేను Docker Hub లేదా వేరే రిజిస్ట్రీని ఉపయోగించవచ్చా?
  • నా ECR రిపోజిటరీకి మరొక AWS అకౌంట్‌కి నేను యాక్సెస్ ఎలా మంజూరు చేయాలి?
  • నడుస్తున్న టాస్క్ ఉపయోగిస్తున్న ఇమేజ్‌ను నేను తొలగిస్తే ఏమి జరుగుతుంది?

ట్యాగ్‌లు

#aws #ecr #ecs #containers #fargate #devops #cloudnative #iam

Free field guide

Prompt-Injection Defense Checklist

The controls that actually reduce the blast radius when your app feeds untrusted text to an LLM. Enter your email — you'll get the PDF instantly, plus new posts on AI, security & Linux.