Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[+Price] AWS Cloud Driver Implementation #986

Merged

Conversation

raccoon-mh
Copy link
Member

@raccoon-mh raccoon-mh commented Dec 18, 2023

[+Price] AWS Cloud Driver Implementation #968
#968

AWS Driver Docs

AWS Price Information Web

  • As described in the AWS web documentation:
    • Step 1: Find available AWS services -> Step 2: Find values available for attributes -> Step 3: Find products through attributes
    • You can search for Price Info in this order.

AWS Driver Notes

  • ListProductFamily

    • When returning Product information as an array, you can check the AttributeNames array with cblogger.Info().
  • GetPriceInfo

    • Verifies the correctness of Product information. Attributes are not separately inspected, indicating a need for potential enhancements.
    • Filters are provided in the form of {Key: "filter", Value: "{\"Field\":\"instanceType\",\"Type\":\"TERM_MATCH\",\"Value\":\"t2.nano\"}"}
      • Field / Type / Value are provided as key-value pairs.
      • Use the following CLI command to confirm attribute values separately:
        • Example: aws pricing get-attribute-values --service-code AmazonEC2 --attribute-name instanceType
    • Returns Currency based on USD, and if USD is not provided, the first encountered Currency is returned.

AWS 드라이버 Docs

AWS price info web

  • 위 AWS 웹 설명서에서 보면
    • 1단계: 사용 가능한 AWS 서비스 찾기 -> 2단계: 속성에 사용 가능한 값 찾기 -> 3단계: 속성을 통해 제품 찾기
    • 순서로 Price Info를 검색할 수 있음.

AWS 드라이버 특이사항

  • ListProductFamily

    • Product 정보를 배열로 리턴할떄, cblogger.Info()로 AttributeNames 배열을 확인할 수 있음
  • GetPriceInfo

    • Product 정보가 옳바른지 확인함. attribute는 별도로 검사하지 않음. -> 보완 필요성 고려됨.
    • filter 는 {Key: "filter", Value: "{\"Field\":\"instanceType\",\"Type\":\"TERM_MATCH\",\"Value\":\"t2.nano\"}"} 같은 형태로
      • Field / Type / Value 를 Key-value 형태로 제공
      • 별도 attribute-values 확인을 위해 CLI에서 다음 명령어를 활용
        • ex) aws pricing get-attribute-values --service-code AmazonEC2 --attribute-name instanceType
    • USD를 기준으로 Currency 리턴하며, USD가 제공되지 않을 경우에만 최초로 등장하는 Currency 가 리턴

@powerkimhub powerkimhub self-requested a review December 18, 2023 01:54
@powerkimhub
Copy link
Member

@raccoon-mh

  • build 오류 발생하는 걸로 보입니다.
  • 확인 부탁드립니다.

Build err amd64 container image cloud-barista#477 fix
@raccoon-mh
Copy link
Member Author

@powerkimhub

  • 다른 CSP 드라이버 개발(Alibaba, Tencent)과 일부 섞여서 문제 발생했던 것으로 보입니다.
  • 해당 문제시 되는 부분 롤백하여 다시 PR 했습니다.

@powerkimhub
Copy link
Member

  • 혹시, AWS만 분리해서 드라이버별로 PR 가능하신지요?
  • 분리가 힘드실까요? 관련된 의견이 있으시면 공유 부탁 드립니다.

@raccoon-mh
Copy link
Member Author

  • 혹시 conflict 발생하나요?
  • PR 드린 브랜치는 AWS Price 드라이버만 담고 있습니다.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • 특별한 사유가 없다면 주석 처리 해제 부탁드립니다.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • 테스트 하며 잠시 오류가 있어 주석 처리 했었습니다.
  • 주석처리 해제하였습니다.

@@ -79,6 +79,6 @@ type PricingPolicyInfo struct {
}

type PriceInfoHandler interface {
ListProductFamily(regionName string) ([]string, error)
ListProductFamily(targetRegion string) ([]string, error)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • targetRegion으로 수정해야하는지요?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • 문제 없습니다.
  • regionName 으로 변경했습니다.

@raccoon-mh
Copy link
Member Author

  • sku를 필터로 사용하여 단건 조회 하는 예제 TestResource.go에 첨부하였습니다.
  • 추가로 Filter를 required로 놓지 않고, Region 아래 Product 에 대한 모든 Price Data List가져올 수 있도록 하였습니다.

@powerkimhub
Copy link
Member

  • sku를 필터로 사용하여 단건 조회 하는 예제 TestResource.go에 첨부하였습니다.
  • 추가로 Filter를 required로 놓지 않고, Region 아래 Product 에 대한 모든 Price Data List가져올 수 있도록 하였습니다.
  • 캄사합니다.
  • 서버 통합 시험 시 활용하도록 하겠습니다.

@powerkimhub powerkimhub merged commit 80ee284 into cloud-barista:master Dec 19, 2023
3 checks passed
@powerkimhub powerkimhub linked an issue Dec 22, 2023 that may be closed by this pull request
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[+Price] AWS Cloud Driver Implementation
4 participants