AWS PrivateLink가 등장 EC2나 ELB에서 어떻게 사용하는지

8316 단어 elbEC2vpcaws-cliAWS

AWS Private link 정보



요 전날 AWS Private link라는 기능이 발표되었습니다.
htps : // 아 ws. 아마존. 이 m / jp / b ぉ gs / 아 ws / 네 w 아 ws p ri d-e lb-api s-in-rvpc /

지금까지의 방식(DynamoDB, S3)은 엔드포인트의 게이트웨이 경유로 각 서비스의 API에 접속하는 형태였지만
새로운 방식으로는 엔드포인트가 ENI에 연결되어 VPC의 개인 IP를 가진 형태가 됩니다.
이 방식의 장점으로는
· 보안 그룹에서 엔드포인트에 대한 액세스를 관리할 수 있습니다.
· 엔드포인트에 Direct Connect를 통해 액세스할 수 있음
라고 하는 것이 큰가라고 생각합니다.

Private link에 해당하는 서비스



이번 타이밍에 다음 서비스가 새롭게 VPC 중에서 사용할 수 있게 되었습니다.
그 외의 서비스도 Coming Soon에서 지원 예정이라는 것.
  • Kinesis
  • Service Catalog
  • Amazon EC2
  • EC2 Systems Manager
  • Elastic Load Balancing

  • EC2 및 ELB에서 사용하기



    Kinesis의 대응은 이해하기 쉽습니다.
    프라이빗 EC2에서 Kinesis로 데이터 푸시할 수 있다든가 최고인가.
    그렇지만 EC2나 ELB의 엔드 포인트란? 그리고 나는 생각해 버렸다.
    예를 들어, EC2라면 다른 VPC의 퍼블릭 EC2에 비공개로 연결? 라든지 잘 모르는 것을 생각 처음 버렸다.

    기본으로 돌아와 문서를 확인했습니다.
    새로운 방법 (인터페이스 VPC 엔드 포인트)에 대해서는 아직 일본어 문서가 없습니다.
    원본 문서는 다음 URL에서 볼 수 있습니다.
    htp // // cs. 아 ws. 아마존. 이 m / 그럼 _ jp / 아마 존 VPC / 아 st / 우세 r 구이로 / vp 세 - 엔 r 흠. HTML

    페이지 하단의 Accessing an AWS Service Through an Interface Endpoint에 ELB
    엔드포인트에 AWS CLI에서 액세스하는 예제가 있습니다.
    aws elbv2 describe-load-balancers --endpoint-url https://vpce-0f89a33420c193abc-bluzidnv.elasticloadbalancing.us-east-1.vpce.amazonaws.com/
    

    단순히 AWS CLI나 SDK에서 API를 조작할 때 사용하면 좋은 이미지일까요?
    말해 보면 처음의 Blog의 타이틀도 ~Amazon EC2 APIs, and ELB APIs in your VPC 였습니다.

    EC2에서 시도



    우선 단순히 프라이빗 EC2로 AWS CLI를 조작해 보겠습니다.
    당연하지만 연결 오류가 발생했습니다.
    $aws ec2 describe-availability-zones
    
    HTTPSConnectionPool(host='ec2.ap-northeast-1.amazonaws.com', port=443): Max retries exceeded with url: / (Caused by ConnectTimeoutError(<botocore.awsrequest.AWSHTTPSConnection object at 0x7f002bf53e10>, 'Connection to ec2.ap-northeast-1.amazonaws.com timed out. (connect timeout=60)'))
    

    PrivateLink 만들기



    콘솔의 VPC 메뉴에서 엔드포인트 → Create Endpoint로 이동합니다.
    S3 및 Dynamodb 엔드포인트만 선택할 수 있는 경우 콘솔의 언어 설정을 영어로 설정하면
    다음과 같은 화면이 표시되었습니다.



    서비스 이름: com.amazonaws.ap-northeast-1.ec2 선택

    VPC, subnet, SecurityGroup: 각각 임의의 것을 지정합니다.
    SecurityGroup에서는 443개의 인바운드를 허용해야 합니다.

    Enable for this endpoint:
    PrivateLink 엔드포인트는 VPC의 IP 주소를 사용하므로 VPC의 개인 DNS를 사용하여
    AWS 서비스의 DNS 이름을 덮어쓸 수 있습니다.
    체크를 넣으면 「ec2.ap-northeast-1.amazonaws.com」의 VPC내의 룩업이,
    생성할 엔드포인트의 IP 주소로 확인됩니다.

    위를 지정한 후 화면 하단의 Create endpoint를 누릅니다.

    동작 확인



    이전처럼 개인 EC2에서 AWS CLI를 실행합니다.
    $ aws ec2 describe-availability-zones
    {
        "AvailabilityZones": [
            {
                "State": "available",
                "ZoneName": "ap-northeast-1a",
                "Messages": []
                "RegionName": "ap-northeast-1"
            },
            {
                "State": "available",
                "ZoneName": "ap-northeast-1c",
                "Messages": [],
                "RegionName": "ap-northeast-1"
            }
        ]
    }
    
    

    Enable for this endpoint에 체크를 넣었기 때문에 똑같은 명령으로 실행할 수 있었습니다.
    비공개 DNS 이름을 사용하지 않으려면 (선택하지 않음) --endpoint-url
    엔드포인트별로 할당된 DNS 이름을 지정하면 연결할 수 있습니다.
    $ aws ec2 describe-availability-zones --endpoint-url https://vpce-xxxxxxxxxx-xxxxxx.ec2.ap-northeast-1.vpce.amazonaws.com
    {
        "AvailabilityZones": [
            {
                "State": "available",
                "ZoneName": "ap-northeast-1a",
                "Messages": [],
                "RegionName": "ap-northeast-1"
            },
            {
                "State": "available",
                "ZoneName": "ap-northeast-1c",
                "Messages": [],
                "RegionName": "ap-northeast-1"
            }
        ]
    }
    

    기본적인 내용일지도 모릅니다만, 참고가 되면 다행입니다.
    이상입니다.

    좋은 웹페이지 즐겨찾기