기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon Location으로 추적 시작
이 섹션에서는 디바이스 위치를 포착하는 추적 애플리케이션을 빌드하는 방법을 안내합니다.
트래커 생성
디바이스의 위치 업데이트를 저장하고 처리하는 트래커 리소스를 생성합니다. Amazon Location Service 콘솔, AWS CLI또는 Amazon Location 를 사용할 수 있습니다APIs.
트래커 리소스에 저장된 각 위치 업데이트에는 위치 정확도 측정값과 저장하려는 위치 또는 디바이스에 대한 메타데이터 필드를 최대 3개까지 포함할 수 있습니다. 메타데이터는 키-값 쌍으로 저장되며 속도, 방향, 타이어 공기압 또는 엔진 온도와 같은 정보를 저장할 수 있습니다.
트래커는 위치 업데이트가를 수신하면 이를 필터링합니다. 이렇게 하면 디바이스 경로의 시각적 노이즈(지터라고 함)가 줄어들고 잘못된 지오펜스 출입 이벤트 수가 줄어듭니다. 또한 지오펜스 평가 시작 횟수를 줄여 비용을 관리하는 데 도움이 됩니다.
트래커는 비용을 관리하고 위치 업데이트의 지터를 줄이는 데 도움이 되는 세 가지 위치 필터링 옵션을 제공합니다.
-
정확도 기반 – 정확도 측정을 제공하는 모든 디바이스와 함께 사용할 수 있습니다. 대부분의 모바일 디바이스는 이 정보를 제공합니다. 각 위치 측정의 정확도는 GPS 위성 수신, 풍경, Wi-Fi 및 Bluetooth 디바이스의 근접성 등 다양한 환경 요인의 영향을 받습니다. 대다수 모바일 디바이스를 포함한 디바이스는 대부분 측정과 함께 측정의 정확도 추정치를 제공할 수 있습니다. AccuracyBased
필터링을 사용하면 Amazon Location는 디바이스가 측정된 정확도보다 적게 움직인 경우 위치 업데이트를 무시합니다. 예를 들어 디바이스에서 두 번 연속 업데이트의 정확도 범위가 5m와 10m인 경우, 디바이스가 15m 미만으로 이동하면 Amazon Location은 두 번째 업데이트를 무시합니다. Amazon Location은 무시한 업데이트를 지오펜스와 비교하여 평가하거나 저장하지 않습니다.
정확도가 제공되지 않으면 0으로 처리되며, 측정값은 완전히 정확한 것으로 간주됩니다.
정확도 기반 필터링을 사용하여 모든 필터링을 제거할 수도 있습니다. 정확도 기반 필터링을 선택했지만 모든 정확도 데이터를 0으로 재정의하거나 정확도를 완전히 생략하는 경우 Amazon Location은 업데이트를 필터링하지 않습니다.
-
거리 기반 – 디바이스가 정확도 측정을 제공하지 않지만 필터링을 활용하여 지터를 줄이고 비용을 관리하려는 경우에 사용합니다. DistanceBased
필터링은 디바이스가 30m (98.4피트) 미만으로 이동한 위치 업데이트를 무시합니다. DistanceBased
위치 필터링을 사용하는 경우 Amazon Location은 지오펜스에 대해 무시된 업데이트를 평가하거나 업데이트를 저장하지 않습니다.
iOS 및 Android 디바이스의 평균 정확도를 포함하여 대부분의 모바일 디바이스의 정확도는 15m 이내입니다. 대부분의 애플리케이션에서 DistanceBased
필터링은 디바이스 궤적을 맵에 표시할 때 위치 부정확성의 영향을 줄이고, 디바이스가 지오펜스 경계 근처에 있을 때 여러 번의 연속적인 출입 이벤트로 인한 바운싱 효과를 줄일 수 있습니다. 또한 링크된 지오펜스를 기준으로 평가하거나 디바이스 위치를 검색하기 위한 호출을 줄여 애플리케이션 비용을 절감할 수 있습니다.
-
시간 기반 - (기본값) 디바이스가 위치 업데이트를 매우 자주(30초에 한 번 이상) 보내고 모든 업데이트를 저장하지 않고도 거의 실시간으로 지오펜스를 평가하려는 경우에 사용합니다. TimeBased
필터링에서는 모든 위치 업데이트가 연결된 지오펜스 컬렉션에 대해 평가되지만 모든 위치 업데이트가 저장되는 것은 아닙니다. 업데이트 빈도가 30초 이상인 경우 각 고유 디바이스 ID에 대해 30초당 하나의 업데이트만 저장됩니다.
필터링 방법과 위치 업데이트 빈도를 결정할 때는 추적 애플리케이션 비용을 염두에 두세요. 모든 위치 업데이트에 대해 요금이 청구되며 연결된 각 지오펜스 컬렉션에 대한 위치 업데이트 평가 비용은 한 번 청구됩니다. 예를 들어, 시간 기반 필터링을 사용할 때 트래커가 두 개의 지오펜스 컬렉션에 연결된 경우 모든 위치 업데이트는 위치 업데이트 요청 1회와 지오펜스 컬렉션 평가 2회로 계산됩니다. 디바이스의 위치 업데이트를 5초마다 보고하고 시간 기반 필터링을 사용하는 경우 각 디바이스에 대해 시간당 720건의 위치 업데이트와 1,440회의 지오펜스 평가에 대한 요금이 청구됩니다.
청구서는 각 컬렉션의 지오펜스 수에 영향을 받지 않습니다. 각 지오펜스 컬렉션에는 최대 50,000개의 지오펜스가 포함될 수 있으므로 가능한 경우 지오펜스를 더 적은 컬렉션으로 결합하여 지오펜스 평가 비용을 절감할 수 있습니다.
기본적으로 추적된 디바이스가 연결된 지오펜스에 들어오거나 나갈 때마다 EventBridge 이벤트를 가져옵니다. 자세한 내용은 자습서: Amazon Location의 지오펜스 컬렉션에 트래커 연결 단원을 참조하십시오.
트래커 리소스에 대해 필터링된 모든 위치 업데이트에 대해 이벤트를 활성화할 수 있습니다. 자세한 내용은 트래커의 업데이트 이벤트를 활성화합니다. 단원을 참조하십시오.
자체 AWS KMS 고객 관리형 키를 사용하여 데이터를 암호화하려는 경우 기본적으로 경계 다각형 쿼리 기능이 비활성화됩니다. 이는 이 경계 다각형 쿼리 기능을 사용함으로써 AWS KMS 관리형 키를 사용하여 디바이스 위치 표현이 암호화되지 않기 때문입니다. 하지만 정확한 디바이스 위치는 여전히 관리형 키를 사용하여 암호화됩니다.
트래커를 만들거나 업데이트할 때 KmsKeyEnableGeospatialQueries
파라미터를 true로 설정하여 경계 다각형 쿼리 기능을 옵트인하도록 선택할 수 있습니다.
- Console
-
Amazon Location 콘솔을 사용하여 트래커를 만들려면
-
에서 Amazon Location Service 콘솔을 엽니다https://console.aws.amazon.com/location/.
-
왼쪽 탐색 창에서 트래커를 선택합니다.
-
트래커 생성을 선택합니다.
-
다음 필드를 입력합니다.
-
위치 필터링에서 트래커 리소스를 사용하려는 방식에 가장 적합한 옵션을 선택합니다. 위치 필터링을 설정하지 않은 경우 기본 설정은 TimeBased
입니다. 자세한 내용은 이 가이드Amazon Location Service의 트래커에 대해 알아보기의 과 Amazon Location Service Tracker 참조PositionFiltering
의 섹션을 API 참조하세요.
-
(선택 사항) 태그 아래에 태그 키 및 값을 입력합니다. 이렇게 하면 새 지오펜스 컬렉션에 태그가 추가됩니다. 자세한 내용을 알아보려면 리소스 태그 지정을 참조하세요.
-
(선택 사항) 고객 관리형 키 암호화에서 고객 관리형 키 추가를 선택할 수 있습니다. 이렇게 하면 기본 AWS 소유 암호화를 통해 생성, 소유 및 관리하는 대칭 고객 관리형 키가 추가됩니다. 자세한 내용은 저장 데이터 암호화를 참조하세요.
-
(선택 사항) 아래에서 지리 공간 쿼리를 활성화하도록 선택할 KmsKeyEnableGeospatialQueries수 있습니다. 이렇게 하면 고객 AWS KMS 관리형 키를 사용하여 데이터를 암호화하면서 다각형 쿼리 경계 지정 기능을 사용할 수 있습니다.
경계 다각형 쿼리 기능을 사용하는 경우 디바이스 위치 표현은 AWS KMS
관리형 키를 사용하여 암호화되지 않습니다. 하지만 정확한 디바이스 위치는 여전히 관리형 키를 사용하여 암호화됩니다.
-
(선택 사항) EventBridge 구성 에서 필터링된 위치 업데이트에 대한 EventBridge 이벤트를 활성화하도록 선택할 수 있습니다. 그러면 이 트래커에 있는 디바이스의 위치 업데이트가 위치 필터링 평가를 충족할 때마다 이벤트가 전송됩니다.
-
트래커 생성을 선택합니다.
- API
-
Amazon Location을 사용하여 트래커를 생성하려면 APIs
Amazon Location Trackers 의 CreateTracker
작업을 사용합니다APIs.
다음 예제에서는 API 요청을 사용하여 라는 트래커를 생성합니다.ExampleTracker
. 트래커 리소스는 고객 관리형 AWS KMS 키와 연결되어 고객 데이터를 암호화하며 에서 위치 업데이트를 활성화 EventBridge하지 않습니다.
POST /tracking/v0/trackers
Content-type: application/json
{
"TrackerName": "ExampleTracker",
"Description": "string",
"KmsKeyEnableGeospatialQueries": false,
"EventBridgeEnabled": false,
"KmsKeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
"PositionFiltering": "AccuracyBased",
"Tags": {
"string" : "string"
}
}
KmsKeyEnableGeospatialQueries
가 활성화된 상태로 트래커 생성
다음 예시에서는 파라미터 KmsKeyEnableGeospatialQueries
가 true로 설정되어 있습니다. 이렇게 하면 고객 AWS KMS 관리형 키를 사용하여 데이터를 암호화하면서 다각형 쿼리 경계 지정 기능을 사용할 수 있습니다.
경계 다각형 쿼리 기능 사용에 대한 자세한 내용은 디바이스 위치를 나열합니다. 항목을 참조하세요.
경계 다각형 쿼리 기능을 사용하는 경우 디바이스 위치 표현은 AWS KMS 관리형 키를 사용하여 암호화되지 않습니다. 하지만 정확한 디바이스 위치는 여전히 관리형 키를 사용하여 암호화됩니다.
POST /tracking/v0/trackers
Content-type: application/json
{
"TrackerName": "ExampleTracker
",
"Description": "string",
"KmsKeyEnableGeospatialQueries": true,
"EventBridgeEnabled": false,
"KmsKeyId": "1234abcd-12ab-34cd-56ef-1234567890ab
",
"PositionFiltering": "AccuracyBased
",
"Tags": {
"string" : "string"
}
}
- AWS CLI
-
AWS CLI
명령을 사용하여 트래커를 만들려면
create-tracker
명령을 사용합니다.
다음 예제에서는 AWS CLI 를 사용하여 라는 트래커를 생성합니다.ExampleTracker
. 트래커 리소스는 고객 관리형 AWS KMS 키와 연결되어 고객 데이터를 암호화하며 에서 위치 업데이트를 활성화 EventBridge하지 않습니다.
aws location \
create-tracker \
--tracker-name "ExampleTracker
" \
--position-filtering "AccuracyBased
" \
--event-bridge-enabled false \
--kms-key-enable-geospatial-queries false \
--kms-key-id "1234abcd-12ab-34cd-56ef-1234567890ab
"
KmsKeyEnableGeospatialQueries
가 활성화된 상태로 트래커 생성
다음 예시에서는 파라미터 KmsKeyEnableGeospatialQueries
가 true로 설정되어 있습니다. 이렇게 하면 고객 AWS KMS 관리형 키를 사용하여 데이터를 암호화하면서 다각형 쿼리 경계 지정 기능을 사용할 수 있습니다.
경계 다각형 쿼리 기능 사용에 대한 자세한 내용은 디바이스 위치를 나열합니다. 항목을 참조하세요.
경계 다각형 쿼리 기능을 사용하는 경우 디바이스 위치 표현은 AWS KMS 관리형 키를 사용하여 암호화되지 않습니다. 하지만 정확한 디바이스 위치는 여전히 관리형 키를 사용하여 암호화됩니다.
aws location \
create-tracker \
--tracker-name "ExampleTracker
" \
--position-filtering "AccuracyBased
" \
--event-bridge-enabled false \
--kms-key-enable-geospatial-queries true \
--kms-key-id "1234abcd-12ab-34cd-56ef-1234567890ab
"
트래커 편집을 선택하여 트래커를 생성한 후 설명, 위치 필터링 및 EventBridge 구성을 편집할 수 있습니다.
요청 인증
트래커 리소스를 생성하고 지오펜스를 기준으로 디바이스 위치를 평가할 준비가 되었으면 요청을 인증할 방법을 선택합니다.
-
서비스에 액세스하는 방법을 알아보려면 Amazon Location Service 액세스를 참조하세요.
-
인증되지 않은 요청이 있는 디바이스 위치를 게시하려면 Amazon Cognito를 사용하는 것이 좋습니다.
예
다음 예제에서는 권한 부여를 위해 Amazon Cognito 자격 증명 풀 사용, AWS JavaScript SDK v3 사용 및 Amazon Location 을 보여줍니다JavaScript 인증 도우미.
import { LocationClient, BatchUpdateDevicePositionCommand } from "@aws-sdk/client-location";
import { withIdentityPoolId } from "@aws/amazon-location-utilities-auth-helper";
// Unauthenticated identity pool you created
const identityPoolId = "us-east-1:1234abcd-5678-9012-abcd-sample-id
";
// Create an authentication helper instance using credentials from Cognito
const authHelper = await withIdentityPoolId(identityPoolId);
const client = new LocationClient({
region: "us-east-1
", // The region containing both the identity pool and tracker resource
...authHelper.getLocationClientConfig(), // Provides configuration required to make requests to Amazon Location
});
const input = {
TrackerName: "ExampleTracker
",
Updates: [
{
DeviceId: "ExampleDevice-1
",
Position: [-123.4567, 45.6789],
SampleTime: new Date("2020-10-02T19:09:07.327Z"),
},
{
DeviceId: "ExampleDevice-2
",
Position: [-123.123, 45.123],
SampleTime: new Date("2020-10-02T19:10:32Z"),
},
],
};
const command = new BatchUpdateDevicePositionCommand(input);
// Send device position updates
const response = await client.send(command);
디바이스 위치로 트래커를 업데이트합니다.
디바이스를 추적하기 위해 디바이스 위치 업데이트를 트래커에 게시할 수 있습니다. 나중에 트래커 리소스에서 이러한 디바이스 위치 또는 디바이스 위치 기록을 검색할 수 있습니다.
각 위치 업데이트에는 디바이스 ID, 타임스탬프, 위치가 포함되어야 합니다. 필요에 따라 정확도 및 최대 3개의 키-값 쌍을 비롯한 기타 메타데이터를 포함시킬 수 있습니다.
트래커가 하나 이상의 지오펜스 컬렉션에 연결된 경우, 트래커에 지정한 필터링 규칙에 따라 해당 지오펜스를 기준으로 업데이트가 평가됩니다. 디바이스가 지오펜스 영역을 위반하는 경우(영역 내부에서 외부로 이동하거나 그 반대로 이동) 에서 이벤트를 수신합니다 EventBridge. 이러한 ENTER
이벤트 또는 EXIT
이벤트에는 디바이스 ID, 타임스탬프, 관련 메타데이터를 비롯한 위치 업데이트 세부 정보가 포함됩니다.
다음 방법 중 하나를 사용하여 디바이스 업데이트를 전송합니다.
-
AWS IoT Core 리소스에 MQTT 업데이트를 전송하고 이를 트래커 리소스에 연결합니다.
-
Amazon Location Tracker API, AWS CLI또는 Amazon Location 를 사용하여 위치 업데이트를 전송합니다APIs. AWS SDKs 를 사용하여 iOS 또는 Android 애플리케이션에서 APIs를 호출할 수 있습니다.
- API
-
Amazon Location을 사용하여 위치 업데이트를 보내려면 APIs
Amazon Location Trackers 의 BatchUpdateDevicePosition
작업을 사용합니다APIs.
다음 예제에서는 API 요청을 사용하여 에 대한 디바이스 위치 업데이트를 게시합니다.ExampleDevice
트래커로 ExampleTracker
.
POST /tracking/v0/trackers/ExampleTracker
/positions
Content-type: application/json
{
"Updates": [
{
"DeviceId": "1",
"Position": [
-123.12245146162303, 49.27521118043802
],
"SampleTime": "2022-10-24T19:09:07.327Z",
"PositionProperties": {
"name" : "device1"
},
"Accuracy": {
"Horizontal": 10
}
},
{
"DeviceId": "2",
"Position": [
-123.1230104928471, 49.27752402723152
],
"SampleTime": "2022-10-02T19:09:07.327Z"
},
{
"DeviceId": "3",
"Position": [
-123.12325592118916, 49.27340530543111
],
"SampleTime": "2022-10-02T19:09:07.327Z"
},
{
"DeviceId": "4",
"Position": [
-123.11958813096311, 49.27774641063121
],
"SampleTime": "2022-10-02T19:09:07.327Z"
},
{
"DeviceId": "5",
"Position": [
-123.1277418058896, 49.2765989015285
],
"SampleTime": "2022-10-02T19:09:07.327Z"
},
{
"DeviceId": "6",
"Position": [
-123.11964267059481, 49.274188155916534
],
"SampleTime": "2022-10-02T19:09:07.327Z"
}
]
}
- AWS CLI
-
AWS CLI
명령을 사용하여 위치 업데이트를 전송하려면
batch-update-device-position
명령을 사용합니다.
다음 예제에서는 를 사용하여 AWS CLI 에 대한 디바이스 위치 업데이트를 게시합니다.ExampleDevice-1
그리고 ExampleDevice-2
트래커로 ExampleTracker
.
aws location batch-update-device-position \
--tracker-name ExampleTracker \
--updates '[{"DeviceId":"ExampleDevice-1","Position":[-123.123,47.123],"SampleTime":"2021-11-30T21:47:25.149Z"},{"DeviceId":"ExampleDevice-2","Position":[-123.123,47.123],"SampleTime":"2021-11-30T21:47:25.149Z","Accuracy":{"Horizontal":10.30},"PositionProperties":{"field1":"value1","field2":"value2"}}]'
트래커에서 디바이스의 위치 기록 가져오기
Amazon Location 트래커 리소스는 추적한 모든 디바이스의 위치 기록을 30일 동안 유지합니다. 트래커 리소스에서 모든 관련 메타데이터를 포함한 디바이스 위치 기록을 검색할 수 있습니다. 다음 예제에서는 AWS CLI또는 Amazon Location 을 사용합니다APIs.
- API
-
Amazon Location을 사용하여 트래커에서 디바이스 위치 기록을 가져오려면 APIs
Amazon Location Trackers 의 GetDevicePositionHistory
작업을 사용합니다APIs.
다음 예제에서는 API URI 요청을 사용하여 의 디바이스 위치 기록을 가져옵니다.ExampleDevice
라는 트래커에서 ExampleTracker
(19:05:07
포함)부터 시작하여 의 19:20:07
(독점)에 종료됩니다2020–10–02
.
POST /tracking/v0/trackers/ExampleTracker
/devices/ExampleDevice
/list-positions
Content-type: application/json
{
"StartTimeInclusive": "2020-10-02T19:05:07.327Z",
"EndTimeExclusive": "2020-10-02T19:20:07.327Z"
}
- AWS CLI
-
AWS CLI 명령을 사용하여 트래커에서 디바이스 위치 기록을 가져오려면
get-device-position-history
명령을 사용합니다.
다음 예제에서는 AWS CLI 를 사용하여 의 디바이스 위치 기록을 가져옵니다.ExampleDevice
라는 트래커에서 ExampleTracker
(19:05:07
포함)부터 시작하여 의 19:20:07
(독점)에 종료됩니다2020–10–02
.
aws location \
get-device-position-history \
--device-id "ExampleDevice
" \
--start-time-inclusive "2020-10-02T19:05:07.327Z" \
--end-time-exclusive "2020-10-02T19:20:07.327Z" \
--tracker-name "ExampleTracker
"
디바이스 위치를 나열합니다.
를 사용하여 트래커의 디바이스 위치 목록 AWS CLI또는 를 사용하여 Amazon Location 을 볼 수 APIs있습니다 ListDevicePositions API. 를 호출하면 지정된 트래커와 연결된 모든 디바이스의 최신 위치 ListDevicePositions API목록이 반환됩니다. 기본적으로 지정된 트래커에 대한 결과 페이지당 100개의 최신 디바이스 위치를 API 반환합니다. 특정 리전 내의 디바이스만 반환하려면 FilterGeometry
파라미터를 사용하여 경계 다각형 쿼리를 생성하세요. 이렇게 하면 를 호출할 때 다각형 내의 디바이스 ListDevicePositions만 반환됩니다.
자체 AWS KMS 고객 관리형 키를 사용하여 데이터를 암호화하려는 경우 기본적으로 경계 다각형 쿼리 기능이 비활성화됩니다. 이는 이 기능을 사용하면 AWS KMS 관리형 키를 사용하여 디바이스 위치 표현이 암호화되지 않기 때문입니다. 하지만 정확한 디바이스 위치는 여전히 관리형 키를 사용하여 암호화됩니다.
경계 다각형 쿼리 기능을 선택할 수 있습니다. 트래커를 만들거나 업데이트할 때 KmsKeyEnableGeospatialQueries
파라미터를 true로 설정하면 됩니다.
- API
-
Amazon Location Trackers 의 ListDevicePositions
작업을 사용합니다APIs.
다음 예제는 선택적 파라미터 를 사용하여 다각형 영역의 디바이스 위치 목록을 가져오라는 API 요청입니다FilterGeometry
. 이 예시에서는 Polygon
배열로 정의된 영역에 있는 3개의 디바이스 위치를 반환합니다.
POST /tracking/v0/trackers/TrackerName
/list-positions HTTP/1.1
Content-type: application/json
{
"FilterGeometry": {
"Polygon": [
[
[
-123.12003339442259,
49.27425121147397
],
[
-123.1176984148229,
49.277063620879744
],
[
-123.12389509145294,
49.277954183760926
],
[
-123.12755921328647,
49.27554025235713
],
[
-123.12330236586217,
49.27211836076236
],
[
-123.12003339442259,
49.27425121147397
]
]
]
},
"MaxResults": 3,
"NextToken": "1234-5678-9012"
}
다음은 ListDevicePositions
에 대한 응답의 예입니다.
{
"Entries": [
{
"DeviceId": "1",
"SampleTime": "2022-10-24T19:09:07.327Z",
"Position": [
-123.12245146162303,
49.27521118043802
],
"Accuracy": {
"Horizontal": 10
},
"PositionProperties": {
"name": "device1"
}
},
{
"DeviceId": "3",
"SampleTime": "2022-10-02T19:09:07.327Z",
"Position": [
-123.12325592118916,
49.27340530543111
]
},
{
"DeviceId": "2",
"SampleTime": "2022-10-02T19:09:07.327Z",
"Position": [
-123.1230104928471,
49.27752402723152
]
}
],
"NextToken": "1234-5678-9012"
}
- CLI
-
list-trackers
명령을 사용합니다.
다음 예제는 다각형 영역의 디바이스 목록을 AWS CLI 가져오는 입니다.
aws location list-device-positions TODO: add arguments add props for filter geo