æ¬ããã°ã¯ 2025 幎 3 æ 21 æ¥ã«å
¬éããã Blog â Optimize your Amazon QuickSight implementation: a guide to usage analytics and cost management â ã翻蚳ãããã®ã§ãã çµç¹å
šäœã§ Amazon QuickSight ã®å©çšç¶æ³ãæ£ç¢ºã«ææ¡ããæé©åããããšã¯ãã³ã¹ããç¡é§ãªã管çããBI ãžã®æè³å¹æãæå€§åããããã«ãšãŠãéèŠã§ããQuickSight ã®å°å
¥ãé²ã¿ãããŸããŸãªåœ¹å²ã®ãŠãŒã¶ãŒãå©çšããããã«ãªãã«ã€ããŠãã誰ãã©ã®ããã«äœ¿ã£ãŠãããããæç¢ºã«å¯èŠåããããšã®éèŠæ§ãäžå±€é«ãŸã£ãŠããŸãã äžæ¹ã§ãå€ãã®ã客æ§ãããããŠãŒã¶ãŒã®å©çšç¶æ³ãææ¡ããã®ãé£ããããšããã声ãé ããŠãããŸããäŸãã°ããéå»90æ¥éã§è¿œå ããã ãªãŒããŒãã ã©ã€ã»ã³ã¹ã®æ°ã¯ïŒããã»ãã·ã§ã³ã®å©çšãã¿ãŒã³ã¯ã©ããªã£ãŠããã®ãïŒããšãã£ãå
容ã§ãã ããããããŒãºã«å¿ããã¹ããQuickSight ã®å©çšç¶æ³ãç°¡åã«ææ¡ããQuickSight ã®ã©ã€ã»ã³ã¹ã®æ£åžããæé©åã®æææ±ºå®ãããããŒã¿ããªãã³ã«è¡ããããã«ãããœãªã¥ãŒã·ã§ã³ãã玹ä»ããŸãã AWS CloudFormation ãã³ãã¬ãŒãã䜿ã£ãŠã以äžã®ãœãªã¥ãŒã·ã§ã³ãç°¡åã«å°å
¥ã§ããŸãã AWS Glue ãš QuickSight API ãæŽ»çšããŠãQuickSight ãŠãŒã¶ãŒæ
å ±ãèªåã§æœåº Amazon Athena ããŒãã«ãäœæããQuickSight ã¢ã«ãŠã³ãã®ãŠãŒã¶ãŒããŒã¿ãã ã³ã¹ããšäœ¿çšç¶æ³ã¬ããŒãïŒAWS CURïŒ ã«åºã¥ããéçŽãã¥ãŒã®äœæ äºåæ§ç¯ããã QuickSight ããã·ã¥ããŒããã»ããã¢ããããæ¬¡ã®ãããªã€ã³ãµã€ããæäŸ ãªãŒããŒã®å©çšç¶æ³ãšãéã¢ã¯ãã£ããŠãŒã¶ãŒã®ç¹å® ã»ãã·ã§ã³ã®æ¶è²»ãã¿ãŒã³ïŒãªãŒããŒã»å¿åãŠãŒã¶ãŒã®äž¡æ¹ïŒ SPICEïŒè¶
é«éã€ã³ã¡ã¢ãªèšç®ãšã³ãžã³ïŒãã¢ã©ãŒãããã¯ã»ã«ããŒãã§ã¯ãã¬ããŒããAmazon Q ã®å©çšç¶æ³ ã³ã¹ãæé©åã«åããã€ã³ãµã€ã å°äººæ°ã®ããŒã ã管çããŠããå Žåã§ããäŒæ¥å
šäœã«å±éããŠããå Žåã§ãããã®åæãœãªã¥ãŒã·ã§ã³ã掻çšããããšã§ãQuickSight ã®å°å
¥ç¶æ³ãææ¡ããããŒã¿ã«åºã¥ããã©ã€ã»ã³ã¹ã®æ£åžããå¯èœã«ãªããŸããããã«ãä»åŸäºå®ãããŠããäŸ¡æ Œå€æŽãžã®åãã«ããªããŸãã ãœãªã¥ãŒã·ã§ã³ã®æŠèŠ ãã®ãœãªã¥ãŒã·ã§ã³ã¯ãQuickSight ãšä»ã® AWS ãµãŒãã¹ãçµã¿åãããŠãåæçšããŒã¿ãäœæããŸããå°å
¥ãã·ã³ãã«ã«ããããã«ãå¿
èŠãªãªãœãŒã¹ããã¹ãŠèªåã§äœæãã CloudFormation ãã³ãã¬ãŒããçšæããŠããŸãã AWS Glue ãžã§ãïŒ qs-usage-users-info ãšãã Python ã·ã§ã«ã¹ã¯ãªãããæ¯æ¥å®è¡ãããããã«ã¹ã±ãžã¥ãŒãªã³ã°ãããŠãããQuickSight API ãåŒã³åºããŠãQuickSight ã¢ã€ãã³ãã£ãã£ãªãŒãžã§ã³å
ã®ãŠãŒã¶ãŒæ
å ±ãååŸããŸãã S3ãã±ããïŒGlue ãžã§ããååŸããçµæã¯ã qs-usage-{AWS::AccountId}-{AWS::Region} ãšããååã®æ°ãã Amazon Simple Storage Service (Amazon S3) ãã±ããã«ä¿åãããŸãã Athena ããŒãã«ã»ãã¥ãŒïŒäžèšã® S3 ããŒã¿ãããšã«ãAthena ããŒã¿ããŒã¹ qs-usage-db ã«ããŒãã«ãäœæãããããã« AWS ã¢ã«ãŠã³ãå
ã® ã³ã¹ããšäœ¿çšç¶æ³ã¬ããŒã (CUR) ããŒã¿ãããŒã¹ã«ãã¥ãŒãäœæãããŸãã QuickSight ããã·ã¥ããŒãïŒAthena ã®ããŒãã«ãš ãã¥ãŒ ãå
ã«ããããŒã¿ã»ããã䜿ã£ãŠãQuickSight ããã·ã¥ããŒãããããã€ãããŸãããã®ããã·ã¥ããŒããå®éã®ããŒã¿ãåã蟌ã¿ãèŠèŠçãªã€ã³ãµã€ããæäŸããŸãã äžèšã®ã¢ãŒããã¯ãã£å³ã¯ãäž»ã«æ¬¡ã®3ã€ã®ã¹ãããã§æ§æãããŠããŸãã ETLïŒæœåºã»å€æã»ããŒãïŒãžã§ãã«ãã QuickSight ãŠãŒã¶ãŒæ
å ±ã®åé AWS Glue ãæ¯æ¥ ETL ãžã§ããå®è¡ããQuickSight ã¢ã«ãŠã³ãã«ç»é²ãããŠãããŠãŒã¶ãŒæ
å ±ãåéããŸããããã«ãããåžžã«ææ°ã®æ
å ±ãæææ±ºå®è
ã®æå
ã«å±ãããã«ãªããŸãã Athena äžã«éèšãã¥ãŒãäœæããQuickSight ã®å©çšåŸåãå¯èŠå æ¢åã® ã³ã¹ããšäœ¿çšç¶æ³ã¬ããŒã (CUR) ããŒã¿ãå
ã«ãAthena ã«éèšãã¥ãŒãæ§ç¯ããŸããããã«ããããã¹ãŠã®ãããã¯ãã°ã«ãŒããæšªæããŠãQuickSight ã®å©çšç¶æ³ã俯ç°çã«ææ¡ã§ããŸãã ããŒã¿ã SPICE ã«åã蟌ã¿ãQuickSight Usage Analytics ããã·ã¥ããŒãã§å©çšç¶æ³ãåæ éããããŒã¿ã SPICE ã«ã€ã³ããŒãããããšã§ãé«éãªåæãå¯èœã«ãªããŸããQuickSight ã®äœ¿çšç¶æ³ãèŠèŠçã«åæã§ããããã·ã¥ããŒãã䜿ã£ãŠãå©çšãã¿ãŒã³ãã³ã¹ãæé©åã®ããã®ã€ã³ãµã€ããåŸãããŸãã åææ¡ä»¶ ãã®æé ãé²ããåã«ã以äžã®æºåãæŽã£ãŠããããšã確èªããŠãã ããã AWS IAMïŒIdentity and Access ManagementïŒ ã®æš©é CloudFormation ã䜿ã£ãŠ AWS ãªãœãŒã¹ãäœæããããã«ãå¿
èŠãª IAM æš©éãæã£ãŠããããšã確èªããŠãã ããã ã³ã¹ããšäœ¿çšç¶æ³ã¬ããŒã (CUR) ã®èšå® AWS Data Exports ã䜿ã£ãŠ AWS CUR ãæå¹åããŠãã ããã â» ãšã¯ã¹ããŒãã¿ã€ãã«ã€ããŠã¯ã ã¬ã¬ã·ãŒCUR ãšã¯ã¹ããŒã ã æšæºããŒã¿ãšã¯ã¹ããŒã ã®ã©ã¡ãã® CUR ã§ã察å¿å¯èœã§ãããæ¬æçš¿ã§æç€ºããŠããæé ã¯ã¬ã¬ã·ãŒCUR ãšã¯ã¹ããŒããåæãšããŠããŸããæšæºããŒã¿ãšã¯ã¹ããŒããå©çšãããå Žåã¯ãåŸè¿°ãã Athena ãã¥ãŒäœæ SQL ãä¿®æ£é ãå¿
èŠãããããŸãã 詳现ãªããŒã¿ãååŸããããã«ããªãœãŒã¹IDã®åºåãæå¹åããŠããããšãéèŠã§ãã CUR ã® Glue ããŒãã«å CUR ãã¡ã€ã«ã Amazon Simple Storage Service (Amazon S3) ã«ãšã¯ã¹ããŒããããžã§ããäœæãããŸããS3 ã«ä¿åããããã¡ã€ã«ã¯ãAWS Glue ã® ã¯ããŒã© ãªã©ã䜿ã£ãŠã«ã¿ãã°åãã Glue Data Catalog äžã®ããŒãã«ãšããŠå©çšã§ããç¶æ
ã«ããŠããå¿
èŠããããŸãããã®ããŒãã«ã¯ãåŸè¿°ã®ã¹ããã2ã§äœ¿ãããéèŠãªããŒã¿ãœãŒã¹ãšãªããŸãã 以äžã® AWS ãµãŒãã¹ã«ã¢ã¯ã»ã¹å¯èœã§ããããš AWS CloudFormation AWS Glue Amazon QuickSight Amazon S3 Amazon Athena å°å
¥ æäŸãããŠãããã³ãã¬ãŒãã䜿ãã°ããã®ãœãªã¥ãŒã·ã§ã³ã¯ 次ã®3ã€ã®ã¹ããã ã§ç°¡åã«ã»ããã¢ããããã³ãããã€ã§ããŸãã ã¹ããã 1: S3 ãã±ãããš Glue ETL ãžã§ãã®äœæ ãã® CloudFormation ãã³ãã¬ãŒãã䜿çšããéã«ã¯ãQuickSight ã®ã¢ã€ãã³ãã£ãã£ãªãŒãžã§ã³ïŒã¢ã«ãŠã³ããå±ãããªãŒãžã§ã³ïŒãæ£ããæå®ããããšãéèŠã§ãããã®ã¹ããããé©åã«è¡ãããšã§ãQuickSight ã¢ã«ãŠã³ãå
ã®ãŠãŒã¶ãŒæ
å ±ãæ£ç¢ºãã€ç¶²çŸ
çã«ååŸã§ããããã«ãªããŸãã â»ã¢ã€ãã³ãã£ãã£ãªãŒãžã§ã³ã¯å¿
é ã§ãããçç¥ããããšã¯ã§ããŸããã ãã®ãã³ãã¬ãŒãã«ãã£ãŠäœæããããªãœãŒã¹ã¯ä»¥äžã®éãã§ãã IAMããŒã«: qs-usage-glue-role-{AWS::AccountId}-{AWS::Region} QuickSight ãš Amazon S3 ã«ã¢ã¯ã»ã¹ããããã®æš©éãæã€ãAWS Glue ãžã§ãçšã® IAM ããŒã« AWS Glue ãžã§ãã® Python ã·ã§ã«ã¹ã¯ãªãã: qs-usage-users-info QuickSight API ã䜿çšããŠãŠãŒã¶ãŒæ
å ±ãååŸããã¹ã¯ãªãã AWS Glue ããªã¬ãŒ: QuickSightUsersExtractDailyTrigger äžèšã® Glue ãžã§ããç±³åœæ±éšæéïŒETïŒã§æ¯æ6æã«èªåå®è¡ããã¹ã±ãžã¥ãŒã«èšå® â» ãã¡ãã¯ãããã€å®äºåŸã«æ¥æ¬æé (JST) ã§ã®ã¹ã±ãžã¥ãŒã«èšå®ã«å€æŽããé¡ãããããŸãã S3 ãã±ãã: qs-usage-{AWS::AccountId}-{AWS::Region} QuickSight ãŠãŒã¶ãŒæ
å ±ã®æœåºçµæãä¿åããããã®å°çšãã±ãã 以äžã ãLaunch Stackã ãã¯ãªãã¯ããç»é¢ã®æç€ºã«åŸã£ãŠãããã®ãªãœãŒã¹ãäœæããŠãã ããã QuickSight ã®ã¢ã€ãã³ãã£ãã£ãªãŒãžã§ã³ãéžæããŠãã ããã ãã®ãã©ã¡ãŒã¿ã¯å¿
é ã§ãããQuickSight ã¢ã«ãŠã³ãã«ç»é²ãããŠãããŠãŒã¶ãŒæ
å ±ãååŸããããã«å¿
èŠã§ãã ãAWS CloudFormation ã«ãã£ãŠ IAM ãªãœãŒã¹ãã«ã¹ã¿ã åã§äœæãããå Žåãããããšãæ¿èªããŸããã ã«ãã§ãã¯ãå
¥ãããNext (次ãž)ããéžæããŠãã ããã ã¹ã¿ãã¯ã®äœæãå®äºããããAWS Glue ã³ã³ãœãŒã«ã«ç§»åããããã²ãŒã·ã§ã³ãã€ã³ãã ãETL Jobs (ETL ãžã§ã)ã â ãVisual ETLã ãéžæããŸãã æ¬¡ã«ã qs-usage-users-info ãžã§ããéžæãã ãRun jobã ãã¯ãªãã¯ããŠãã ãããããã«ãããæ¬¡åã®ã¹ã±ãžã¥ãŒã«å®è¡ãåŸ
ããã«ãããŒã¿ã»ãããããã«çæã§ããŸãã ETL ãžã§ãã®å®è¡ãå®äºãããšããŠãŒã¶ãŒæ
å ±ãæœåºããã qs-users-info.csv ãšãããã¡ã€ã«ãšããŠã S3 ãã±ãã qs-usage-{AWS::AccountId}-{AWS::Region} ã«ä¿åãããŸãã S3 ã³ã³ãœãŒã«ã«ç§»åãã該åœã®ãã±ããå
ã«ããŒã¿ãã¡ã€ã«ãæ£ããäœæãããŠããããšã確èªããŠãã ããã è€æ°ã® AWS ã¢ã«ãŠã³ãã§ QuickSight ã管çããŠããå Žåã§ãããã®ãœãªã¥ãŒã·ã§ã³ã䜿ãã°ãèªååããã ETL ããã»ã¹ã«ãããŠãŒã¶ãŒç®¡çãã·ã³ãã«ã«è¡ããŸãã ããããã®ãªã³ã¯æžã¿ã¢ã«ãŠã³ãã«ãã®ãã³ãã¬ãŒãããããã€ããããšã§ããã¹ãŠã® QuickSight ãŠãŒã¶ãŒããŒã¿ãäžå€®ã®ã¢ã«ãŠã³ãã«éçŽããããšãã§ããŸãã ãã®ããã«ããŒã¿ãäžå
管çããããšã§ãCURïŒã³ã¹ãïŒäœ¿çšç¶æ³ã¬ããŒãïŒãšã®é£æºã«ããå
æ¬çãªåæãå¯èœã«ãªããQuickSight ããã·ã¥ããŒããéããŠå
šç€Ÿã¬ãã«ã§ã®äœ¿çšç¶æ³ãå¯èŠåã§ããŸãã çµæãšããŠãçµç¹å
šäœã®å©çšåŸåãææ¡ãããããªããæé©åãã¢ãã¿ãªã³ã°ãæ Œæ®µã«å¹çåãããŸãã ã¹ããã2: Athena ããŒãã«ãäœæãã 2ã€ç®ã® CloudFormation ãã³ãã¬ãŒãã¯ãAthena ã«æ¬¡ã®2ã€ã®ãªããžã§ã¯ããäœæããŸãã Athena ããŒãã«: qs_users_info ãã®ããŒãã«ã«ã¯ãQuickSight ã®ã¢ã€ãã³ãã£ãã£ãªãŒãžã§ã³ã«ååšãããã¹ãŠã®ãŠãŒã¶ãŒãããã¡ã€ã«ãšãããããã®ããŒã«ãå«ãŸããŠããŸãã Athena ä¿åæžã¿ã¯ãšãª: qs_usage_cur_vw_query ãã®ã¯ãšãªã¯ãã¢ã«ãŠã³ãå
ã® AWS CUR ããŒãã«äžã«äœæãããQuickSight ã®ããŸããŸãªæ©èœïŒã¢ã©ãŒãããã¯ã»ã«ããŒãã§ã¯ãã¬ããŒããAmazon Qãã»ãã·ã§ã³æ¶è²»ãªã©ïŒã®äœ¿çšåŸåãåæããã®ã«åœ¹ç«ã¡ãŸãã ãã®ã¯ãšãªã¯ã次ã®ã¹ãããã§ Athena ã®ãã¥ãŒãäœæããéã«å©çšããŸãã 以äžã¯ãã¢ã«ãŠã³ãå
ã§ç¢ºèªã§ããä¿åæžã¿ã¯ãšãªã®äŸã§ãã CREATE OR REPLACE VIEW "AwsDataCatalog"."qs-usage-db"."qs_usage_cur_vw" AS SELECT bill_payer_account_id, line_item_usage_account_id, concat(DATE_FORMAT(line_item_usage_start_date, '%Y-%m'), '-01') AS month_line_item_usage_start_date, line_item_usage_type, CASE WHEN LOWER(line_item_usage_type) LIKE 'qs-user-enterprise%' THEN 'Users - Enterprise' WHEN LOWER(line_item_usage_type) LIKE 'qs-user-standard%' THEN 'Users - Standard' WHEN LOWER(line_item_usage_type) LIKE 'qs-reader%' THEN 'Reader Usage' WHEN LOWER(line_item_usage_type) LIKE '%spice' THEN 'SPICE' WHEN LOWER(line_item_usage_type) LIKE '%alerts%' THEN 'Alerts' WHEN LOWER(line_item_usage_type) LIKE '%-q%' THEN 'QuickSight Q' WHEN LOWER(line_item_usage_type) LIKE '%-report%' THEN 'Paginated Reporting' WHEN LOWER(line_item_usage_type) LIKE '%-reader-pro%' THEN 'Reader PRO' WHEN LOWER(line_item_usage_type) LIKE '%-author-pro%' THEN 'Author PRO' WHEN LOWER(line_item_usage_type) LIKE '%-reader-enterprise%' THEN 'Reader Usage' ELSE line_item_usage_type END AS qs_usage_type, line_item_line_item_description, line_item_line_item_type, product_group, pricing_unit, line_item_resource_id, product_usagetype, line_item_unblended_rate, line_item_blended_rate, line_item_operation, SUM(CAST(line_item_usage_amount AS DOUBLE)) AS sum_line_item_usage_amount, SUM(CAST(line_item_unblended_cost AS DECIMAL(16, 8))) AS sum_line_item_unblended_cost, SUM(CAST(line_item_blended_cost AS DECIMAL(16, 8))) AS line_item_blended_cost FROM "billing"."cur" -- This is replaced by ${CURSourceTable} with your CUR database.table name provided as Input to a parameter WHERE (CAST(year AS INTEGER) >=2024 ) AND product_product_name = 'Amazon QuickSight' AND line_item_line_item_type IN ('DiscountedUsage', 'Usage') GROUP BY bill_payer_account_id, line_item_usage_account_id, DATE_FORMAT(line_item_usage_start_date, '%Y-%m'), 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 ORDER BY month_line_item_usage_start_date ASC, sum_line_item_unblended_cost DESC ORDER BY month_line_item_usage_start_date ASC, sum_line_item_unblended_cost DESC 以äžã ãLaunch Stackã ãã¯ãªãã¯ããç»é¢ã®æç€ºã«åŸã£ãŠãããã®ãªãœãŒã¹ãäœæããŠãã ããã ãã®ã¹ã¿ãã¯ããããã€ããã«ã¯ãAWS CUR ã®ããŒã¿ããŒã¹åãšããŒãã«åãã ããŒã¿ããŒã¹å.ããŒãã«å ã®åœ¢åŒã§æå®ããå¿
èŠããããŸãïŒâ»ã¢ã«ãŠã³ãå
ã§è¡šç€ºãããŠããåç§°ã«åŸã£ãŠå
¥åããŠãã ãããïŒ ã¹ã¿ãã¯ã®ãããã€ãæ£åžžã«å®äºãããšã qs-usage-db ãšããååã®ããŒã¿ããŒã¹ãäœæãããŸãã ãã®ããŒã¿ããŒã¹ã«ã¯ãQuickSight ã¢ã«ãŠã³ãå
ã®ãã¹ãŠã®ãŠãŒã¶ãŒæ
å ±ãå«ã qs_users_info ããŒãã«ãäœæãããŠããããŠãŒã¶ãŒã®äžèЧãšãã®ããŒã«ã確èªã§ããããã«ãªããŸãã ã¹ã¿ãã¯ã«ãã£ãŠ Athena ã®ä¿åæžã¿ã¯ãšãªãäœæãããããæ¬¡ã«ãã¥ãŒãäœæããŸãã Athena ã³ã³ãœãŒã«ã«ç§»åããããã²ãŒã·ã§ã³ãã€ã³ãã ãQuery editorïŒã¯ãšãªãšãã£ã¿ãèµ·åïŒã ãéžæããŸãã ãSaved queriesïŒä¿åããã¯ãšãªïŒã ã¿ããéãã qs_usage_cur_vw_query ãšããååã®ã¯ãšãªãéžæããŠãã ããã ã¯ãšãªãšãã£ã¿ã§ ãRunïŒå®è¡ïŒã ãã¯ãªãã¯ããŠããã¥ãŒãäœæããŸãã ã¯ãšãªã®å®è¡ãå®äºãããšã qs_usage_cur_vw ãšããååã®ãã¥ãŒã Athena ã«äœæãããŸãããã®ãã¥ãŒã«ã¯ãQuickSight ããã·ã¥ããŒãã§ã®åæã«å¿
èŠãª AWS CUR ããŒã¿ããã¹ãŠå«ãŸããŠããã詳现ãªå©çšç¶æ³ã®ææ¡ã«åœ¹ç«ã¡ãŸãã Athena ãžã®ã¢ã¯ã»ã¹ãæå¹ã«ããQuickSight ã«å¯Ÿã㊠S3 ãã±ãã qs-usage-{AWS::AccountId}-{AWS::Region} ãžã®ã¢ã¯ã»ã¹æš©éãä»äžããããã以äžã®æé ã宿œããŸãã QuickSight ã³ã³ãœãŒã«ã«ã¢ã¯ã»ã¹ããç»é¢å³äžã«è¡šç€ºãããŠãããŠãŒã¶ãŒåãã¯ãªãã¯ããŸãã ããããããŠã³ã¡ãã¥ãŒãã ãManage QuickSight (QuickSight ã管ç)ã ãéžæããŸãã å·ŠåŽã®ããã²ãŒã·ã§ã³ãã€ã³ãã ãSecurity & PermissionsïŒã»ãã¥ãªãã£ãšã¢ã¯ã»ã¹èš±å¯ïŒã ãã¯ãªãã¯ããŸãã ã管çã ãã¯ãªãã¯ããAmazon Athena ã®ãã§ãã¯ããã¯ã¹ãæå¹ã«ããŸãã åæ§ã« ãAmazon S3ã ãã¯ãªãã¯ããCURãæ ŒçŽãããŠãããã±ããã«ãã§ãã¯ãå
¥ããŸãã ã¹ããã3: QuickSight ããŒã¿ã»ãããšããã·ã¥ããŒãããããã€ãã 3ã€ç®ã® CloudFormation ã¹ã¿ãã¯ã§ã¯ãQuickSight ã«ä»¥äž 3ã€ã®ããŒã¿ã»ãããäœæããŸãã qs_usage_cur_vw ïŒAthena ã®ãã¥ãŒã«å¯Ÿå¿ããããŒã¿ã»ãã qs_users_info ïŒAthena ã®ããŒãã«ã«å¯Ÿå¿ããããŒã¿ã»ãã qs-usage-custom-inactive ïŒAthena ã®ããŒãã«ãšãã¥ãŒãåç
§ããŠãQuickSight ã¢ã«ãŠã³ãå
ã®éã¢ã¯ãã£ããªãŠãŒã¶ãŒãç¹å®ããããã®ããŒã¿ã»ãã ãã®ããŒã¿ã»ããã®äœæã«ã¯ã以äžã®ãããªãµã³ãã«ã¯ãšãªã䜿çšãããŠããŸãã SELECT u.userarn,u.username,u.useremail,u.userrole,u.useridentitytype,u.usernamespace,CAST(COALESCE(a.last_login, DATE '2020-01-01') AS DATE) as last_login FROM "AwsDataCatalog"."qs-usage-db"."qs_users_info" u LEFT JOIN ( SELECT line_item_resource_id, MAX(date_parse(month_line_item_usage_start_date, '%Y-%m-%d')) as last_login FROM "AwsDataCatalog"."qs-usage-db"."qs_usage_cur_vw" WHERE ( product_group = 'Reader Usage' OR product_group = 'Reader Subscription' ) AND LOWER(line_item_resource_id) NOT LIKE '%anonymous%' GROUP BY line_item_resource_id ) a ON u.userarn = a.line_item_resource_id WHERE u.userrole = 'READER' ãããŠã3ã€ã®ããŒã¿ã»ãããããšã«ããã³ãã¬ãŒãã ãQuickSight Usage Analytics Dashboardã ãèªåçã«äœæãããªãŒããŒã¢ã«ãŠã³ãã®ã¢ã¯ãã£ããã£ãªã©ãå¯èŠåããŸãããã®ããã·ã¥ããŒããæŽ»çšããããšã§ãQuickSight ã¢ã«ãŠã³ãå
ã§éã¢ã¯ãã£ã㪠ãªãŒããŒã¢ã«ãŠã³ããç¹å®ããã©ã€ã»ã³ã¹ã®æé©åãªã©ã«åœ¹ç«ãŠãããšãã§ããŸãã 以äžã ãLaunch Stackã ãã¯ãªãã¯ããŠãQuickSight ã®ããŒã¿ã»ãããšããã·ã¥ããŒãããããã€ããŠãã ããã ãã®éãQuickSight 管çè
ãŠãŒã¶ãŒã® ARNã以äžã®åœ¢åŒã§æå®ããå¿
èŠããããŸãã arn:aws:quicksight:us-east-1:12345678910:user/default/admin/xyz â»äžèšã®äŸã«ãã AWS ã¢ã«ãŠã³ãIDïŒ12345678910ïŒããªãŒãžã§ã³ïŒus-east-1ïŒãããã³ ãŠãŒã¶ãŒåïŒadmin/xyzïŒ ã¯ãããŒïŒãã¬ãŒã¹ãã«ããŒïŒã§ãããèªèº«ã®ç°å¢ã«åãããå®éã®å€ã«çœ®ãæããŠå
¥åããŠãã ããã 3ã€ã®ã¹ã¿ãã¯ã®ãããã€ããã¹ãŠæ£åžžã«å®äºãããšãSPICE ããŒã¿ã»ããã®æŽæ°ã¹ã±ãžã¥ãŒã«ãã奜ã¿ã®é »åºŠã§èšå®ã§ããããã«ãªããŸãããŸããäœæãããããã·ã¥ããŒãããçµç¹å
ã®é©åãªã¡ã³ããŒãšå
±æããããšãå¯èœã§ããããã«ãããåžžã«ææ°ã®å©çšç¶æ³ãåºã«ããåæãæææ±ºå®ãè¡ããããã«ãªããŸãã ãã®ããã·ã¥ããŒãã«ã¯ 5ã€ã®ã·ãŒãããããã·ãŒã ã¬ã¹ã«ç»é¢ãè¡ãæ¥ã§ããæ§æã«ãªã£ãŠããŸããåã·ãŒããã¯ãªãã¯ããã ãã§ãç°¡åã«å¥ã®ãã¥ãŒãžç§»åã§ããŸãã 以äžã®å³ã«ç€ºãããŠããããã·ã¥ããŒããã¥ãŒã§ã¯ãQuickSight ã¢ã«ãŠã³ãå
šäœã®äž»èŠãª KPIïŒéèŠæ¥çžŸè©äŸ¡ææšïŒ ãå©çšç¶æ³ã®æŠèŠãææ¡ã§ããŸãã 以äžã®å³ã«ç€ºãããŠããããã·ã¥ããŒããã¥ãŒã§ã¯ããªãŒããŒã»ãã·ã§ã³ã®å©çšç¶æ³ïŒãã£ãã·ãã£äœ¿çšéïŒã«é¢ãã詳现ãããã¹ãŠã®ãªã³ã¯æžã¿ã¢ã«ãŠã³ãã®ãªãœãŒã¹æ
å ±ã確èªããããšãã§ããŸãã 以äžã®å³ã«ç€ºãããŠããããã·ã¥ããŒããã¥ãŒã§ã¯ãã¢ã©ãŒããã¬ããŒãæ©èœãSPICEãPROãŠãŒã¶ãŒãªã©ã®åçš®æ©èœã®å©çšç¶æ³ãããã詳现ã«ç¢ºèªã§ããŸããããã«ããã¹ãŠã®ãªã³ã¯æžã¿ã¢ã«ãŠã³ãã«ããã該åœãªãœãŒã¹ã®æ
å ±ãããããŠè¡šç€ºãããŸãã 以äžã®å³ã«ç€ºãããŠããããã·ã¥ããŒããã¥ãŒã§ã¯ãQuickSight ã¢ã«ãŠã³ãå
ã«ååšãããã¹ãŠã®ãŠãŒã¶ãŒäžèЧã衚瀺ãããŸãã 以äžã®å³ã«ç€ºãããŠããããã·ã¥ããŒããã¥ãŒã§ã¯ããã¹ãŠã®ãªã³ã¯æžã¿ã¢ã«ãŠã³ãã«ããããã¢ã¯ãã£ããªç»é²æžã¿ãªãŒããŒãŠãŒã¶ãŒã®æ
å ±ã衚瀺ãããŸãããã®æ
å ±ãããšã«ãéã¢ã¯ãã£ããªãªãŒããŒã¢ã«ãŠã³ãã®äžèЧãèªåçã«æœåºãããå¿
èŠã«å¿ããŠã©ã®ãŠãŒã¶ãŒãåé€ãã¹ãã倿ããéã®åèãšããŠæŽ»çšã§ããŸãã ã¯ãªãŒã³ã¢ãã ãã®ãœãªã¥ãŒã·ã§ã³ã§äœæããããã¹ãŠã®ãªãœãŒã¹ãåé€ããæé ã«ã€ã㊠1. ããã·ã¥ããŒãã¹ã¿ãã¯ã®åé€ QuickSight ã®åçš®ãªãœãŒã¹ããããã€ãã CloudFormation ã¹ã¿ãã¯ïŒããã©ã«ãå㯠qs-usage-dashboard-stack ããŸãã¯ãããã€æã«æå®ããã«ã¹ã¿ã åïŒãåé€ããŸããããã«ããã以äžãåé€ãããŸãã QuickSight ããã·ã¥ããŒã: QuickSight Usage Analytics Dashboard 3ã€ã®ããŒã¿ã»ãã: qs-usage-custom-inactive ã qs-usage-cur-vw ã qs-users-info QuickSight ã®ããŒã: qs-usage-theme QuickSight ã® Athena ããŒã¿ãœãŒã¹æ¥ç¶: qs-usage 2. Athena ãªããžã§ã¯ãã®ã¹ã¿ãã¯ã®åé€ Athena ãªãœãŒã¹ãäœæãã CloudFormation ã¹ã¿ãã¯ïŒããã©ã«ãå㯠qs-usage-athena-stack ãŸãã¯ã«ã¹ã¿ã åïŒãåé€ããŸããããã«ããã以äžã®ãªãœãŒã¹ãåé€ãããŸãã ä¿åæžã¿ã¯ãšãª: qs_usage_cur_vw_query ããŒãã«: qs_users_info ãã¥ãŒ: qs_usage_cur_vw Athena ããŒã¿ããŒã¹: qs-usage-db 3. AWS Glue ãžã§ããš S3 ãã±ããã®ã¹ã¿ãã¯ã®åé€ ãŸããS3 ãã±ãã qs-usage-{AWS::AccountId}-{AWS::Region} ã®äžèº«ã空ã§ããããšã確èªããŠãã ããããã®åŸãGlue ãžã§ããªã©ã®åºç€ã€ã³ãã©ãäœæãã CloudFormation ã¹ã¿ãã¯ïŒããã©ã«ãå㯠qs-usage-glue-stack ãŸãã¯ã«ã¹ã¿ã åïŒãåé€ããŸããããã«ããã以äžãåé€ãããŸãã Glue ãžã§ã qs-usage-users-info Glue ããªã¬ãŒ QuickSightUsersExtractDailyTrigger IAM ããŒã« qs-usage-glue-role-{AWS::AccountId}-{AWS::Region} S3 ãã±ãã qs-usage-{AWS::AccountId}-{AWS::Region} â»ãã®ã¯ãªãŒã³ã¢ããäœæ¥ã¯ãæ¢åã® AWS CUR ã®èšå®ã QuickSight ãµãã¹ã¯ãªãã·ã§ã³ã«ã¯åœ±é¿ããŸããã ãŸãšã æ¬æçš¿ã§ã¯ãAmazon QuickSight ã®å©çšç¶æ³ãå¯èŠåããç¹ã«ãªãŒããŒã¢ã«ãŠã³ãã«é¢ããã³ã¹ãæé©åæ¹æ³ãã玹ä»ããŸããã ã³ã¹ããšäœ¿çšç¶æ³ã¬ããŒã (CUR) ã®ããŒã¿ã掻çšããããŒã¿åéã®ããã»ã¹ãèªååããããšã§ã以äžãå¯èœã«ãªããŸãã ãªãŒããŒã®å©çšç¶æ³ãææ¡ããæŽ»çšãããŠããªãã¢ã«ãŠã³ããç¹å® SPICEãã¢ã©ãŒããAmazon Qããã¯ã»ã«ããŒãã§ã¯ãã¬ããŒããªã©ãQuickSight æ©èœããšã®äœ¿çšåŸåãåæ æäŸãããŠãã CloudFormation ãã³ãã¬ãŒãã䜿ãã°ã容æã«æ¬ãœãªã¥ãŒã·ã§ã³ãç°å¢ã«ãããã€ã§ããQuickSight ã®å©çšç¶æ³ã äžå
çã«å¯èŠå ã§ããããã«ãªããŸããBI ã®å°å
¥èŠæš¡ãæ¡å€§ããäžã§ãããããèªååããã䜿çšç¶æ³åæããŒã«ã¯ãã³ã¹ãå¹çãä¿ã€ããã«ãŸããŸãéèŠãªååšãšãªã£ãŠããŠããŸãã ã質åããæèŠãããã°ããã²ã³ã¡ã³ãããå¯ããã ããã ãŸããããã«æ
å ±äº€æã質åããããå Žåã¯ã QuickSight ã³ãã¥ãã㣠ããã²ã掻çšãã ããã æ¬ããã°ã¯ ãããã§ãã·ã§ãã«ãµãŒãã¹æ¬éšã® 西柀 ã翻蚳ããŸããã