애플리케이션 구성 요소에 대한 AWS Cloud Map 서비스 생성 - AWS Cloud Map

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

애플리케이션 구성 요소에 대한 AWS Cloud Map 서비스 생성

네임스페이스를 생성한 후 특정 목적에 맞는 애플리케이션의 다양한 구성 요소를 나타내는 서비스를 생성할 수 있습니다. 예를 들어 애플리케이션에서 결제를 처리하는 리소스에 대한 서비스를 생성할 수 있습니다.

참고

DNS 쿼리에서 액세스할 수 있는 서비스를 여러 개 생성할 수 없으며, 이름은 대/소문자(예: EXAMPLE 및 예)만 다릅니다. 이렇게 하면 이러한 서비스의 DNS 이름이 동일합니다. API 호출로만 액세스할 수 있는 네임스페이스를 사용하는 경우 이름만 대/소문자를 구분하여 서비스를 생성할 수 있습니다.

다음 단계에 따라 AWS Management Console AWS CLI및 SDK for Python을 사용하여 서비스를 생성합니다.

AWS Management Console
  1. 에 로그인 AWS Management Console 하고에서 AWS Cloud Map 콘솔을 엽니다https://console.aws.amazon.com/cloudmap/.

  2. 탐색 창에서 네임스페이스를 선택합니다.

  3. 네임스페이스 페이지에서 서비스를 추가하려는 네임스페이스를 선택합니다.

  4. 네임스페이스: namespace-name 페이지에서 서비스 생성을 선택합니다.

  5. 서비스 이름에이 서비스를 사용할 때 등록하는 인스턴스를 설명하는 이름을 입력합니다. 값은 API 호출 또는 DNS 쿼리에서 AWS Cloud Map 서비스 인스턴스를 검색하는 데 사용됩니다.

    참고

    인스턴스 AWS Cloud Map 를 등록할 때 SRV 레코드를 생성하고 특정 SRV 형식(예: HAProxy)이 필요한 시스템을 사용하는 경우 서비스 이름에 다음을 지정합니다.

    • 이름은 밑줄(_)로 시작합니다(예: _exampleservice).

    • ._tcp._protocol와 같이 로 이름을 종료합니다.

    인스턴스를 등록할 때는 SRV 레코드를 AWS Cloud Map 생성하고 서비스 이름과 네임스페이스 이름을 연결하여 이름을 할당합니다. 예를 들면 다음과 같습니다.

    _exampleservice._tcp.example.com

  6. (선택 사항) 서비스 설명에 서비스에 대한 설명을 입력합니다. 여기에 입력하는 설명은 서비스 페이지와 각 서비스의 세부 정보 페이지에 표시됩니다.

  7. 네임스페이스가 DNS 쿼리를 지원하는 경우 서비스 검색 구성에서 서비스 수준에서 검색 가능성을 구성할 수 있습니다. API 호출과 DNS 쿼리를 모두 허용하거나이 서비스의 인스턴스 검색을 위한 API 호출만 허용하도록 선택합니다.

    참고

    API 호출을 선택하면 AWS Cloud Map 는 인스턴스를 등록할 때 SRV 레코드를 생성하지 않습니다.

    API 및 DNS를 선택하는 경우 다음 단계에 따라 DNS 레코드를 구성합니다. DNS 레코드를 추가하거나 제거할 수 있습니다.

    1. 라우팅 정책에서 인스턴스를 등록할 때가 생성하는 DNS AWS Cloud Map 레코드에 대한 Amazon Route 53 라우팅 정책을 선택합니다. 가중치 라우팅다중값 응답 라우팅 중에서 선택할 수 있습니다. 자세한 내용은 라우팅 정책 단원을 참조하십시오.

      참고

      인스턴스를 등록할 때 콘솔을 사용하여 Route 53 별칭 레코드를 생성 AWS Cloud Map 하도록를 구성할 수 없습니다. 인스턴스 AWS Cloud Map 를 프로그래밍 방식으로 등록할 때 Elastic Load Balancing 로드 밸런서에 대한 별칭 레코드를 생성하려면 라우팅 정책에 대한 가중치 적용 라우팅을 선택합니다.

    2. 레코드 유형에서 DNS 쿼리에 대한 응답으로 Route 53에서 반환하는 레코드 DNS 유형을 선택합니다 AWS Cloud Map. 자세한 내용은 레코드 유형 단원을 참조하십시오.

    3. 의 경우 숫자 값을 TTL지정하여 서비스 수준에서 (TTL) 값을 초 단위로 정의합니다. 의 값은 DNS 해석기가 업데이트된 설정을 가져오기 위해 다른 DNS 쿼리를 Amazon Route 53에 전달하기 전에이 레코드에 대한 정보를 캐시하는 기간을 TTL 결정합니다.

  8. 상태 확인 구성상태 확인 옵션에서 서비스 인스턴스에 해당하는 상태 확인 유형을 선택합니다. 상태 확인을 구성하지 않도록 선택하거나 인스턴스에 대한 Route 53 상태 확인 또는 외부 상태 확인 중에서 선택할 수 있습니다. 자세한 내용은 AWS Cloud Map 서비스 상태 확인 구성 단원을 참조하십시오.

    참고

    Route 53 상태 확인은 퍼블릭 DNS 네임스페이스의 서비스에 대해서만 구성할 수 있습니다.

    Route 53 상태 확인을 선택한 경우 다음 정보를 입력합니다.

    1. 실패 임계값의 경우 서비스 인스턴스가 상태 변경을 위해 통과하거나 실패해야 하는 연속 Route 53 상태 확인 수를 정의하는 1~10 사이의 숫자를 입력합니다.

    2. 상태 확인 프로토콜에서 Route 53가 서비스 인스턴스의 상태를 확인하는 데 사용할 방법을 선택합니다.

    3. HTTP 또는 HTTPS 상태 확인 프로토콜을 선택하는 경우 상태 확인 경로에 상태 확인을 수행할 때 Amazon Route 53에서 요청할 경로를 제공합니다. 경로는 /docs/route53-health-check.html 파일과 같은 모든 값이 될 수 있습니다. 리소스가 정상인 경우 반환된 값은 2xx 또는 3xx 형식의 HTTP 상태 코드입니다. 쿼리 문자열 파라미터를 포함해도 됩니다(예: /welcome.html?language=jp&login=y). AWS Cloud Map 콘솔에서는 앞에 슬래시(/) 문자를 자동으로 덧붙입니다.

    Route 53 상태 확인에 대한 자세한 내용은 Amazon Route 53 개발자 안내서의 Amazon Route 53에서 상태 확인이 정상인지 여부를 결정하는 방법을 참조하세요.

  9. (선택 사항) 태그에서 태그 추가를 선택한 다음 네임스페이스에 태그를 지정할 키와 값을 지정합니다. 네임스페이스에 추가할 태그를 하나 이상 지정할 수 있습니다. 태그를 사용하면 AWS 리소스를 보다 쉽게 관리할 수 있도록 리소스를 분류할 수 있습니다. 자세한 내용은 리소스에 태그 지정하기 AWS Cloud Map 단원을 참조하십시오.

  10. 서비스 생성을 선택합니다.

