Private EC2 Instance मधून VPC Gateway Endpoint ने S3 कसं वापरायचं (NAT शिवाय)
Amazon S3 म्हणजे काय? मध्ये आपण console आणि CloudShell मधून S3 वापरलं. खरे app servers public IP नसलेल्या private subnets मध्ये असतात. हा chapter दाखवतो की S3 तुमच्या VPC च्या तुलनेत कुठे राहतं, private server NAT gateway मधून तिथे कसा पोचतो आणि त्याचा खर्च का, आणि चांगला मार्ग: free S3 gateway endpoint. Paid interface endpoint शी तुलना, endpoint policy, आणि NAT शिवाय पूर्ण lab.
या chapter मध्ये तुम्ही काय शिकाल
- S3 तुमच्या VPC बाहेर का आणि त्याचा अर्थ
- Private EC2 ते S3 NAT मधून, खर्चाच्या गणितासह
- Gateway endpoint (free) vs interface endpoint (paid)
- कोणते buckets पोचतील ते मर्यादित करणाऱ्या endpoint policies
- पूर्ण lab: private EC2 NAT शिवाय S3 पर्यंत
1. Courier ची गोष्ट
तुमचं office एका gated society मध्ये आहे जिथे main-road gate नाही (private subnet). Bank (S3) बाहेर, शहरात आहे.
मार्ग 1: प्रत्येक कागद society gate वरच्या paid courier ने पाठवा (NAT gateway). चालतं, पण प्रत्येक trip आणि प्रत्येक किलोचे पैसे.
मार्ग 2: Bank तुमच्या society मध्ये थेट free private lane उघडते (gateway endpoint). कागद public रस्त्यावर जात नाहीत, आणि किलोचे पैसे नाहीत.
2. तुमच्या VPC च्या तुलनेत S3 कुठे राहतं
हे का लागतं?
S3 तुमच्या VPC मध्ये आहे असं वाटलं तर private server तिथे का पोचत नाही ते कळणार नाही.
हे काय आहे?
S3 ही regional public service आहे. तिचा endpoint, उदा. s3.ap-south-1.amazonaws.com, AWS च्या public IP addresses ला resolve होतो. तुमचा VPC तुमचं private network. Public service पर्यंत पोचायला server ला बाहेरचा रस्ता लागतो: public IP सह internet gateway, NAT gateway, किंवा VPC endpoint.
| Server | S3 कडे रस्ता | खर्च |
|---|---|---|
| Public subnet, public IP | Internet gateway | Free रस्ता; same Region data free |
| Private subnet, NAT | NAT gateway → internet gateway | NAT hourly + दर GB processing |
| Private subnet, gateway endpoint | S3 prefix list कडे route table entry | Free |
| Private subnet, interface endpoint | Private IP असलेला ENI (PrivateLink) | दर AZ hourly + दर GB |
3. Private EC2 ते S3 NAT gateway मधून
हे का लागतं?
बहुतेक VPCs मध्ये updates साठी आधीच NAT gateway असतो, म्हणून S3 traffic बहुतेक वेळा तिथूनच जातं. त्याचा खर्च माहीत हवा.
हे काय आहे?
NAT gateway private servers ना internet कडे बाहेर जाऊ देतो. त्यातून जाणाऱ्या प्रत्येक GB चे पैसे. us-east-1 मध्ये साधारण $0.045 दर तास आणि $0.045 दर processed GB.
खर्चाचं गणित: रात्रीचे backups महिन्याला 2 TB S3 ला upload करतात. NAT मधून: 2,048 GB × $0.045 = साधारण $92 दर महिना, NAT hourly fee वेगळी. Gateway endpoint मधून: $0.
4. VPC endpoints: gateway vs interface
हे का लागतं?
Endpoint private servers ना NAT किंवा public IP शिवाय AWS services कडे private रस्ता देतो. S3 साठी दोन प्रकार आहेत, आणि योग्य निवड खर्चासाठी महत्त्वाची.
हे काय आहे?
| मुद्दा | Gateway endpoint | Interface endpoint |
|---|---|---|
| Services | फक्त S3 आणि DynamoDB | S3 आणि 100+ इतर services |
| कसं चालतं | निवडलेल्या route tables मध्ये S3 prefix list (pl-…) कडे route | प्रत्येक निवडलेल्या subnet मध्ये private IP असलेला ENI (PrivateLink) |
| किंमत | Free | दर AZ ~$0.01/hour + ~$0.01/GB |
| On-premises किंवा peered VPC मधून | नाही | हो (VPN, Direct Connect, peering) |
| फक्त same Region | हो | हो (cross-Region ला extra setup) |
| Security group | वापरत नाही | हो, ENI वर |
Ravindra Bagale's Tip
VPC मधल्या EC2 साठी free gateway endpoint ने सुरुवात करा. Traffic on-premises किंवा तुमच्या route tables वापरू न शकणाऱ्या network मधून येत असेल तेव्हाच interface endpoint.
5. Endpoint policies
हे का लागतं?
Gateway endpoint default ने Region मधल्या प्रत्येक S3 bucket ला access देतो, दुसऱ्यांच्या buckets सुद्धा. चोरलेला server तुमचा data attacker च्या bucket मध्ये copy करू शकतो.
हे काय आहे?
Endpoint policy म्हणजे endpoint वरची JSON resource policy. ती gate आहे: endpoint मधून जाणारी request endpoint policy आणि IAM व bucket policy दोघांनी allow केली पाहिजे.
{
"Version": "2012-10-17",
"Statement": [{
"Sid": "OnlyOurBuckets",
"Effect": "Allow",
"Principal": "*",
"Action": ["s3:GetObject","s3:PutObject","s3:ListBucket"],
"Resource": [
"arn:aws:s3:::reels-app-media",
"arn:aws:s3:::reels-app-media/*"
]
}]
}
प्रत्येक भाग का: Principal "*" कारण endpoint ला users माहीत नसतात; IAM त्यांना तपासतो. Resource मध्ये फक्त आपला bucket, म्हणून इतर कोणताही bucket deny. Servers endpoint मधून dnf चालवत असतील तर Amazon Linux repo bucket arn:aws:s3:::al2023-repos-ap-south-1-de612dc2/* जोडा.
दुसरी बाजू: bucket policy aws:SourceVpce condition ने requests तुमच्या endpoint मधूनच यायला हव्यात असं सांगू शकते. Security chapter मध्ये ते उदाहरण आहे.
6. अनेक stacks मध्ये private server मधून S3
हे का लागतं?
Gateway endpoint सोबत apps मध्ये code बदल लागत नाही. ते नेहमीचा regional S3 endpoint call करतात; बाकी route table करतो. फक्त Region बरोबर हवा.
हे काय आहे?
| Stack | Traffic ap-south-1 मध्ये राहावं म्हणून Region set करा |
|---|---|
| AWS CLI | aws configure set region ap-south-1 |
| Node.js | new S3Client({ region: "ap-south-1" }) |
| Python boto3 | boto3.client("s3", region_name="ap-south-1") |
| Java | S3Client.builder().region(Region.AP_SOUTH_1).build() |
| PHP | new S3Client(['region'=>'ap-south-1','version'=>'latest']) |
| .NET | new AmazonS3Client(RegionEndpoint.APSouth1) |
| Go | config.LoadDefaultConfig(ctx, config.WithRegion("ap-south-1")) |
| nginx / Apache | Cron job: aws s3 sync s3://site-assets /var/www/html/assets |
| MySQL | mysqldump shop | gzip | aws s3 cp - s3://db-backups/shop-$(date +%F).sql.gz |
Ravindra Bagale's Tip
Region चुकीचा असेल (उदा. us-east-1), request internet रस्ता शोधते आणि private server वर अडकते. Gateway endpoint फक्त VPC च्याच Region मधल्या buckets साठी चालतो.
7. Lab: private EC2 NAT शिवाय gateway endpoint मधून S3 पर्यंत
हे का लागतं?
तुम्ही तीन गोष्टी सिद्ध कराल: रस्ता नसेल तर private server S3 पर्यंत पोचत नाही; gateway endpoint add केल्यावर पोचतो; आणि endpoint policy इतर buckets block करू शकते.
कसं करायचं (step by step)
Part A: network
- Region ap-south-1. VPC console › Create VPC › VPC and more. का: wizard subnets आणि route tables बनवतो.
- Name tag auto-generation:
s3lab. IPv4 CIDR:10.20.0.0/16. - AZs: 1. Public subnets: 1. Private subnets: 1. का: कल्पना दाखवणारा सगळ्यात छोटा setup.
- NAT gateways: None. VPC endpoints: None. का: आधी रस्ता नको, मग endpoint हाताने add करायचा.
- Create VPC click. अपेक्षित: VPC, 2 subnets, 2 route tables, 1 internet gateway.
Part B: bucket आणि IAM role
- ap-south-1 मध्ये
yourname-s3lab-privatebucket बनवा (defaults).from S3text असलेलीhello.txtupload करा. - IAM › Roles › Create role › Trusted entity AWS service › Use case EC2.
- Permissions: AmazonS3ReadOnlyAccess. Name:
s3lab-ec2-role. का: server ला temporary credentials, disk वर keys नाहीत.
Part C: दोन servers
s3lab-bastionlaunch: Amazon Linux 2023, t3.micro, VPC s3lab, public subnet, auto-assign public IP Enable, SG SSH 22 from My IP.s3lab-privatelaunch: तीच AMI, private subnet, public IP Disable, SG SSH 22 bastion SG कडून, IAM instance profiles3lab-ec2-role.- Laptop वरून:
ssh-add key.pemमगssh -J ec2-user@BASTION_IP ec2-user@10.20.x.x. का: key laptop वरच राहते.
Part D: रस्ता नसताना test
aws configure set region ap-south-1
aws s3 ls s3://yourname-s3lab-private --cli-connect-timeout 5
# Connect timeout on endpoint URL: "https://yourname-s3lab-private.s3.ap-south-1.amazonaws.com/..."
का fail होतं: private route table मध्ये फक्त 10.20.0.0/16 → local. S3 कडे route नाही.
Part E: gateway endpoint add करा
- VPC › Endpoints › Create endpoint. Name
s3lab-s3-gw. Type AWS services. s3search करा, Type Gateway असलेलंcom.amazonaws.ap-south-1.s3निवडा. का: Interface वाला पैसे घेतो.- VPC
s3lab-vpc. Route tables: फक्त private route table tick करा. का: फक्त त्या subnet ला private रस्ता हवा. - Policy: आत्तासाठी Full access. Create endpoint. अपेक्षित: status Available.
- Private route table › Routes उघडा. अपेक्षित: नवीन route
pl-78a54011 (com.amazonaws.ap-south-1.s3) → vpce-…. Prefix list ID तुमच्या account मध्ये वेगळा असू शकतो; Managed prefix lists मध्ये तपासा.
aws s3 ls s3://yourname-s3lab-private
# 2026-10-22 11:20:44 8 hello.txt
aws s3 cp s3://yourname-s3lab-private/hello.txt -
# from S3
curl -s --max-time 5 https://www.google.com || echo "no internet (good)"
# no internet (good)
तपासणी: S3 चालतं, सामान्य internet नाही. Server अजूनही private आहे.
Part F: endpoint policy ने मर्यादा
- Endpoints ›
s3lab-s3-gw› Policy › Edit policy › Custom. Endpoint policy section मधली policy तुमच्या bucket नावासह paste करा. Save. - Private server वर तुमचा bucket list करा: चालतो. तुमचा दुसरा कोणताही bucket list करा:
An error occurred (AccessDenied). का: endpoint आता फक्त एकच bucket allow करतो.
Cleanup
- दोन्ही instances terminate करा.
- Endpoint
s3lab-s3-gwdelete करा. - Bucket रिकामा करून delete:
aws s3 rb s3://yourname-s3lab-private --force(CloudShell मधून). - VPC
s3lab-vpcdelete करा (subnets, route tables आणि internet gateway पण जातात). Roles3lab-ec2-roledelete करा.
8. Interview questions
प्र. S3 तुमच्या VPC मध्ये असतं का?
नाही. S3 ही regional public service. VPC तिथे internet gateway, NAT gateway किंवा VPC endpoint मधून पोचतो.
प्र. S3 साठी gateway vs interface endpoint?
Gateway: free, route table entry, फक्त VPC आतून. Interface: private IP असलेला ENI, दर तास आणि GB पैसे, on-premises आणि peered networks मधून पोचतो.
प्र. S3 traffic NAT gateway वरून का हलवायचं?
NAT दर processed GB charge करतो. Gateway endpoint तेच traffic free नेतो.
प्र. Endpoint policy काय करते?
IAM आणि bucket policies सोबत, endpoint मधून कोणत्या actions आणि buckets वापरता येतील ते मर्यादित करते.
प्र. Gateway endpoint असूनही private server S3 वर time out होतो. का?
बहुतेक चुकीचा Region (bucket दुसऱ्या Region मध्ये), किंवा endpoint त्या subnet च्या route table शी जोडलेला नाही.
घरी करून बघा
- Lab परत करा, मग दुसरी private route table add करा आणि endpoint मध्ये tick करेपर्यंत त्या subnet ला S3 मिळत नाही ते बघा.
- 500 GB logs upload करण्याचा monthly NAT खर्च काढा आणि gateway endpoint शी तुलना करा.
- फक्त एका prefix वर s3:GetObject allow करणारी endpoint policy लिहा.
थोडक्यात सांगायचं तर
- S3 VPC बाहेर; private servers ना रस्ता लागतो.
- NAT चालतो पण दर GB पैसे.
- Gateway endpoint: same Region मध्ये S3 कडे free route.
- Interface endpoint: paid ENI, on-premises आणि peered networks साठी.
- Endpoint policy कोणते buckets पोचतील ते मर्यादित करते.
सराव Tasks
Latur Coaching Classes हा लातूर मधला कोचिंग व्यवसाय आहे. Pooja Jadhav त्यांचं IT व cloud काम पाहतात. त्यांचे पैसे INR मध्ये मोजले जातात आणि AWS resources ap-south-1 Region मध्ये चालतात. खालच्या tasks मध्ये तुम्ही या lesson मध्ये शिकलेलं वापरून त्यांची खरी कामं करता. सगळी नावं, account IDs, IP addresses व numbers सरावासाठी काल्पनिक आहेत.
0 / 12
सोपं /16 मध्ये किती addresses?
का: VPC size ठरवायला ही संख्या लागते.
काय करायचं: Latur Coaching Classes चा VPC 10.56.0.0/16. एकूण किती IP addresses?
- Task मधले numbers लिहून घ्या.
- कागदावर step by step काढा.
- Box मध्ये फक्त final उत्तर लिहा.
- Check answer दाबा.
सोपं VPC बनवा
का: VPC म्हणजे AWS मधलं तुमचं स्वतःचं private network.
काय करायचं: 10.2.0.0/16 CIDR block असलेला VPC बनवा.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
सोपं Internet gateway बनवा
का: Internet gateway शिवाय VPC मधलं काहीही internet ला पोचत नाही.
काय करायचं: नवा internet gateway बनवा.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
मध्यम एका AZ मध्ये subnet बनवा
का: Subnets VPC range वाटतात व प्रत्येक एकाच AZ मध्ये असतो.
काय करायचं: vpc-0ccc135aa5deadbee मध्ये ap-south-1a मध्ये 10.2.1.0/24 subnet बनवा.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
मध्यम Internet route जोडा
का: Route table 0.0.0.0/0 internet gateway ला पाठवत असेल तरच subnet "public".
काय करायचं: Route table rtb-023aaa135bb5bb22 मध्ये सगळं internet traffic (0.0.0.0/0) igw-03aaa135bb5aa11 कडे पाठवा.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
मध्यम VPC router address शोधा
का: AWS router साठी base+1 राखतो.
काय करायचं: 10.56.4.0/24 मध्ये VPC router साठी AWS कोणता address राखतो?
- Task मधले numbers लिहून घ्या.
- कागदावर step by step काढा.
- Box मध्ये फक्त final उत्तर लिहा.
- Check answer दाबा.
मध्यम AWS /24 subnet मधले usable IPs
का: AWS प्रत्येक subnet मध्ये 5 addresses राखून ठेवतो.
काय करायचं: AWS वर 10.56.1.0/24 subnet मध्ये Latur Coaching Classes servers साठी किती addresses वापरू शकतो?
- Task मधले numbers लिहून घ्या.
- कागदावर step by step काढा.
- Box मध्ये फक्त final उत्तर लिहा.
- Check answer दाबा.
मध्यम Subnet route table शी जोडा
का: Associate करेपर्यंत subnet main route table वापरतो.
काय करायचं: Subnet subnet-023aaa135bb5bb1 ला route table rtb-023aaa135bb5bb22 शी associate करा.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
मध्यम Internet gateway attach करा
का: VPC ला attach केल्याशिवाय gateway काही करत नाही.
काय करायचं: igw-03aaa135bb5aa11 ला vpc-0ccc135aa5deadbee शी attach करा.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
मध्यम Server साठी पहिला usable IP
का: पहिले 4 addresses AWS राखतो.
काय करायचं: AWS वर 10.56.20.0/24 मध्ये server ला मिळणारा पहिला IP?
- Task मधले numbers लिहून घ्या.
- कागदावर step by step काढा.
- Box मध्ये फक्त final उत्तर लिहा.
- Check answer दाबा.
अवघड सर्वात लहान prefix निवडा
का: योग्य size मुळे address space वाचतो.
काय करायचं: AWS वर subnet मध्ये 100 servers हवेत. बसणारा सर्वात मोठा prefix number? उदा. /25.
- Task मधले numbers लिहून घ्या.
- कागदावर step by step काढा.
- Box मध्ये फक्त final उत्तर लिहा.
- Check answer दाबा.
अवघड /24 चे दोन भाग
का: Public व private subnets एक block वाटून घेतात.
काय करायचं: 10.56.8.0/24 चे दोन समान subnets करा. दोन्ही CIDRs comma ने लिहा.
- Task मधले numbers लिहून घ्या.
- कागदावर step by step काढा.
- Box मध्ये फक्त final उत्तर लिहा.
- Check answer दाबा.
उजळणी, तुलना आणि मुलाखत cards
हा lesson काही मिनिटांत revise करा. Cards phone वर save करा किंवा PNG download करा. प्रत्येक card वरचा QR हा lesson उघडतो.





अजून cards: Ravi Sir's Cards.