투케이2K

166. (Aws/Amazon) [Aws Iot Core] AWS IoT Core 엔드포인트 주소 반환 DescribeEndpoint 데이터 엔드포인트 API 설명 정리 본문

Aws (Amazon)

166. (Aws/Amazon) [Aws Iot Core] AWS IoT Core 엔드포인트 주소 반환 DescribeEndpoint 데이터 엔드포인트 API 설명 정리

투케이2K 2026. 1. 7. 22:44
728x90

[개발 환경 설정]

개발 환경 : Aws / Amazon Web Services

 

[설명 정리]

// --------------------------------------------------------------------------------------
[개발 및 환경]
// --------------------------------------------------------------------------------------

- 인프라 : Aws / Amazon Web Services


- 기술 구분 : Aws / Aws Iot Core / Domain / Endpoint


- 사전) Aws Iot Core 간단 설명 : 

  >> AWS IoT 는 IoT 디바이스를 다른 디바이스 및 AWS 클라우드 서비스에 연결하는 클라우드 서비스를 제공합니다.

  >> 디바이스가에 연결할 수 있는 경우 AWS IoT는 AWS 가 제공하는 클라우드 서비스에 디바이스를 AWS IoT 연결할 수 있습니다.

  >> AWS IoT Core 메시지 브로커는 MQTT 및 MQTT over WSS 프로토콜을 사용하여 메시지를 게시하고 구독하는 디바이스 및 클라이언트를 지원합니다. 
  
    - HTTPS 프로토콜을 사용하여 메시지를 게시하는 디바이스와 클라이언트도 지원합니다.

// --------------------------------------------------------------------------------------






// --------------------------------------------------------------------------------------
[설 명]
// --------------------------------------------------------------------------------------

1. AWS Iot Core 엔드포인트 유형 (endpointType) 은 AWS IoT 서비스와 통신하기 위한 도메인 주소의 종류를 의미합니다

  >> AWS services 는 서비스가 지원하는 일부 또는 모든 AWS 리전에서 IPv4 엔드포인트, 듀얼 스택 엔드포인트 및 FIPS 엔드포인트와 같은 엔드포인트 유형을 제공합니다

  >> AWS Iot Core 엔드포인트 유형 (endpointType) 은 특정 기능이나 프로토콜에 맞게 설계되어 있으며, 해당 기능에 맞게 사용할 수 있습니다. (ex : 인증서 기반, 임시 자격 증명 기반 등)


2. AWS Iot Core 주요 엔드포인트 유형 (endpointType) : 

------------------------------------------------------------------------------------------------------------------
     엔드포인트 유형             |                 설명                  |               사용 목적
------------------------------------------------------------------------------------------------------------------
   iot:Data-ATS              |  최신 인증서 기반 데이터 엔드포인트          |   (권장) MQTT, WebSocket, HTTPS 통신에 사용
------------------------------------------------------------------------------------------------------------------
   iot:Data                  |  구버전 인증서 기반 데이터 엔드포인트         |   (권장 안함) 이전 버전의 인증서 사용
------------------------------------------------------------------------------------------------------------------
   iot:CredentialProvider    |  임시 자격증명 제공용 엔드포인트             |    Cognito 인증 후, IoT 디바이스에 임시 AWS 자격증명 제공
------------------------------------------------------------------------------------------------------------------
   iot:Jobs                  |  IoT Jobs 관련 엔드포인트                |    디바이스에 작업(Job)을 할당하고 관리할 때 사용
------------------------------------------------------------------------------------------------------------------


3. DescribeEndpoint API 호출 Request , Response 전문 예시 : 

  // ✅ Request 전문 예시
  GET /endpoint?endpointType=endpointType HTTP/1.1


  // ✅ Response 전문 예시
  HTTP/1.1 200
  Content-type: application/json

  {
    "endpointAddress": "string"
  }


