VPC 엔드포인트 "AWS 서비스"와 "이름으로 서비스 검색"의 차이점

개요


AWS VPC 엔드포인트의 인터페이스형(PrivateLink)은 3가지다.
  • AWS 서비스(AWS 주요 서비스)
  • 이름 검색 서비스(전유 서비스)
  • 이용 AWS 마켓플레이스 서비스(마켓스퀘어 서비스)
  • 그중에서도 좌학에 불과하다면 AWS 프리미엄 서비스의 EC2 엔드포인트와 EC2에서 독자 제작한 API의 엔드포인트가 어떻게 다른지 모르기 때문에 한 시간 동안 고민하고 차이점과 구축 결과를 적는다.또한, PrivateLink 자체에 대한 설명은 아래의 보도가 매우 참고 가치가 있으니 이쪽을 보십시오.
    AWS PrivateLink 사용법 및 주의점~ VPC 귀걸이와 구분해서 사용~

    결론

  • AWS 주요 펄스 서비스는 VPC 포트를 통해 AWS 서비스의 API를 이용할 수 있다
    EC2
  • 라면awscli에서 EC2의 API
  • 를 이용할 수 있습니다
  • 독립 실행형 서비스는 VPC 엔드포인트를 통해 다른 VPC에서 자체 제작된 API를 사용할 수 있음
  • EC2에 구축된 REST API 등 활용 가능
  • AWS 프린터 서비스


    예를 들어, EC2에서 API로 작성됩니다.아래의 문장은 매우 참고 가치가 있다.
    등장한 EC2 및 ELB에서 AWS PrivateLink 사용 방법

    프로비저닝


    Private 서브넷에 구성된 EC2에서 시작하여 aws cli를 실행하여 EC2의 API를 실행합니다.(EC2 API를 쓰는 위치가 여기에 있는지 모르겠어요...)

    실행 결과


    Private DNS를 Time 으로 설정


    endpoint를 지정하지 않은 상태에서PrivateDNS를 사용합니다
     aws ec2 describe-availability-zones
    {
        "AvailabilityZones": [
            {
                "OptInStatus": "opt-in-not-required",
                "Messages": [],
                "ZoneId": "use2-az1",
                "GroupName": "us-east-2",
                "State": "available",
                "NetworkBorderGroup": "us-east-2",
                "ZoneName": "us-east-2a",
                "RegionName": "us-east-2"
            },
    # 以下、省略
    
    PrivateDNS를 endpoint로 지정(고유의 endpoint라도 OK)
    $ aws ec2 describe-availability-zones --endpoint-url https://ec2.us-east-2.amazonaws.com
    {
        "AvailabilityZones": [
            {
                "OptInStatus": "opt-in-not-required",
                "Messages": [],
    # 以下、省略
    

    Private DNS를 가짜로 설정할 때


    endpoint가 지정되지 않은 경우 통과하지 않습니다. (PrivateDNS가 가짜이기 때문입니다.)
    [ec2-user@ip-10-0-20-44 ~]$ aws ec2 describe-availability-zones
    # レスポンス無し
    
    지정한 고유 endpoint가 있고 응답이 있습니다
    aws ec2 describe-availability-zones --endpoint-url https://XXXXXXXXX.ec2.us-east-2.vpce.amazonaws.com
    {
        "AvailabilityZones": [
            {
                "OptInStatus": "opt-in-not-required",
                "Messages": [],
    # 以下、省略
    

    독립 서비스


    절차의 개요는 다음과 같다.
  • 독립형 API를 구축하는 측면의 VPC에서 NLB를 목표로 하는 엔드포인트 서비스를 만듭니다.
  • 소스에 액세스하는 VPC에 인터페이스형 VPC 엔드포인트를 생성합니다.창설 시 1개의 단점 서비스를 지정합니다.
  • 자세한 절차는 다음과 같다.
    [새로운 기능] PrivateLink에서 독립된 단점을 만들고 응용 프로그램 #reinvent 공개

    구성도


    Private의 서브넷에서 다른 VPC의 Private 서브넷의 EC2에 액세스합니다.

    EC2에 구축된 REST API


    파이썬의 Flash를 사용하여 리소스에서 5000번 GET를 사용한 후 메시지 API만 반환합니다.API에 대한 NLB를 생성합니다.
    hello.py
    import json
    
    def get_hello():
        message = "Hello, good evening"
        return_json = json.dumps({"message": message})
    
        return return_json
    
    server.py
    from flask import Flask
    from hello import get_hello
    
    app = Flask(__name__)
    
    @app.route('/hello', methods=['GET'])
    def local_endpoint():
        return get_hello()
    
    if __name__ == '__main__':
        app.run(host='0.0.0.0', port=5000)
    
    public 서브넷에서 준비한 점프 서버의 팟캐스트 결과
    [ec2-user@ip-10-0-10-166 ~]$ curl http://10.0.30.21:5000/hello
    {"message": "Hello, good evening"}
    
    NLB에서 액세스할 수 있는지 여부는 상태 점검을 참조하십시오.unhealthy의 경우 EC2의 보안 그룹에 대한 설정이 좋지 않을 수 있습니다.이번 API로 말하자면 같은 서브넷/hello으로부터 5천호의 허가를 받아야 한다.(다음 그림 3행)

    실행 결과


    생성된 끝점에 표시된 DNS 이름을 요청합니다.
    다른 VPC를 위한 인스턴스의 요청 결과
    [ec2-user@ip-10-0-20-44 ~]$ curl http://XXXXXXXXX.XXXXXXXXXXXX.us-east-2.vpce.amazonaws.com/hello
    {"message": "Hello, good evening"}
    
    VPC 엔드포인트 보안 그룹은 내장형으로서 액세스 소스인 EC2로부터의 통신을 허용해야 합니다.default에서 VPC 단점을 제작할 때 설정되지 않기 때문에 명확하게 제작해야 한다.포트가 NLB 청취자와 일치합니다.

    개인 DNS 이름을 사용하는 경우


    아래 기사에서 소개한 바와 같이 2020년 1월 업데이트에서 설정된 개인 DNS명을 청구자의 종점으로 삼을 수 있다.VPC 엔드포인트에서 제작한 DNS 이름에 랜덤 ID가 들어가 있어 식별이 어려워 접근이 용이하다.
    [새로운 기능] ProvateLink의 공개 서비스에 개인 DNS 이름을 지정할 수 있습니다.
    예를 들어 도메인 이름10.0.30.0/24의 경우 엔드포인트 서비스를 만들 때 Private DNS name을 설정하면 다음과 같이 액세스할 수 있습니다.또한 Route 53의 TXT 레코드에 로그인해야 합니다.
  • 이름: example.com.example.com
  • 값: [Domain verification name]
  • PrivateDNS 이름의 액세스 결과
    [ec2-user@ip-10-0-20-44 ~]$ curl http://example.com/hello
    {"message": "Hello, good evening"}
    

    끝맺다


    만드는 과정에서 깨달았어요. 완전 다른 건데...
    또 독자적인 서비스를 만들면 VPC 단점과 단점 서비스의 차이도 이해할 수 있다.역시 손놀림이 중요해.

    좋은 웹페이지 즐겨찾기