# VPC Endpoint

အားလုံးဘဲ မင်္ဂလာပါ။ ဒီနေ့ sharing လုပ်ပေးချင်တာကတော့ VPC Endpoint အကြောင်းဘဲဖြစ်ပါတယ်။

VPC Endpoint ဆိုတာ VPC နဲ့ AWS services တွေ ကို public Internet ကို အသုံးမပြုဘဲနဲ့ Privately connect လုပ်ပေးတာ ဖြစ်ပါတယ်။ Internet Gateway, NAT Gateway နဲ့ Public IP တွေ မလိုအပ်ဘဲနဲ့ VPC နဲ့ AWS services တွေကို privately connect လုပ်နိုင်မှာဖြစ်ပါတယ်။ AWS backbone network ကို အသုံးပြုတာ ဖြစ်လို့ security and performance ပိုကောင်းမှာ ဖြစ်ပါတယ်။

ဥပမာ အနေနဲ့ - Private subnets ထဲမှာ ရှိနေတဲ့ EC2 instance သည် AWS service တစ်ခုဖြစ်တဲ့ S3 or Secrets Manager တစ်ခုခု ကို Access လုပ်ဖို့ လိုအပ်တဲ့ အခါမှာ ဆိုရင် ပုံမှန်အားဖြင့် NAT gateway ကို ဖြတ် ပြီး Public Internet ပေါ်ကသွားရပါတယ်။ NAT ကို အ သုံး ပြုရတာ ဖြစ်လို့ cost တွေရှိမယ်။ Public Internet

ပေါ်က ဖြတ်သွားရတာဖြစ်လို့ security ပိုင်း အားနည်းမယ်။ ဒီနေရာမှာ VPC Endpoint ကို သာ အ သုံးပြုလိုက်မယ်ဆိုရင် VPC နဲ့ AWS services ‌တွေကို public internet ကို အ သုံးပြုစရာမလို ‌တော့ဘဲ privately connect လုပ်နိုင်မှာ ဖြစ်ပါတယ်။

VPC Endpoint 2 မျိုးရှိပါတယ်။

1. Interface Endpoint (PrivateLink)
    
2. Gateway Endpoint
    

### Interface Endpoint (PrivateLink)

AWS services တော်တော်များများ နဲ့ connect လုပ်ဖို့ ဆိုရင် Interface Endpoint ကို အသုံးပြုပါတယ်။

e.g

* Secrets Manager
    
* CloudWatch
    
* SSM
    
* KMS
    
* SNS, etc.
    

Interface Endpoint သည် PrivateLink ကို အသုံးပြုပါသည်။ PrivateLink ဆိုတာ AWS backbone network ပေါ် မှာ built လုပ်ထားတဲ့ service တစ်ခုဖြစ်ပါတယ်။ Interface Endpoint ကို အသုံးပြုတဲ့ အခါမှာ AWS သည် Elastic Network Interface (ENI) တစ်ခု auto create လုပ်လိုက်ပါတယ်။ ENI ကို private subnet or public subnet တစ်ခုခုထဲ မှာ create လုပ်ဖို့ ရွေးချယ်လို့ ရပါတယ်။ အများအားဖြင့် private subnets ထဲ မှာ create လုပ်ကြပါတယ်။ အဲ့ ENI မှတစ်ဆင့် privatelink ကို အသုံးပြုပြီး VPC နဲ့ AWS serivces တို့ connect လုပ်ကြပါတယ်။

### Gateway Endpoint

Supports only **two services**:

* **Amazon S3**
    
* **DynamoDB**
    
    Gateway Endpoint ကို create လုပ်လိုက်တဲ့ အခါမှာ ကိုယ် ‌ သတ်မှတ်ထားတဲ့ VPC ရဲ့ Route table ထဲမှာ route တစ်ကြောင်း auto create ပြီးသား ဖြစ်သွားပါတယ်။
    
    နမူနာအနေနဲ့ Private subnets ထဲမှာ ရှိတဲ့ EC2 instance က S3 ကို Gateway Endpoint ကနေတဆင့် ဘယ်လို connect လုပ်လဲဆိုတာကို ပြောပြပေးသွားပါ့မယ်။
    
    Private Subnet ထဲ မှာ ရှိတဲ့ EC2 instance မှာ အောက်ပါ command ‌run လိုက်ပါမယ်။
    
    ```jsx
    aws s3 ls s3://mybucket
    ```
    
    DNS resolves လုပ် ပြီး route table မှာ check လုပ်ပါတယ်။ route table ထဲမှာ အောက်ပါအတိုင်း ‌တွေ့ ရပါမယ်။
    
    ```jsx
    Destination: pl-xxxxxx (S3 Prefix List)
    Target: vpce-xxxxxx (Gateway Endpoint)
    ```
    
    S3 ကို သွားဖို့ အတွက် Gateway endpoint ကနေတဆင့် သွားရမယ်ဆိုတာကို သိသွားပါတယ်။ EC2 ကနေ S3 ကို connect လုပ်ဖို့အတွက် public internet ကို ဖြတ်သွားစရာမလိုတော့ဘဲနဲ့ Gateway endpoint ကနေ တဆင့် AWS Backbone network ‌‌ပေါ်ကနေ privately connect လုပ်လို့ရသွားပါပြီ။
    
    ဒီလောက်ဆိုရင်တော့ VPC endpoint အ ကြောင်း လေး သိလောက်ပြီ ထင်ပါတယ်။ လိုအပ်တာများ ရှိခဲ့ ရင်လည်း comment မှာ ဝင်ရောက်ဆွေးနွေးလို့ ရပါတယ်။