AWS CLI
  • create-service 명령을 사용하여 서비스를 생성합니다. red 값을 자신의 값으로 바꿉니다.

    aws servicediscovery create-service \ --name service-name \ --namespace-id ns-xxxxxxxxxxx \ --dns-config "NamespaceId=ns-xxxxxxxxxxx,RoutingPolicy=MULTIVALUE,DnsRecords=[{Type=A,TTL=60}]"

    출력:

    { "Service": { "Id": "srv-xxxxxxxxxxx", "Arn": "arn:aws:servicediscovery:us-west-2:123456789012:service/srv-xxxxxxxxxxx", "Name": "service-name", "NamespaceId": "ns-xxxxxxxxxxx", "DnsConfig": { "NamespaceId": "ns-xxxxxxxxxxx", "RoutingPolicy": "MULTIVALUE", "DnsRecords": [ { "Type": "A", "TTL": 60 } ] }, "CreateDate": 1587081768.334, "CreatorRequestId": "567c1193-6b00-4308-bd57-ad38a8822d25" } }
AWS SDK for Python (Boto3)

아직 Boto3이 설치되지 않은 경우, Boto3을 사용하여 여기에서 설치, 구성, 사용에 대한 지침을 찾을 수 있습니다.

  1. Boto3을 가져와서 서비스로 servicediscovery를 사용하세요.

    import boto3 client = boto3.client('servicediscovery')
  2. 를 사용하여 서비스를 생성합니다create_service(). red 값을 자신의 값으로 바꿉니다. 자세한 내용은 create_service를 참조하세요.

    response = client.create_service( DnsConfig={ 'DnsRecords': [ { 'TTL': 60, 'Type': 'A', }, ], 'NamespaceId': 'ns-xxxxxxxxxxx', 'RoutingPolicy': 'MULTIVALUE', }, Name='service-name', NamespaceId='ns-xxxxxxxxxxx', )

    예시 응답 출력

    { 'Service': { 'Arn': 'arn:aws:servicediscovery:us-west-2:123456789012:service/srv-xxxxxxxxxxx', 'CreateDate': 1587081768.334, 'DnsConfig': { 'DnsRecords': [ { 'TTL': 60, 'Type': 'A', }, ], 'NamespaceId': 'ns-xxxxxxxxxxx', 'RoutingPolicy': 'MULTIVALUE', }, 'Id': 'srv-xxxxxxxxxxx', 'Name': 'service-name', 'NamespaceId': 'ns-xxxxxxxxxxx', }, 'ResponseMetadata': { '...': '...', }, }

다음 단계

서비스를 생성한 후 애플리케이션이 리소스를 찾는 방법에 대한 정보가 포함된 애플리케이션 리소스를 서비스 인스턴스로 등록할 수 있습니다. AWS Cloud Map 서비스 인스턴스 등록에 대한 자세한 내용은 섹션을 참조하세요리소스를 AWS Cloud Map 서비스 인스턴스로 등록.

서비스를 생성한 후 엔드포인트 가중치, 제한 API 시간 및 재시도 정책과 같은 사용자 지정 메타데이터를 서비스 속성으로 지정할 수도 있습니다. 자세한 내용은 AWS Cloud Map API 참조UpdateServiceAttributesServiceAttributes 및 섹션을 참조하세요.