AWS X-Ray에서 Lambda → Athena 액세스를 시각화해 보았습니다.
Amazon Athena를 AWS Lambda에서 조작 할 수 있도록 시도했습니다.
AWS X-Ray 데몬 실행
AWS X-Ray SDK는 AWS X-Ray에 Trace 데이터를 직접 전송하지 않으므로 전송을 위한 EC2 인스턴스를 생성합니다. 사용자 데이터로 다음을 등록하여 인스턴스를 생성하기 만하면되므로 간단합니다.
#!/bin/bash
curl https://s3.dualstack.us-east-1.amazonaws.com/aws-xray-assets.us-east-1/xray-daemon/aws-xray-daemon-2.x.rpm -o /home/ec2-user/xray.rpm
yum install -y /home/ec2-user/xray.rpm
시스템 로그에 xray 설치 로그가 출력되어 있었기 때문에 OK입니다.
Examining /home/ec2-user/xray.rpm: xray-2.0.0-1.x86_64
Marking /home/ec2-user/xray.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package xray.x86_64 0:2.0.0-1 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
xray x86_64 2.0.0-1 /xray 6.6 M
Transaction Summary
================================================================================
Install 1 Package
Total size: 6.6 M
Installed size: 6.6 M
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : xray-2.0.0-1.x86_64 1/1
xray start/running, process 2576
Verifying : xray-2.0.0-1.x86_64 1/1
Installed:
xray.x86_64 0:2.0.0-1
Complete!
Lambda 앱 측 준비
이번에 Java 애플리케이션을 실행하는 것입니다만, Lambda 애플리케이션을 X-Ray로 감시하고 싶은 경우는, Lambda 애플리케이션의 「설정」탭에서 아래의 체크 박스를 ON으로 하는 것만으로 좋은 것 같습니다.
참고 : htp // // cs. 아 ws. 아마존. 이 m / 그럼 _ jp / x 등 y / ㅁ st /에서 v 굉장히 / x 등 y-세 r ゔ ぃ 세 s. HTML
또한 X-Ray를 조작할 수 있는 권한을 IAM에서 설정해야 합니다. 이번은 시험적인 운용이었기 때문에 「AWSXrayFullAccess」를 붙여 버렸습니다만, 실제의 운용에 맞추어 이 근처는 신중하게 선택하고 싶네요.
앱을 시작하고 시각화해보기
여기까지 할 수 있으면 보통 Lambda 앱을 움직여보고 X-Ray에서 어떻게 보이는지 확인할 수 있습니다. 이번 Lambda 애플리케이션에는 다음 JSON을 입력으로 제공하도록 했습니다. 이전의 기사에서 샘플로서 Athena의 테이블로부터 데이터를 취득하도록(듯이) 했을 때의 입력치입니다.
{
"region": "us-east-1",
"s3Path": "s3://ishida-athena-staging-dir/",
"sql": "SELECT elbname, requestip, requestport, backendip, backendport, requestprocessingtime, backendprocessingtime, timestamp FROM sampledb.elb_logs order by timestamp desc limit 10",
"columnListStr": "elbname, requestip, requestport, backendip, backendport, requestprocessingtime, backendprocessingtime, timestamp"
}
실행 후 1분 정도 기다리면 아래와 같은 표시가 X-Ray에서 확인할 수 있었습니다. 무사히 시각화가 생긴 것 같습니다.
X-Ray의 내용을 확인해 본다
표시된 Service Map의 오른쪽에 있는 개체를 클릭하면 아래와 같은 표시가 되었습니다.
각각의 처리에 어느 정도 시간이 걸려 응답으로서 무엇을 돌려주고 있는지를 일람으로 알 수 있습니다.
표시된 ID를 클릭하면 해당 추적의 세부정보를 볼 수 있습니다.
이것을 보는 한, Lambda 앱의 초기화에 230ms 정도, 실제의 Athena 접속 부분에 약 3초 정도 걸리고 있다, 라고 하는 바람에 보면 좋을까요. 이 처리 전체로서는 4.6초 걸리고 있기 때문에, 실제로 Athena에 액세스하기 위해 이외에 1.5초 정도는 시간이 걸리고 있다, 라고 이해하면 좋을까요. 이 근처는 더 공부가 필요하다(^^;
덧붙여서 에러가 나오고 있는 경우는, 그 예외의 내용도 확인할 수 있는 것 같습니다.
요약
각각의 처리가 어느 정도 시간에 걸려 있고, 한층 더 호출 관계까지 이만큼 간단하게 셋업하면서 가시화를 할 수 있는 것은 강력하네요. 앞으로 Microservices등에서 분산해 처리를 시키는 것이 당연하게 되는 것을 생각하면, 필수의 기술이라고 말할 수 있다고 생각합니다. Spring에서 말하면 Zipkin과 Sleuth를 AWS상에서 실현하고 있는 것 같은 느낌이군요.
Reference
이 문제에 관하여(AWS X-Ray에서 Lambda → Athena 액세스를 시각화해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kojiisd/items/bfb9bd0ff5abcd2a973d
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
#!/bin/bash
curl https://s3.dualstack.us-east-1.amazonaws.com/aws-xray-assets.us-east-1/xray-daemon/aws-xray-daemon-2.x.rpm -o /home/ec2-user/xray.rpm
yum install -y /home/ec2-user/xray.rpm
Examining /home/ec2-user/xray.rpm: xray-2.0.0-1.x86_64
Marking /home/ec2-user/xray.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package xray.x86_64 0:2.0.0-1 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
xray x86_64 2.0.0-1 /xray 6.6 M
Transaction Summary
================================================================================
Install 1 Package
Total size: 6.6 M
Installed size: 6.6 M
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : xray-2.0.0-1.x86_64 1/1
xray start/running, process 2576
Verifying : xray-2.0.0-1.x86_64 1/1
Installed:
xray.x86_64 0:2.0.0-1
Complete!
이번에 Java 애플리케이션을 실행하는 것입니다만, Lambda 애플리케이션을 X-Ray로 감시하고 싶은 경우는, Lambda 애플리케이션의 「설정」탭에서 아래의 체크 박스를 ON으로 하는 것만으로 좋은 것 같습니다.
참고 : htp // // cs. 아 ws. 아마존. 이 m / 그럼 _ jp / x 등 y / ㅁ st /에서 v 굉장히 / x 등 y-세 r ゔ ぃ 세 s. HTML
또한 X-Ray를 조작할 수 있는 권한을 IAM에서 설정해야 합니다. 이번은 시험적인 운용이었기 때문에 「AWSXrayFullAccess」를 붙여 버렸습니다만, 실제의 운용에 맞추어 이 근처는 신중하게 선택하고 싶네요.
앱을 시작하고 시각화해보기
여기까지 할 수 있으면 보통 Lambda 앱을 움직여보고 X-Ray에서 어떻게 보이는지 확인할 수 있습니다. 이번 Lambda 애플리케이션에는 다음 JSON을 입력으로 제공하도록 했습니다. 이전의 기사에서 샘플로서 Athena의 테이블로부터 데이터를 취득하도록(듯이) 했을 때의 입력치입니다.
{
"region": "us-east-1",
"s3Path": "s3://ishida-athena-staging-dir/",
"sql": "SELECT elbname, requestip, requestport, backendip, backendport, requestprocessingtime, backendprocessingtime, timestamp FROM sampledb.elb_logs order by timestamp desc limit 10",
"columnListStr": "elbname, requestip, requestport, backendip, backendport, requestprocessingtime, backendprocessingtime, timestamp"
}
실행 후 1분 정도 기다리면 아래와 같은 표시가 X-Ray에서 확인할 수 있었습니다. 무사히 시각화가 생긴 것 같습니다.
X-Ray의 내용을 확인해 본다
표시된 Service Map의 오른쪽에 있는 개체를 클릭하면 아래와 같은 표시가 되었습니다.
각각의 처리에 어느 정도 시간이 걸려 응답으로서 무엇을 돌려주고 있는지를 일람으로 알 수 있습니다.
표시된 ID를 클릭하면 해당 추적의 세부정보를 볼 수 있습니다.
이것을 보는 한, Lambda 앱의 초기화에 230ms 정도, 실제의 Athena 접속 부분에 약 3초 정도 걸리고 있다, 라고 하는 바람에 보면 좋을까요. 이 처리 전체로서는 4.6초 걸리고 있기 때문에, 실제로 Athena에 액세스하기 위해 이외에 1.5초 정도는 시간이 걸리고 있다, 라고 이해하면 좋을까요. 이 근처는 더 공부가 필요하다(^^;
덧붙여서 에러가 나오고 있는 경우는, 그 예외의 내용도 확인할 수 있는 것 같습니다.
요약
각각의 처리가 어느 정도 시간에 걸려 있고, 한층 더 호출 관계까지 이만큼 간단하게 셋업하면서 가시화를 할 수 있는 것은 강력하네요. 앞으로 Microservices등에서 분산해 처리를 시키는 것이 당연하게 되는 것을 생각하면, 필수의 기술이라고 말할 수 있다고 생각합니다. Spring에서 말하면 Zipkin과 Sleuth를 AWS상에서 실현하고 있는 것 같은 느낌이군요.
Reference
이 문제에 관하여(AWS X-Ray에서 Lambda → Athena 액세스를 시각화해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kojiisd/items/bfb9bd0ff5abcd2a973d
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
{
"region": "us-east-1",
"s3Path": "s3://ishida-athena-staging-dir/",
"sql": "SELECT elbname, requestip, requestport, backendip, backendport, requestprocessingtime, backendprocessingtime, timestamp FROM sampledb.elb_logs order by timestamp desc limit 10",
"columnListStr": "elbname, requestip, requestport, backendip, backendport, requestprocessingtime, backendprocessingtime, timestamp"
}
표시된 Service Map의 오른쪽에 있는 개체를 클릭하면 아래와 같은 표시가 되었습니다.
각각의 처리에 어느 정도 시간이 걸려 응답으로서 무엇을 돌려주고 있는지를 일람으로 알 수 있습니다.
표시된 ID를 클릭하면 해당 추적의 세부정보를 볼 수 있습니다.
이것을 보는 한, Lambda 앱의 초기화에 230ms 정도, 실제의 Athena 접속 부분에 약 3초 정도 걸리고 있다, 라고 하는 바람에 보면 좋을까요. 이 처리 전체로서는 4.6초 걸리고 있기 때문에, 실제로 Athena에 액세스하기 위해 이외에 1.5초 정도는 시간이 걸리고 있다, 라고 이해하면 좋을까요. 이 근처는 더 공부가 필요하다(^^;
덧붙여서 에러가 나오고 있는 경우는, 그 예외의 내용도 확인할 수 있는 것 같습니다.
요약
각각의 처리가 어느 정도 시간에 걸려 있고, 한층 더 호출 관계까지 이만큼 간단하게 셋업하면서 가시화를 할 수 있는 것은 강력하네요. 앞으로 Microservices등에서 분산해 처리를 시키는 것이 당연하게 되는 것을 생각하면, 필수의 기술이라고 말할 수 있다고 생각합니다. Spring에서 말하면 Zipkin과 Sleuth를 AWS상에서 실현하고 있는 것 같은 느낌이군요.
Reference
이 문제에 관하여(AWS X-Ray에서 Lambda → Athena 액세스를 시각화해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kojiisd/items/bfb9bd0ff5abcd2a973d
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(AWS X-Ray에서 Lambda → Athena 액세스를 시각화해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kojiisd/items/bfb9bd0ff5abcd2a973d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)