Skip to content

โœจ Feature - AWS Cost Management API Integrationย #21

@parksomii

Description

@parksomii

๐Ÿ› ๏ธ Issue Description

AWS Cost Explorer API๋ฅผ ํ™œ์šฉํ•œ ์ข…ํ•ฉ์ ์ธ ๋น„์šฉ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ AWS ์„œ๋น„์Šค๋ณ„ ๋น„์šฉ์„ ์กฐํšŒํ•˜๊ณ , ๋น„์šฉ ์˜ˆ์ธก์„ ํ†ตํ•ด ์˜ˆ์‚ฐ ๊ด€๋ฆฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋„๋ก API๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. 80๊ฐœ ์ด์ƒ์˜ AWS ์„œ๋น„์Šค๋ฅผ enum์œผ๋กœ ๊ด€๋ฆฌํ•˜์—ฌ ํƒ€์ž… ์•ˆ์ „์„ฑ๊ณผ ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ํ™•๋ณดํ–ˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ’ญ Functional role

์ด ๊ธฐ๋Šฅ์€ ์‚ฌ์šฉ์ž๊ฐ€ AWS ๋น„์šฉ์„ ํšจ์œจ์ ์œผ๋กœ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋•์Šต๋‹ˆ๋‹ค. ์‹ค์‹œ๊ฐ„ ๋น„์šฉ ์กฐํšŒ, ์„œ๋น„์Šค๋ณ„ ๋น„์šฉ ๋ถ„์„, ๋ฏธ๋ž˜ ๋น„์šฉ ์˜ˆ์ธก์„ ํ†ตํ•ด ์˜ˆ์‚ฐ ๊ณ„ํš ์ˆ˜๋ฆฝ๊ณผ ๋น„์šฉ ์ตœ์ ํ™”๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“ check-lists

  • AWS SDK v2 ์˜์กด์„ฑ ์ถ”๊ฐ€
  • Caffeine ์บ์‹œ ์˜์กด์„ฑ ์ถ”๊ฐ€
  • AwsConfig ํด๋ž˜์Šค ๊ตฌํ˜„ (Cost Explorer ํด๋ผ์ด์–ธํŠธ ์„ค์ •)
  • CacheConfig ํด๋ž˜์Šค ๊ตฌํ˜„ (1์‹œ๊ฐ„ TTL ์บ์‹œ ์„ค์ •)
  • AwsService enum ๊ตฌํ˜„ (80๊ฐœ+ AWS ์„œ๋น„์Šค, @Schema ์–ด๋…ธํ…Œ์ด์…˜)
  • CostResponse DTO ๊ตฌํ˜„ (๋น„์šฉ ์‘๋‹ต ๊ตฌ์กฐ)
  • CostForecastResponse DTO ๊ตฌํ˜„ (๋น„์šฉ ์˜ˆ์ธก ์‘๋‹ต ๊ตฌ์กฐ)
  • AwsCostService ๊ตฌํ˜„ (AWS Cost Explorer API ํ˜ธ์ถœ ๋กœ์ง)
  • AwsCostController ๊ตฌํ˜„ (7๊ฐœ REST API ์—”๋“œํฌ์ธํŠธ)
  • ์ „์ฒด ๋น„์šฉ ์กฐํšŒ API (GET /api/aws/costs/total)
  • ์„œ๋น„์Šค๋ณ„ ๋น„์šฉ ์กฐํšŒ API (GET /api/aws/costs/by-service)
  • ํŠน์ • ์„œ๋น„์Šค ๋น„์šฉ ์กฐํšŒ API (GET /api/aws/costs/service/{serviceName})
  • ๋น„์šฉ ์˜ˆ์ธก ์กฐํšŒ API (GET /api/aws/costs/forecast)
  • ์›”๋ณ„ ๋น„์šฉ ์กฐํšŒ API (GET /api/aws/costs/monthly)
  • ํ˜„์žฌ ์›” ๋น„์šฉ ์กฐํšŒ API (GET /api/aws/costs/current-month)
  • ์ง€๋‚œ 30์ผ ๋น„์šฉ ์กฐํšŒ API (GET /api/aws/costs/last-30-days)
  • AWS ๊ด€๋ จ ์—๋Ÿฌ ์ฝ”๋“œ ์ถ”๊ฐ€ (ErrorCode.java)
  • ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ๊ตฌํ˜„ (๊ตฌ์ฒด์ ์ธ AWS ์—๋Ÿฌ ๋ฉ”์‹œ์ง€)

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions