11æ26æ¥ãããæ°ãã AWS ç¡æå©çšæ API ã䜿çšããŠã AWS ç¡æå©çšæ ã®äœ¿çšç¶æ³ã確èªã§ããŸããAPI 㯠AWS ã³ãã³ãã©ã€ã³ã€ã³ã¿ãŒãã§ã€ã¹ (AWS CLI) ã§çŽæ¥äœ¿çšããããšãã AWS SDK ã䜿çšããŠã¢ããªã±ãŒã·ã§ã³ã«çµ±åããããšãã§ããŸãã AWS ç¡æå©çšæ ããã°ã©ã ã§ã¯ãåãµãŒãã¹ã«æå®ãããäžéãŸã§ãAWS ãµãŒãã¹ãç¡æã§è©Šçšã§ããŸããAWS ç¡æå©çšæ ã«ã¯ã 次㮠3 çš®é¡ã®ãµãŒãã¹ãå«ãŸããŸãã åžžæç¡æ ãªãã¡ãŒã«ãããã客æ§ã AWS ãŠãŒã¶ãŒã§ããéããæå®ãããå¶éãŸã§ç¡æã§ãµãŒãã¹ã䜿çšã§ããŸãã 12 ãæéã®ç¡æãªãã¡ãŒ ã«ãããã客æ§ã¯ã¢ã«ãŠã³ããæå¹ã«ãªã£ãæ¥ãã 1 幎éãæå®ãããäžéãŸã§ç¡æã§ãµãŒãã¹ã䜿çšã§ããŸãã çæãã©ã€ã¢ã« ã¯ããµãŒãã¹ã«å¿ããŠãç¹å®ã®æéããŸãã¯1åéãã®å¶éãŸã§ç¡æã§å©çšã§ããŸãã AWS ãªãœãŒã¹ãæå¹ã«ããŠãç¡æå©çšæ ãæäŸãã AWS ãµãŒãã¹ãšããåããå§ããããç¡æå©çšæ ã®äžéãŸã§ã®é²æç¶æ³ã远跡ããŠããã€åŸéå¶æéã«åãæ¿ããã¹ããããããããã«ããå¿
èŠããããŸãã AWS ç¡æå©çšæ ã®äœ¿çšç¶æ³ã远跡ããæ¹æ³ã¯ããã€ããããŸãã AWS Billing and Cost Management ã³ã³ãœãŒã«ã® è«æ±èšå® ã«ãã䜿çšç¶æ³ã¢ã©ãŒãã¯ããã©ã«ãã§æå¹ã«ãªã£ãŠãã (ã¢ã«ãŠã³ãã AWS Organizations çµç±ã§äœæãããå Žåãé€ã)ãåãµãŒãã¹ã®ç¡æå©çšæ ã®äžéã® 85% ãè¶
ãããšã¡ãŒã«ãéä¿¡ãããŸãã è«æ±ãšã³ã¹ã管çã³ã³ãœãŒã«ã® äºç® ã»ã¯ã·ã§ã³ ã§ãè²»çšãŒãã®äºç®ãŸãã¯æé¡è²»çšã®äºç®ãäœæã§ããŸãããã³ãã¬ãŒãã䜿çšãããšãæ°åã¯ãªãã¯ããŠéç¥ããã¡ãŒã«ã¢ãã¬ã¹ãå
¥åããã ãã§æžã¿ãŸãã Billing and Cost Management ã³ã³ãœãŒã«ã® ç¡æå©çš æ ããŒãž ã«ã¯ããµãŒãã¹ããªãã¡ãŒã®ã¿ã€ããçŸåšã®äœ¿çšéãçŸåšã®è«æ±æéã«ãããåãªãã¡ãŒã®äºæž¬äœ¿çšéã衚瀺ãããŸãã æ°ãã GetFreeTierUsage API ã¯ãããã°ã©ã ã§äœ¿çšã§ããæ§é åããã圢åŒã§ãç¡æå©çšæ ããŒãžãšåãæ
å ±ãæäŸããŸãã ãã®æ°ãã API ãå®éã«ã©ã®ããã«æ©èœããã®ããèŠãŠã¿ãŸãããã AWS CLI ã§ AWS ç¡æå©çšæ ã® API ã䜿çšãã é廿°ãæéã«äœæãããæ°ããã¢ã«ãŠã³ãã«ã¢ã¯ã»ã¹ã§ããŸãããããã§ã¯ã AWS ã³ãã³ãã©ã€ã³ã€ã³ã¿ãŒãã§ã€ã¹ (AWS CLI) ã䜿çšã㊠GetFreeTierUsage API ãåŒã³åºããŠããŸãã aws freetier get-free-tier-usage ã¬ã¹ãã³ã¹ã¯ããã®è«æ±æéäžã«ãã®ã¢ã«ãŠã³ãã«é©çšãããåãªãã¡ãŒã®çŸåšã®äœ¿çšéã®èª¬æãå«ã JSON ããã¥ã¡ã³ãã§ããããããããããããã«ãããã§ã¯ããã€ãã®ãªãã¡ãŒã®ã¿ã瀺ããŸãã { "freeTierUsages": [ { "service": "Amazon Simple Queue Service", "operation": "", "usageType": "Requests", "region": "global", "actualUsageAmount": 294387.0, "forecastedUsageAmount": 679354.6153846154, "limit": 1000000.0, "unit": "Requests", "description": "1000000.0 Requests are always free per month as part of AWS Free Usage Tier (Global-Requests)", "freeTierType": "Always Free" }, { "service": "Amazon Elastic Compute Cloud", "operation": "", "usageType": "EBS:VolumeUsage", "region": "global", "actualUsageAmount": 9.0, "forecastedUsageAmount": 33.0, "limit": 30.0, "unit": "GB-Mo", "description": "30.0 GB-Mo for free for 12 months as part of AWS Free Usage Tier (Global-EBS:VolumeUsage)", "freeTierType": "12 Months Free" }, { "service": "Amazon Elastic Compute Cloud", "operation": "RunInstances:0002", "usageType": "BoxUsage:freetier.micro", "region": "global", "actualUsageAmount": 476.0, "forecastedUsageAmount": 851.0, "limit": 750.0, "unit": "Hrs", "description": "750.0 Hrs for free for 12 months as part of AWS Free Usage Tier (Global-BoxUsage:freetier.micro)", "freeTierType": "12 Months Free" }, { "service": "Amazon Elastic Compute Cloud", "operation": "RunInstances", "usageType": "BoxUsage:freetier.micro", "region": "global", "actualUsageAmount": 225.0, "forecastedUsageAmount": 485.0, "limit": 750.0, "unit": "Hrs", "description": "750.0 Hrs for free for 12 months as part of AWS Free Usage Tier (Global-BoxUsage:freetier.micro)", "freeTierType": "12 Months Free" }, { "service": "Amazon Redshift", "operation": "RunComputeNode:0001", "usageType": "Node:dc2.large", "region": "global", "actualUsageAmount": 367.0, "forecastedUsageAmount": 735.0, "limit": 750.0, "unit": "Hrs", "description": "750.0 Hrs for free per month during a short-term trial as part of AWS Free Usage Tier (Global-Node:dc2.large)", "freeTierType": "Free Trial" }, ... ] } FreeTierUsages ãªã¹ãã«ã¯ãæãäžè¬çãªãªãã¡ãŒãããã€ãå«ãŸããŠããŸãã Amazon Elastic Compute Cloud (Amazon EC2) åãã® 2 ã€ã®ã³ã³ãã¥ãŒãã£ã³ã°ãªãã¡ãŒã ãªãã¬ãŒã·ã§ã³ RunInstances:0002 ã®ãªãã¡ãŒã¯ Windows åãã§ãã ãªãã¬ãŒã·ã§ã³ RunInstances ã®ãªãã¡ãŒã¯ Linux åãã§ãã ãªãã¬ãŒã·ã§ã³ ããããã£ã®å€ã¯ã Amazon EC2 ã³ã³ãœãŒã« ã® [ã€ã³ã¹ã¿ã³ã¹] ãŸã㯠[AMI] ããŒãžã«è¡šç€ºããããã©ãããã©ãŒã ã®è©³çްããã³äœ¿çšãªãã¬ãŒã·ã§ã³ãšåãã§ãã詳现ã«ã€ããŠã¯ãã Amazon EC2 ãŠãŒã¶ãŒã¬ã€ãã® AMI è«æ±æ
å ±ãã£ãŒã«ã ããåç
§ããŠãã ããã Amazon Elastic Block Store (Amazon EBS) 容éåãã® 1 ã€ã®ã¹ãã¬ãŒãžãªãã¡ãŒããããš 2 ã€ã® Amazon EC2 ã³ã³ãã¥ãŒãã£ã³ã°ãªãã¡ãŒã® FreeTierType 㯠12 ãæéç¡æ ã§ãã Amazon Simple Queue Service (Amazon SQS) åãã® åžžæç¡æ ãªãã¡ãŒã Amazon Redshift ã® ç¡æãã©ã€ã¢ã« (çæ) ãªãã¡ãŒã ãããã®ãªãã¡ãŒã®ããã€ãã®ããããã£ãèŠãŠã¿ãŸãããã 説æ ã«ã¯ããªãã¡ãŒã®å
容ããããããã説æãããŠããŸãã FreeTierType ã¯ã åžžæç¡æ ã 12 ãæç¡æ ã ç¡æãã©ã€ã¢ã« (çæ) ã®ããããã®ãªãã¡ãŒã®çš®é¡ã瀺ããŸãã ãŠããã ã¯ããªãã¡ãŒã®äœ¿çšç¶æ³ã枬å®ããããã«äœ¿çšãããåäœã衚ããŸããããšãã°ãEC2 ã€ã³ã¹ã¿ã³ã¹ã®å Žå㯠Hrs (æé)ãEBS ããªã¥ãŒã ã®å Žå㯠GB-MO (1 ãæãããã® GB)ãAmazon SQS ã®å Žå㯠ãªã¯ãšã¹ã ãªã©ã§ãã è峿·±ãã®ããããã£ã¯ããªãã¡ãŒã®äžé ( limit )ããªãã¡ãŒã®å®éã®äœ¿çšé ( actualUsageAmount )ãè«æ±æéã®çµãã (åœæ) ã®äºæž¬äœ¿çšé ( forecastedUsageAmount ) ã® 3 ã€ã§ãããããã¯ãã¹ãŠããªãã¡ãŒã§äœ¿çšãããåäœã«åºã¥ããŠããŸããããšãã°ãWindows ãš Linux ã®ã³ã³ãã¥ãŒãã£ã³ã°ãªãã¡ãŒã«ã¯ããããã 1 ãæããã 750 æéãšããå¶éããããŸããã¹ãã¬ãŒãžãµãŒãã¹ã®äžé㯠1 ãæããã 30 GB ã§ããAmazon SQS ã®å Žåããªãã¡ãŒã®äžé㯠1 ãæããã 100 äžãªã¯ãšã¹ãã§ãã å¶éãšç¡æã§æäŸããããµãŒãã¹ã®è©³çްã«ã€ããŠã¯ãåã«ãŒãã® AWS ç¡æå©çšæ ããŒãžãšåãµãŒãã¹ã®æéããŒãžã«èšèŒãããŠããŸããAWS ç¡æå©çšæ ã® API ã§æäŸãããå®éã®äœ¿çšéãšäºæž¬äœ¿çšéã¯ã AWS ã³ã¹ããšäœ¿çšç¶æ³ã¬ããŒã ãšåæ§ã«ã1 æ¥ã«ã€ã 3 åãŸã§ãšæšå®ãããŸãã äºæž¬ããã䜿çšéããªãã¡ãŒã®äžéãè¶
ããå Žåãããåãæ¹æ³ã§ãµãŒãã¹ãåŒãç¶ã䜿çšããã®ã§ããã°ãè«æ±æéã®çµäºåã«åŸéå¶æéã«åãæ¿ããäºå®ã§ããäžéã«éãããšãå®éã®äœ¿çšé㯠GetFreeTierUsage API ã«ãã£ãŠè¿œè·¡ãããªããªããŸããã€ãŸããå®éã®äœ¿çšéãäžéãè¶
ããããšã¯ã§ããŸããããã®å Žåã察å¿ãããªãã¡ãŒã¯ API ããè¿ãããŸããã ããšãã°ãAWS CLI ã® --query ãªãã·ã§ã³ã䜿çšããŠãäºæž¬ãå¶éãè¶
ãããªãã¡ãŒãæ¢ããŸãã aws freetier get-free-tier-usage --query 'freeTierUsages[?forecastedUsageAmount > limit]' { "freeTierUsages": [ { "service": "Amazon Elastic Compute Cloud", "operation": "", "usageType": "EBS:VolumeUsage", "region": "global", "actualUsageAmount": 9.0, "forecastedUsageAmount": 33.0, "limit": 30.0, "unit": "GB-Mo", "description": "30.0 GB-Mo for free for 12 months as part of AWS Free Usage Tier (Global-EBS:VolumeUsage)", "freeTierType": "12 Months Free" }, { "service": "Amazon Elastic Compute Cloud", "operation": "RunInstances:0002", "usageType": "BoxUsage:freetier.micro", "region": "global", "actualUsageAmount": 476.0, "forecastedUsageAmount": 851.0, "limit": 750.0, "unit": "Hrs", "description": "750.0 Hrs for free for 12 months as part of AWS Free Usage Tier (Global-BoxUsage:freetier.micro)", "freeTierType": "12 Months Free" } ] } ãã®çµæã«ãããšãç¡æå©çšæ ã®å¶éå
ã«ãšã©ãŸãããå Žåã¯ãEBS ããªã¥ãŒã ãš Windows ã§ã® Amazon EC2 ã³ã³ãã¥ãŒãã£ã³ã°ã®äœ¿ç𿹿³ã確èªã§ããŸãã ããšãã°ãçŸåšãWindows EC2 ã€ã³ã¹ã¿ã³ã¹ã§ã¯ã1 ãæã§å©çšå¯èœãª 750 æéã®ãã¡ 476 æéã䜿çšããŠããŸãããã®ããŒã¹ã§ã¯ãéçãè¶
ããŠçŽ 851 æéã«éãããšäºæž¬ãããŠããŸããã³ã¹ããæ°ã«ãªãå Žåã¯ã䜿çšããŠããªããšããå€éã« Windows ã€ã³ã¹ã¿ã³ã¹ããªãã«ããããšãã§ããŸãã ç¥ã£ãŠããã¹ãã㚠以åã¯ã ç¡æå©çšæ ã® API ã¯å
¬éãããŠããããåãããŒã¿ã確èªã§ãã AWS è«æ±ã³ã³ãœãŒã«ã®ç¡æå©çšæ ããŒãž ã§å
éšçã«äœ¿çšãããŠããŸããã GetFreeTierUsage API ãå
¬éããããšã§ãã客æ§ã AWS ãæ¥œãã¿ãAWS ç¡æå©çšæ ã®ãªãã¡ãŒãããæå¹ã«æŽ»çšããäœãç¡æã§ãå¶éã«è¿ã¥ãããè¶
ããããããšãã«äœããã¹ãããçè§£ã§ããããã«ãªãããšãé¡ã£ãŠããŸãã ãã®æ
å ±ã䜿çšããŠãããžãã¹ããŒãºãæºããã«ã¹ã¿ã ã¬ããŒããäœæã§ããŸããããšãã°ãã³ã³ãã¥ãŒãã£ã³ã°ã³ã¹ããåé¿ãããå Žåã¯ãããã°ã©ã ã§ EC2 ã€ã³ã¹ã¿ã³ã¹ã忢ãŸãã¯äŒæ¢ç¶æ
ã«ããããEC2 Auto Scaling ã°ã«ãŒãã®ãµã€ãºã 0 ã«èšå®ãããã§ããŸããä»»æã® AWS SDK ã䜿çšããŠãŠã§ãã¢ããªãäœæãããããã®ããŒã¿ãã¢ãã¿ãªã³ã°ãœãªã¥ãŒã·ã§ã³ã«çµ±åãããã§ããŸãã ããäžè¬çã«ã¯ããªãã¡ãŒã®äœ¿çšéãå¶éã«è¿ã¥ãããšãã«ã远å ã® E ã¡ãŒã«ãŸãã¯éç¥ ( Amazon SES ã Amazon SNS ã䜿çšãããªã©) ãéä¿¡ã§ããŸããããã«ããã远å è²»çšããããã«ãªãã¡ãŒã®ã¡ãªãããæå€§éã«åŒãåºãããšãã§ããŸãã䜿çšäºç®é¡ãç¡æå©çšæ ã®äžéã«èšå®ããã°ãAWS Budgets ã§ããããè¡ãããšãã§ããŸãã ãªãã¡ãŒããã®ã¢ã«ãŠã³ãã«é©çšãããªããªã£ãå Žå (ããšãã°ãåææ«ã«æéãåãããã)ã察å¿ããã¢ã€ãã ã¯ãªã¹ãã«å«ãŸããŸãããååã® API åŒã³åºãã®çµæãä¿åãããšããªãã¡ãŒã®ãªã¹ããååã®è«æ±ãµã€ã¯ã«ã§å ±åããããªãã¡ãŒãšæ¯èŒããŠãæè¿æéåãã«ãªã£ããªãã¡ãŒã確èªã§ããŸãã AWS ç¡æå©çšæ ã®äœ¿çšç¶æ³ã远跡ããæ¹æ³ã«ã€ããŠè©³ããç¥ãããã«ã AWS Skill Builder ã§æ¬¡ã® 3 ã€ã® 10 åã³ãŒã¹ãäœæããŸãããAWS ã®å°éå®¶ããåŠã³ããªã³ã©ã€ã³ã§ã¯ã©ãŠãã¹ãã«ã身ã«ä»ããããšãã§ãããªã³ã©ã€ã³åŠç¿ã»ã³ã¿ãŒã§ãã AWS ç¡æå©çšæ : ãµãŒãã¹ã®æŠèŠ AWS ç¡æå©çšæ : ã¢ãã¿ãªã³ã°ãµãŒãã¹ã®æŠèŠ AWS ç¡æå©çšæ : ãµãŒãã¹ç®¡çã®æŠèŠ â Danilo åæã¯ ãã¡ã ã§ãã