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