(요약) AWS Graviton과 함께하는 계획문제 최적화 애플리케이션 개발

개발자 생존기·2023년 7월 14일
0

AWS

목록 보기
3/4

https://www.slideshare.net/awskorea/aws-summit-seoul-2023-aws-graviton

AWS Graviton 프로세서는 CPU, 메모리, 스토리지, 네트워킹에 워크로드에 최적화된 솔루션을 제공하고 있습니다. (AWS가 직접 설계)

특히 계획문제와 같이 한정된 자원에 대한 최적의 조합을 탐색하는 워크로드의 경우 연산에 최적화된 인스턴스의 선택이 효과적입니다.

이번 세션에서는 배송 경로 최적화 솔루션에서 AWS Graviton 인스턴스를 활용하여 적은 비용으로 더 높은 성능을 얻은 사례와 함께 AWS Graviton 도입을 위한 노하우를 공유해 드립니다.

  • AWS가 설계한 64bit Arm 기반 프로세서




  • Gravition2 기반 EC2인스턴스

    • 컴퓨팅 집약적인 c6g~ 를 타겟으로 해야 함
  • Gravition3 기븐 EC2 인스턴스는 아직 없음

    -찾아보면 c6g까지밖에 없음

  • 역시 윈도우 운영체제는 없음 (LO의 경우 현재 윈도우서버에서 제공 중)

계획문제 최적화 어플리케이션 개발 사례


목표 : 가장 적은 비용 (=가장 적은 차량 및 이동 거리)
제약조건 :

  • 차량: 저상트럭(진입로), 사전에 허가받은 차량(군대)
  • 시간: 오전 배송 요구, 오후 배송 요구

4% 성능 향상, 20% 절감 비용 --> 획기적이라고 하기에는 살짝 애매하다.

주요 ec2 시간당 비용 비교

ec2명설명시간당 비용
c6i.2xlarge3세대 인텔 제온 스케일러블 프로세서0.384$
c6g.2xlarge2세대 gravition0.308$
c5.2xlargeAMD EPYC 프로세서0.384$

솔루션 개발 과정은 우리와 유사하다.

지리 정보 전처리 과정은 내부적으로 OSM(Open Street Map)기반의 OSRM(Open Source Routing Engine)을 구축

  • 100 개 기종점 간 distance, duration을 가져오는데 1초 정도 시간이 소요된다. (다만 국내의 경우 정확하지 않음)
  • 실제 운영 데이터를 통해 지리 정보를 지속적으로 업데이트하는 flow필요

지속적으로 작업 순서를 바꾸어 최적의 해를 도출한다.

  • Move는 "Change"와 "Swap" 위주로 한듯...

지리정보의 전처리와 경로최적화 작업이 독립적, 병렬적으로 실행될 수 있어 보인다.

  • 수초 내 기종점 간 거리와 시간을 계산하기 때문에 순차적으로 실행되어도 큰 문제는 없어 보임

ECS의 용량공급자 설정으로 GRAVITION 활용

  • 오토스케일링을 사용하여 클러스터에 등록된 EC2 인스턴스 관리


Docker BuildX

  • Buildx는 여러 다른 플랫폼 용으로 빌드하는 기능 등을 포함하는 CLI 확장 플러그인으로 19.03 버전 부터 사용할 수 있습니다. 아직은 experimental feature로 제공되고 있기 때문에 사용하려면 해당 기능을 직접 활성화 해야합니다.



작업 코드는 여기
https://github.com/aws-samples/delivery-routes-optimization-for-logistics

profile
NP-Hard 문제를 풀어봅니다.

0개의 댓글