4. DescribeEndpoint API 호출 에러 코드 정리 :

  >> InvalidRequestException : 요청 형식이 잘못됨

  >> InternalFailureException : AWS 서버 측 오류

  >> UnauthorizedException : 권한 부족

  >> ThrottlingException : 호출 제한 초과


5. 자바스크립트 소스 코드 기준 'iot:Data-ATS' 엔트 포인트 조회 예시 : 

  // -----------------------------------------
  // [AWS 필요 변수 선언]
  // -----------------------------------------
  const region = 'ap-northeast-1'; // [AWS 리전]
  const accessKeyId = 'AK..7Q'; // [IAM 액세스 키]
  const secretAccessKey = 'Zz..xj'; // [IAM 시크릿 키]


  // -----------------------------------------
  // [AWS.config 지정]
  // -----------------------------------------
  // IAM 계정 정보를 사용해 AWS.config 정보 업데이트 수행
  // -----------------------------------------            
  AWS.config.update({
      region: region,
      accessKeyId: accessKeyId,
      secretAccessKey: secretAccessKey
  });



  // -----------------------------------------
  // [AWS.Iot 객체 생성]
  // -----------------------------------------
  const iot = new AWS.Iot();


  // -----------------------------------------
  // [describeEndpoint] : Aws Iot Core 도메인 엔드포인트 정보 조회
  // -----------------------------------------
  // AWS 참고 사이트 : https://docs.aws.amazon.com/iot/latest/apireference/API_DescribeEndpoint.html
  // -----------------------------------------
  // Request Params : endpointType : 엔드포인트 유형입니다
  // -----------------------------------------
  // iot:Data = VeriSign 서명 데이터 엔드포인트를 반환합니다
  // -----------------------------------------
  // iot:Data-ATS = ATS 서명된 데이터 엔드포인트를 반환합니다.
  // -----------------------------------------
  // iot:CredentialProvider = AWS IoT 자격 증명 공급자 API 엔드포인트를 반환합니다.
  // -----------------------------------------
  // iot:Jobs = IoT Jobs 관련 엔드포인트.
  // -----------------------------------------             
  iot.describeEndpoint({ endpointType: 'iot:Data-ATS' }, function(err, data) { 
      if (err) {    
          console.error("[describeEndpoint] : [Error] : ", err);

      } else {
          console.log("[describeEndpoint] : [Success] : [endpointAddress] : ", JSON.stringify(data.endpointAddress));        

          // ---------------------------------------------
          // [로그 출력 예시 첨부]
          // ---------------------------------------------
          /*
          {
              "endpointAddress": "a1..d9-ats.iot.ap-northeast-1.amazonaws.com"
          }
          */
          // ---------------------------------------------
      }
  });

// --------------------------------------------------------------------------------------






// --------------------------------------------------------------------------------------
[참고 사이트]
// --------------------------------------------------------------------------------------

[Aws Iot Core] AWS 도메인 구성 , 엔드포인트 유형 설명 정리 - DescribeEndpoint

https://kkh0977.tistory.com/8353

https://blog.naver.com/kkh0977/224055643878?trackingCode=blog_bloghome_searchlist


[AWS IoT Core 엔드포인트 설명]

https://docs.aws.amazon.com/ko_kr/general/latest/gr/iot-core.html


[AWS DescribeEndpoint 엔드포인트 확인 API 설명]

https://docs.aws.amazon.com/iot/latest/apireference/API_DescribeEndpoint.html


[Aws 사이트 : 리전 및 영역 설명]

https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/using-regions-availability-zones.html


[Aws 사이트 : 글로벌 인프라 리전 및 가용 영역]

https://aws.amazon.com/ko/about-aws/global-infrastructure/regions_az/


[Aws 사이트 : Amazon EC2에 대한 리전별 엔드포인트]

https://docs.aws.amazon.com/ec2/latest/devguide/ec2-endpoints.html

// --------------------------------------------------------------------------------------
 
728x90
반응형
Comments