기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
애플리케이션 구성 요소에 대한 AWS Cloud Map 서비스 생성
네임스페이스를 생성한 후 특정 목적에 맞는 애플리케이션의 다양한 구성 요소를 나타내는 서비스를 생성할 수 있습니다. 예를 들어 애플리케이션에서 결제를 처리하는 리소스에 대한 서비스를 생성할 수 있습니다.
참고
DNS 쿼리에서 액세스할 수 있는 서비스를 여러 개 생성할 수 없으며, 이름은 대/소문자(예: EXAMPLE 및 예)만 다릅니다. 이렇게 하면 이러한 서비스의 DNS 이름이 동일합니다. API 호출로만 액세스할 수 있는 네임스페이스를 사용하는 경우 이름만 대/소문자를 구분하여 서비스를 생성할 수 있습니다.
다음 단계에 따라 AWS Management Console AWS CLI및 SDK for Python을 사용하여 서비스를 생성합니다.
- AWS Management Console
-
에 로그인 AWS Management Console 하고에서 AWS Cloud Map 콘솔을 엽니다https://console.aws.amazon.com/cloudmap/
. -
탐색 창에서 네임스페이스를 선택합니다.
-
네임스페이스 페이지에서 서비스를 추가하려는 네임스페이스를 선택합니다.
-
네임스페이스:
namespace-name
페이지에서 서비스 생성을 선택합니다. -
서비스 이름에이 서비스를 사용할 때 등록하는 인스턴스를 설명하는 이름을 입력합니다. 값은 API 호출 또는 DNS 쿼리에서 AWS Cloud Map 서비스 인스턴스를 검색하는 데 사용됩니다.
참고
인스턴스 AWS Cloud Map 를 등록할 때 SRV 레코드를 생성하고 특정 SRV 형식(예: HAProxy
)이 필요한 시스템을 사용하는 경우 서비스 이름에 다음을 지정합니다. -
이름은 밑줄(_)로 시작합니다(예: _exampleservice).
-
._tcp
._protocol
와 같이 로 이름을 종료합니다.
인스턴스를 등록할 때는 SRV 레코드를 AWS Cloud Map 생성하고 서비스 이름과 네임스페이스 이름을 연결하여 이름을 할당합니다. 예를 들면 다음과 같습니다.
_exampleservice._tcp.example.com
-
-
(선택 사항) 서비스 설명에 서비스에 대한 설명을 입력합니다. 여기에 입력하는 설명은 서비스 페이지와 각 서비스의 세부 정보 페이지에 표시됩니다.
-
네임스페이스가 DNS 쿼리를 지원하는 경우 서비스 검색 구성에서 서비스 수준에서 검색 가능성을 구성할 수 있습니다. API 호출과 DNS 쿼리를 모두 허용하거나이 서비스의 인스턴스 검색을 위한 API 호출만 허용하도록 선택합니다.
참고
API 호출을 선택하면 AWS Cloud Map 는 인스턴스를 등록할 때 SRV 레코드를 생성하지 않습니다.
API 및 DNS를 선택하는 경우 다음 단계에 따라 DNS 레코드를 구성합니다. DNS 레코드를 추가하거나 제거할 수 있습니다.
-
라우팅 정책에서 인스턴스를 등록할 때가 생성하는 DNS AWS Cloud Map 레코드에 대한 Amazon Route 53 라우팅 정책을 선택합니다. 가중치 라우팅과 다중값 응답 라우팅 중에서 선택할 수 있습니다. 자세한 내용은 라우팅 정책 단원을 참조하십시오.
참고
인스턴스를 등록할 때 콘솔을 사용하여 Route 53 별칭 레코드를 생성 AWS Cloud Map 하도록를 구성할 수 없습니다. 인스턴스 AWS Cloud Map 를 프로그래밍 방식으로 등록할 때 Elastic Load Balancing 로드 밸런서에 대한 별칭 레코드를 생성하려면 라우팅 정책에 대한 가중치 적용 라우팅을 선택합니다.
-
레코드 유형에서 DNS 쿼리에 대한 응답으로 Route 53에서 반환하는 레코드 DNS 유형을 선택합니다 AWS Cloud Map. 자세한 내용은 레코드 유형 단원을 참조하십시오.
-
의 경우 숫자 값을 TTL지정하여 서비스 수준에서 (TTL) 값을 초 단위로 정의합니다. 의 값은 DNS 해석기가 업데이트된 설정을 가져오기 위해 다른 DNS 쿼리를 Amazon Route 53에 전달하기 전에이 레코드에 대한 정보를 캐시하는 기간을 TTL 결정합니다.
-
-
상태 확인 구성의 상태 확인 옵션에서 서비스 인스턴스에 해당하는 상태 확인 유형을 선택합니다. 상태 확인을 구성하지 않도록 선택하거나 인스턴스에 대한 Route 53 상태 확인 또는 외부 상태 확인 중에서 선택할 수 있습니다. 자세한 내용은 AWS Cloud Map 서비스 상태 확인 구성 단원을 참조하십시오.
참고
Route 53 상태 확인은 퍼블릭 DNS 네임스페이스의 서비스에 대해서만 구성할 수 있습니다.
Route 53 상태 확인을 선택한 경우 다음 정보를 입력합니다.
-
실패 임계값의 경우 서비스 인스턴스가 상태 변경을 위해 통과하거나 실패해야 하는 연속 Route 53 상태 확인 수를 정의하는 1~10 사이의 숫자를 입력합니다.
-
상태 확인 프로토콜에서 Route 53가 서비스 인스턴스의 상태를 확인하는 데 사용할 방법을 선택합니다.
-
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에서 상태 확인이 정상인지 여부를 결정하는 방법을 참조하세요.
-
-
(선택 사항) 태그에서 태그 추가를 선택한 다음 네임스페이스에 태그를 지정할 키와 값을 지정합니다. 네임스페이스에 추가할 태그를 하나 이상 지정할 수 있습니다. 태그를 사용하면 AWS 리소스를 보다 쉽게 관리할 수 있도록 리소스를 분류할 수 있습니다. 자세한 내용은 리소스에 태그 지정하기 AWS Cloud Map 단원을 참조하십시오.
-
서비스 생성을 선택합니다.
- AWS CLI
-
-
create-service
명령을 사용하여 서비스를 생성합니다.red
값을 자신의 값으로 바꿉니다.aws servicediscovery create-service \ --name
service-name
\ --namespace-idns-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
을 사용하여 여기에서 설치, 구성, 사용에 대한 지침을 찾을 수 있습니다. -
Boto3
을 가져와서 서비스로servicediscovery
를 사용하세요.import boto3 client = boto3.client('servicediscovery')
-
를 사용하여 서비스를 생성합니다
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 참조UpdateServiceAttributes
의 ServiceAttributes 및 섹션을 참조하세요.