AWS CLI를 통해 AWS Cloud Map으로 서비스 검색을 구성하려면 어떻게 해야 하나요?

4분 분량
0

AWS Cloud Map을 AWS Command Line Interface(AWS CLI)와 함께 사용하여 호스팅 영역을 생성하려고 합니다.

해결 방법

참고: AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생하는 경우, AWS CLI 오류 문제 해결을 참조하세요. 또한, 최신 AWS CLI 버전을 사용하고 있는지 확인하세요.

DNS 네임스페이스 생성

  1. AWS CLI를 사용하여 네임스페이스를 생성하고 example.com을 사용하려는 도메인 이름으로 대체합니다.

  2. 퍼블릭 네임스페이스 또는 프라이빗 네임스페이스를 생성할 것을 선택해야 합니다. 퍼블릭 네임스페이스는 도메인 이름이 등록되면 인터넷에서 볼 수 있습니다. 프라이빗 네임스페이스는 Virtual Private Cloud(VPC) 내에서만 볼 수 있습니다. 프라이빗 네임스페이스를 생성할 때는 VPC ID를 지정해야 합니다.

    퍼블릭 네임스페이스를 생성하려면 다음 명령을 실행하세요.

    $ aws servicediscovery create-public-dns-namespace --name example.com

    프라이빗 네임스페이스를 생성하려면 다음 명령을 실행하세요.

    $ aws servicediscovery create-private-dns-namespace --name example.com --vpc vpc-0c92f38bf7db24a05

    참고: 이름은 DNS 쿼리에서 공개적으로 제공되므로 이름에 민감한 정보를 포함하지 마세요.


  3. 다음 예와 같이 출력의 OperationId 값을 기록해 두세요.

    {
        "OperationId": "igbkufld72o4vbsbwejfi6eyinfprhc3-jkwmz00b"
    }
  4. 해당 작업에 대한 자세한 내용을 보려면 get-operation 명령을 실행하세요. OPERATION_VALUE를 이전 단계의 OperationId 값으로 대체하세요.

    aws servicediscovery get-operation --operation-id OPERATION_VALUE
  5. 출력에서 Status 값이 SUCCESS인지 검증하세요. 또한 NAMESPACE 값을 기록해 두세요. 이는 서비스를 생성하고 인스턴스를 등록하는 네임스페이스 ID입니다.

    {
      "Operation": {
        "Status": "SUCCESS",
        "CreateDate": 1534428266.699,
        "Id": "igbkufld72o4vbsbwejfi6eyinfprhc3-jkwmz00b",
        "UpdateDate": 1534428267.113,
        "Type": "CREATE_NAMESPACE",
        "Targets": {
          "NAMESPACE": "ns-f2wjnv2p7pqtz5f2"
        }
      }
    }

    참고: 네임스페이스를 생성하면 Amazon Route 53이 도메인에 대한 호스팅 영역을 자동으로 생성합니다. 호스팅 영역의 도메인 이름 값은 네임스페이스의 도메인 이름과 동일합니다. 설명 값은 Route 53 자동 이름 지정으로 생성입니다.

호스팅 영역을 검증하려면 다음 단계를 따르세요.

  1. Route 53 콘솔을 엽니다.
  2. 탐색 창에서 호스팅 영역을 선택합니다.
  3. 콘텐츠 창의 호스팅 영역 목록에서 호스팅 영역을 찾습니다.

서비스 생성

서비스를 생성하려면 다음 단계를 따르세요.

  1. 이 예제에 나와 있는 대로 servicediscovery create-service 명령을 간편 구문으로 실행합니다. WORKERS를 원하는 서비스 이름으로 대체합니다. Route 53은 레코드를 생성할 때 이 서비스 이름을 사용합니다.

    $aws servicediscovery create-service --name WORKERS--dns-config 'NamespaceId="ns-f2wjnv2p7pqtz5f2",RoutingPolicy="WEIGHTED",DnsRecords=[{Type="A",TTL="300"}]'

    참고: 퍼블릭 DNS 쿼리로 해당 네임스페이스를 검색할 수 있는 경우, 민감한 정보를 포함하지 마세요. DNS 쿼리가 액세스할 수 있는 서비스의 경우, 이름이 대소문자만 다른 서비스(예: EXAMPLEexample)를 생성할 수 없습니다. 그러나 API 호출로만 액세스할 수 있는 네임스페이스를 사용하는 경우, 대소문자만 다른 이름으로 서비스를 생성할 수 있습니다.

    기본 라우팅 정책은 MULTIVALUE입니다. 지원되는 라우팅 정책은 MULTIVALUEWEIGHTED입니다.

  2. 출력을 기록해 두세요. Id 값은 방금 생성한 서비스의 ID와 같습니다.
    참고: CreatorRequestId는 요청의 ID입니다. API 호출에 실패할 경우, CreatorRequestId를 사용하여 작업을 반복하세요.

    {
      "Service": {
        "DnsConfig": {
          "NamespaceId": "ns-f2wjnv2p7pqtz5f2",
          "DnsRecords": [
            {
              "Type": "A",
              "TTL": 300
            }
          ]
        },
        "CreatorRequestId": "93e0a17a-230b-4c58-b986-f03f3217869f",
        "Id": "srv-iy3d7hhlf5cjciph",
        "Arn": "arn:aws:servicediscovery:eu-west-1:356906700443:service/srv-iy3d7hhlf5cjciph",
        "Name": "workers"
      }
    }

인스턴스 등록

인스턴스를 등록하려면 다음 단계를 따르세요.

  1. servicediscovery register-instance 명령을 실행합니다. service-id, instance-idattributes에 대한 자리 표시자를 해당하는 값으로 대체합니다. 이러한 파라미터가 없으면 API 호출에 실패하게 됩니다. 동일한 service-idinstance-id 옵션을 통해 인스턴스를 등록하는 요청은 한 번에 하나만 실행할 수 있음에 유의합니다.

    $ aws servicediscovery register-instance --service-id srv-iy3d7hhlf5cjciph --instance-id i-039444aa1e2932ca3 --attributes=AWS_INSTANCE_IPV4=172.1.1.1

    경고: 동일한 서비스 ID 및 인스턴스 ID를 통해 다른 요청을 제출하려면 먼저 하나의 register-instance 요청이 완료될 때까지 기다려야 합니다.

  2. 출력을 검토합니다. 여기에는 다음 예와 같은 OperationId가 포함됩니다.

    {
        "OperationId": "z7dfqgeadkvwwid2wa2n5ckicrxs255x-jkwr1x9f"
    }
  3. Route 53 콘솔을 엽니다.

  4. 탐색 창에서 호스팅 영역을 선택합니다.

  5. 이전에 생성한 호스팅 영역을 선택합니다.

  6. 레코드 세트로 이동을 선택한 다음, 해당 호스팅 영역에 대해 레코드 세트가 성공적으로 생성되었는지 검증합니다.

    참고: 인스턴스를 등록하면 Route 53이 서비스 이름 및 도메인 이름이 포함된 레코드를 자동으로 생성합니다.

    Amazon Elastic Container Service(Amazon ECS) 및 Route 53 서비스 검색의 경우, Route 53 네임스페이스와 서비스 이름을 사용하여 서비스를 구성할 수 있습니다. Route 53은 Amazon ECS 컨테이너 설정에 따라 호스팅 영역에서 레코드를 자동으로 생성, 삭제 또는 업데이트합니다.