ãã®ãªãœãŒã¹ã誰ãäœã£ããã ã£ãïŒ
AWSã䜿ã£ãŠãããšããããªå Žé¢ã¯ãªãã§ããããã
- åä»»è ãäœã£ãEC2ãããã€ã®éã«ãåãç¶ããŠãã
- ãããšã§æ¶ããããšæã£ãŠäœã£ããã¹ãçšã®RDSãããã®ãŸãŸæ®ã£ãŠãã
- ååãèŠãŠããäœã®ããã«äœã£ãã®ãæãåºããªããªãœãŒã¹ããã
äžäººãå°äººæ°ã§éçºããŠãããšããããããè¿·åã®ãªãœãŒã¹ãã¯é©ãã»ã©ç°¡åã«å¢ããŠãããŸãã誰ãã«æãããããã§ããªãã®ã§ãã€ãåŸåãã«ãªããã¡ã§ãã
ãã®èšäºã§ã¯ããããªãè¿·åã®ãªãœãŒã¹ããèªåã§èŠåŒµã£ãŠãå®å šã«çä»ããŠãããä»çµã¿ââå人éçºã§äœã£ã TagWatchman ãšããããŒã«ããã§ããã ããã¿ç ããŠç޹ä»ããŸãã
ããããã¿ã°ã£ãŠäœïŒãªãåŸåãã«ãªãïŒ
AWSã®ãã¿ã°ãã¯ããªãœãŒã¹ã«è²Œãåæã®ãããªãã®ã§ãããããã¯æ¬çªçšããæã¡äž»ã¯èªåãããã®ãããžã§ã¯ãçšããšãã£ãã¡ã¢ããKey=Value ã®åœ¢ã§ä»ããŠãããŸãã
Env = prod ïŒæ¬çªç°å¢ã§ãïŒ
Project = my-api ïŒãã®ãããžã§ã¯ãçšã§ãïŒ
Owned = backend ïŒããã¯ãšã³ãããŒã ã®æã¡ç©ã§ãïŒ
åæããä»ããŠããã°ãåŸããèŠãŠããããã¯äœè ãããäžç®ã§åãããŸããã³ã¹ãéèšããæ£åžããããã£ãšæ¥œã«ãªããŸãã
ãšãããââåæãä»ããã®ã¯ãå¿ããŸãããã¿ã°ãä»ããŸãããããšããã«ãŒã«ããã£ãŠããäººã¯æ¥ãã§ãããšé£ã°ããŠããŸããããã¯æå¿ã®åé¡ãšãããããä»çµã¿ããªããšç¶ããªããšãã話ã ãšæã£ãŠããŸãã
åæã®ãªããªãœãŒã¹ã¯ãå°å³ã«æã
ãåæããªãããããå¥ã«ããã®ã§ã¯ïŒããšæããããããŸãããã§ããææ¡ã§ããŠããªããªãœãŒã¹ã«ã¯ããããªåŒ±ç¹ããããŸãã
- ã¢ããããŒãããããã®å¯Ÿè±¡ããæŒãã
- æ£åžããç£æ»ã®ãšãã«èŠèœãšããã
- äœãèµ·ããŠãã誰ã®äœãªã®ãåããã察å¿ãé ãã
ã€ãŸãããååšãææ¡ã§ããŠããªãããšããã®ãã®ããªã¹ã¯ã«ãªããŸããã³ã¹ãã®ç¡é§ã«ãªãã®ã¯ãã¡ãããã»ãã¥ãªãã£ã®é¢ã§ã穎ã«ãªããã¡ã§ããæ¥µç«¯ãªè©±ã誰ããåæã«äœã£ããªãœãŒã¹ãçŽããŠããŠããåæã§ç®¡çããŠããªããã°æ°ã¥ããŸããã
倧ããªçµç¹ãªããAWS Organizations ã® SCP ãšããæ©èœã§ãåæã®ãªããªãœãŒã¹ã¯äœãããªãããšçµç¹ã¬ãã«ã§åŒ·å¶ã§ããŸããã§ãå人éçºãå°èŠæš¡ããŒã ã«ã¯ãããã¯ã¡ãã£ãšå€§ããããããã§ãããã
ããã§ããSCPã»ã©å€§æãããããªããã©ãåæä»ããå®è³ªçã«åŒ·å¶ã§ãããä»çµã¿ãã»ãããŠäœã£ãã®ã TagWatchman ã§ãã
TagWatchman ã¯äœãããŠãããïŒ
äžçªã®ãã€ã³ãã¯ããããªãæ¶ãããããªãããšã§ãã
åæïŒã¿ã°ïŒã®ãªããªãœãŒã¹ãèŠã€ããŠããããã«åé€ã¯ããŸããã代ããã«ããããªæµãã§ãå®å šã«ã察å¿ããŸãã
åæãªããªãœãŒã¹ãæ€ç¥
â
ãŸãéé¢ïŒåããªãç¶æ
ã«ããã»ã§ãæ¶ããªãïŒ
â
7æ¥éã®ç¶äº ⊠ãã®éã«åæãä»ããã°ãèªåã§å
éã
â
7æ¥ãã£ãŠãåæãªã â 確èªã¡ãŒã«ãå±ã
â
人ãã¡ãŒã«ã®ãã¿ã³ãæŒããŠãã¯ãããŠåé€
ãã€ã³ãã¯2ã€ãããŸãã
ã²ãšã€ã¯ããéé¢ãã¯ã忢ãã§ããåé€ãã§ããªãããšãããšãã°EC2ãRDSãªããéä¿¡ã ãã鮿ããŠãæªããã§ããªãç¶æ ãã«ããŸããã€ã³ã¹ã¿ã³ã¹ãæ¢ããŠããŸããšåèµ·åã«æéãããã£ãããåé€ããŠããŸããšåãè¿ããã€ããªãã£ããããã®ã§ããç¡å®³åãããã©äžèº«ã¯æ®ãããšããããã¡ã°ããã¡ãŒãžã®å°ãªãæ¹æ³ãéžãã§ããŸãã
ããã²ãšã€ã¯ãåé€ã決ããã®ã¯å¿ ã人éã ãšããããšãä»®ã«åæã®ä»ãå¿ãïŒïŒèª€æ€ç¥ïŒã ã£ããšããŠããèªåã§æ¶ããããšã¯ãããŸãããã ããå®å¿ããŠå°å ¥ã§ããŸãã
åæãä»ããã°ãèªåã§åŸ©æŽ»
éé¢ããããªãœãŒã¹ã¯ãæ£ããåæãä»ãçŽãã ãã§èªåçã«å éãã«ãªããŸããå ã®èšå®ã¯ã¡ãããšéé¿ããŠããã®ã§ãæåã§åŸ©æ§äœæ¥ãããå¿ èŠã¯ãããŸããïŒäžéšã®ãµãŒãã¹ã¯æå察å¿ãå¿ èŠã§ããããã®å Žåã¯ã¡ãŒã«ã§æ¡å ãå±ããŸãïŒã
ãµãŒãã¹ããšã®ãåæããªããšã©ããªããã
察å¿ããŠããAWSãµãŒãã¹ã¯å¹ åºãã®ã§ããããµãŒãã¹ã®æ§è³ªã«ãã£ãŠå¯Ÿå¿ã®ä»æ¹ãå€ãããŸãã代衚çãªãã®ãããã€ãæãããšããããªã€ã¡ãŒãžã§ãã
| ãµãŒãã¹ | åæããªããšïŒ |
|---|---|
| EC2 / RDS | éä¿¡ã鮿ããŠéé¢ïŒ7æ¥ä»¥å ã«åæãä»ããã°èªåã§åŸ©æ§ïŒ |
| Lambda | åæå®è¡æ°ã0ã«ããŠåæ¢ïŒåæãä»ããã°èªåã§åŸ©æ§ïŒ |
| S3 | ãã±ãããæäœäžå¯ã«ããŠéé¢ïŒåäžïŒ |
| IAM ãŠãŒã¶ãŒ / ããŒã« | æš©éãå¥ãããŠç¡å®³åïŒåŸ©æ§ã¯æåïŒ |
| 䜿ãããŠããªã Elastic IP / NAT Gateway | æ¡ä»¶ä»ãã§ããåé€ïŒç¡é§ã³ã¹ãã®æž©åºãªã®ã§ïŒ |
| VPC ãªã©åœ±é¿ã®å€§ãããã® | åé€ã¯ãããéç¥ã§ãç¥ãã |
ãµãŒããŒã¬ã¹æšãã®æ¹ã«è£è¶³ãããšãLambda ã¯ãåæå®è¡æ°ã0ã«ããããšããåœ¢ã§æ¢ããŸãã颿°ãæ¶ããã«"åããªãã ã"ã®ç¶æ ã«ã§ããã®ã§ãåæãä»ããã°ãã埩掻ããŸãã
ãã®ããã«ãäžåŸã«æ¶ãã®ã§ã¯ãªãããµãŒãã¹ããšã«äžçªå®å šãªããæ¹ãéžãã§ããã®ããã ããã§ããå šãµãŒãã¹ã®çްããæåã¯ãæè¡å¯ãã®èšäºïŒèšäºæ«å°Ÿã«ãªã³ã¯ïŒã«ãŸãšããŠããŸãã
å®éã«è©ŠããŠã¿ããš
詊ãã«ãåæïŒã¿ã°ïŒãä»ããã«S3ãã±ãããäœã£ãŠã¿ãŸããããããš1ã2ååŸã«ããããªå 容ã®ã¡ãŒã«ãå±ããŸãã
- ã©ã®ãªãœãŒã¹ãïŒARNïŒ
- ã©ããªæäœã ã£ããïŒCreateBucketïŒ
- 誰ãäœã£ããïŒIAMããŒã«ïŒ
- è¶³ããªãåæã¯äœã
- èªåã§éé¢ããæš
- 7æ¥åŸã«åé€ç¢ºèªã¡ãŒã«ãå±ãæš
äœè«ã§ãããæŸã£ãŠãããŠäœã£ããªãœãŒã¹ãã»ãŒãªã¢ã«ã¿ã€ã ã§æãŸããããŠãã¡ãããšéé¢ãããââãããå®ç°å¢ã§åãã®ã確èªã§ãããšãã¯ãããªãå¬ããã£ãã§ãã
â» S3 ãªã©äžéšã®ãµãŒãã¹ã§ã¯ãé颿ã«å ã®èšå®ãäžæŠçœ®ãæããéœåã§ãèªå埩æ§åŸã«å ã®çްããèšå®ã ãæåã§æ»ãå¿ èŠãããå ŽåããããŸãïŒãã®æé ãã¡ãŒã«ã«æ·»ããããŸãïŒã
䜿ã£ãŠã¿ãã«ã¯
TagWatchman 㯠ãªãŒãã³ãœãŒã¹ïŒç¡æïŒ ã§å ¬éããŠããŸããAWS SAM ã䜿ã£ãŠãèªåã®AWSã¢ã«ãŠã³ãã«ãã®ãŸãŸå°å ¥ã§ããŸãã
ð https://github.com/takada-neko/tag-watchman
å°å ¥ããŠããã¯ãå®éã®éé¢ã»åé€ã¯ãããéç¥ã ããã®ã詊ãã¢ãŒãããå§ããããŸãããŸãã¯ãã©ããªãªãœãŒã¹ãåŒã£ããããããçºããŠã¿ãŠãæ £ããŠããæ¬çªéçšã«åãæ¿ããããšããæµããå®å¿ã§ãã现ããèšå®ã®å€ãæ¹ããå°å ¥ã®æé ã¯ãªããžããªã®READMEã«æžããŠãããŸãã
ããããŠããèªç€Ÿã®ã¿ã°èšèšãã©ã決ããã°ããããããåºããã人åãã«ã詳现ã¬ã€ããšãã䜿ããIaCãã³ãã¬ãŒãããŸãšãã**äžäœçïŒÂ¥2,500ã»çšèŸŒïŒ**ãçšæããŠããŸããæ¬äœã ãã§ãåé¡ãªã䜿ããã®ã§ããã¡ãã¯å¿ èŠã«å¿ããŠã©ããã
â ãªããžããªãžã® Star ãå±ã¿ã«ãªããŸãïŒ
ãããã«
å人éçºãå°èŠæš¡ããŒã ã ãšããã¡ãããšç®¡çããªããããšåãã£ãŠããŠããã€ãåŸåãã«ãªã£ãŠããŸããã®ã ãšæããŸããTagWatchman ã¯ããã®ãåŸåãããä»çµã¿ã®åŽã§é²ãããšãçã£ãŠäœããŸããã
ããããªãæ¶ãããéé¢ããŠãã人ã倿ããããšããèšèšãªã®ã§ã誀æ€ç¥ããã£ãŠãå®å šã«éçšã§ããŸããæ£ããããªãããç¥ããªããã¡ã«ç©Žãã§ããããšãæžãããââãããªå®å¿æããå°ããªããŒã ã§ãæè»œã«æãŠããå¬ããã§ãã
èšèšã工倫ã®è©³çްïŒãªããã®é颿¹æ³ã«ãããããªã©ïŒã¯ãæè¡å¯ãã«æžããèšäºããããŸããæ°ã«ãªãæ¹ã¯ãã¡ããã©ããã
ð ãã®èšäºã¯ Zenn ã«ãæ²èŒããŠããŸãïŒååº: ZennïŒã
ð æè¡å¯ãã®è§£èª¬èšäºïŒZennïŒ
ãã£ãŒãããã¯ããåŸ ã¡ããŠããŸãïŒ
