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

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

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

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

참고

DNS 쿼리로 액세스할 수 있는 서비스 중에는 대소문자만 다른 이름 (예: EXAMPLE 및 example) 을 사용하여 액세스할 수 있는 여러 서비스를 생성할 수 없습니다. 이렇게 하면 이러한 서비스가 동일한 DNS 이름을 갖게 됩니다. API 호출로만 액세스할 수 있는 네임스페이스를 사용하는 경우, 철자는 같지만 대소문자는 다른 이름을 가진 서비스를 생성할 수 있습니다.

다음 단계에 따라 AWS Management Console, AWS CLI, Python용 SDK를 사용하여 서비스를 생성하십시오.

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

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

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

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

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

    참고

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

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

    • 이름을 ._protocol로 끝냅니다(예: ._tcp).

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

    _exampleservice._tcp.example.com

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

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

    참고

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

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

    1. 라우팅 정책의 경우, 인스턴스를 등록할 때 AWS Cloud Map 생성되는 DNS 레코드에 대한 Amazon Route 53 라우팅 정책을 선택합니다. 가중치 기반 라우팅과 다중값 응답 라우팅 중에서 선택할 수 있습니다. 자세한 정보는 라우팅 정책을 참조하세요.

      참고

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

    2. 레코드 유형에서는 Route 53이 DNS 쿼리에 대한 응답으로 반환하는 내용을 결정하는 DNS 레코드 유형을 선택합니다. AWS Cloud Map자세한 정보는 레코드 유형을 참조하세요.

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

  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. (선택 사항) [Tags] 에서 [Add tags] 를 선택한 다음 네임스페이스에 태그를 지정할 키와 값을 지정합니다. 네임스페이스에 추가할 태그를 하나 이상 지정할 수 있습니다. 태그를 사용하면 AWS 리소스를 분류하여 더 쉽게 관리할 수 있습니다. 자세한 정보는 리소스에 태그 지정하기 AWS Cloud Map을 참조하세요.

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

AWS CLI
  • create-service명령으로 서비스를 생성합니다. 빨간색 값을 사용자 값으로 바꿉니다.

    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(). 빨간색 값을 사용자 값으로 바꿉니다. 자세한 내용은 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 서비스 인스턴스로 등록.