ã¯ããã«
WebãµãŒããŒäžã§çšŒåããã¢ããªã¯ããœãŒã¹ã®ç®¡çã«ã¯CodeCommitããèªåãããã€ãšããŠã¯CodePipeline + CodeDeploy + CodeCommitïŒãã«ããå¿
èŠãªå Žå㯠+ CodeBuildïŒãªã©ã®æ§æã䜿ãããŸãããCodeCommitã§ã¯ãµã€ãºã®å€§ããªãã¡ã€ã«ã管çããããšã¯é©ããŠããŸããã
ãã®ãããªãµã€ãºã®å€§ããªã®ãã¡ã€ã«ããããã€ããæ¹æ³ãšããŠããã¡ã€ã«ãS3äžã«é
眮ããaws-cliã䜿çšããŠååŸåã³é
眮ããã·ã§ã«ãèããŠã¿ãŸããã
åææ¡ä»¶
ã»å¯Ÿè±¡ã®EC2ã®IAMããŒã«ã«å¯Ÿè±¡ã®S3ãžã®GETãšLISTã®æš©éãä»äžãããŠããããšã
ã»EC2ã«aws-cliã®Version2ãã€ã³ã¹ããŒã«ãããŠããããšïŒversion 2.15.24ã«ãŠç¢ºèªïŒã
ã»ä»åã®ãµã³ãã«ã§ã¯S3ãã±ããïŒsapmle-bucketãçšæãããã®é
äžã«ãããã以äžã®ãããªãã£ã¬ã¯ããªãšãã¡ã€ã«ãé
眮ãããŠããããšãšããŸãã
[sapmle-bucket]ãã±ãã ãã- [testDir]ãã£ã¬ã¯ã㪠ãããã- [test1.txt]ãã¡ã€ã« ãããã- [test2.txt]ãã¡ã€ã« ãããã- [test3.txt]ãã¡ã€ã«
ã»EC2ãšS3ã¯åäžãªãŒãžã§ã³ã«ååšãããã®ãšããŠèª¬æããŸãã
ã»EC2å
ã§ã®ãŠãŒã¶ãŒã¯test_userãšããŸãã
ã»ã·ã§ã«ã«ã€ããŠã¯BASHã§ã®èšèŒæ¹æ³ã«ãªããŸãã
ã·ã§ã«ã§ã®åŠçå 容
- S3ããååŸãããã¡ã€ã«ãé 眮ãããã£ã¬ã¯ããªãžç§»åãã
- aws-cliã䜿çšããŠS3ã®ç¹å®ã®ãã±ããåã³ãã©ã«ãå ã®ãã¡ã€ã«äžèЧãããã¡ã€ã«åãååŸãã
- aws-cliã䜿çšããŠS3ãããã¡ã€ã«ãååŸãã
æé 1. S3ããååŸãããã¡ã€ã«ãé 眮ãããã£ã¬ã¯ããªãžç§»åãã
ãŸãã¯ä»¥äžã®ã³ãã³ãã§ãã£ã¬ã¯ããªãç§»åããŸãã
ãã£ã¬ã¯ããªã«é¢ããŠã¯ã·ã§ã«ãå®è¡ãããŠãŒã¶ãŒãæš©éãä¿æããŠããã°å¥œããªå Žæã§åé¡ãããŸãããïŒä»åã¯/home/test_user/é
äžãšããŸãïŒ
cd /home/test_user
æé 2. aws-cliã䜿çšããŠS3ã®ç¹å®ã®ãã±ããåã³ãã©ã«ãå ã®ãã¡ã€ã«äžèЧãããã¡ã€ã«åãååŸãã
aws-cliã䜿çšããŠS3ã®ãã±ããããªããžã§ã¯ãã®äžèŠ§è¡šç€ºãååŸããã«ã¯ä»¥äžã®æ§æã䜿çšããŸãã
$ aws s3 ls {target} [--options]
{target}ã«ã¯ãs3://ãã«ç¶ããŠãã±ããåããã£ã¬ã¯ããªãã/ãåºåãã§æå®ããŸãã
ä»åã®å Žåã¯ãs3://sample-bucket/testDir/ããšãªããŸãã
[âoptions]ã«ã¯ãã±ãããé
眮ãããŠãããªãŒãžã§ã³ãæå®ãããâregionãããã¯ã¬ãã³ã·ã£ã«ãæå®ãããâprofileããªã©ããããŸãããä»åã¯ç¹ã«æå®ããŸããã
ãªãã·ã§ã³ã®è©³çްã¯AWSå
¬åŒã®ããã¥ã¡ã³ãã«ãŸãšãŸã£ãŠããŸãã
ã³ãã³ããå®è¡ããŠã¿ããšä»¥äžã®ãããªçµæã«ãªããŸãã
$ aws s3 ls s3://sample-bucket/testDir/ 2024-03-20 00:00:10 0 2024-03-20 00:00:27 6 test1.txt 2024-03-20 00:00:55 6 test2.txt 2024-03-20 00:00:43 6 test3.txt
äžèšã¯ãã¡ã€ã«ãŸãã¯ãã£ã¬ã¯ããªã®ãäœææ¥ äœææé ãµã€ãº ãã¡ã€ã«åããšãªã£ãŠããããµã€ãºã0ã®èŠçŽ ããã£ã¬ã¯ããªïŒtestDirïŒã«ãªããŸãã
åŸç¶ã®æé 3ã«ãŠS3ãããã¡ã€ã«ãååŸããéã«ãã¡ã€ã«åãå¿
èŠã«ãªãã®ã§ãããçŸç¶ã ãšãã¡ã€ã«å以å€ã®äžèŠãªæ
å ±ãå«ãŸããŠããããã£ã¬ã¯ããªå
ã«ããè€æ°ã®ãã¡ã€ã«åïŒãã£ã¬ã¯ããªåïŒãååŸãããŠããŸãã®ã§ãawkã³ãã³ãã«ãŠãã¡ã€ã«åã ããæœåºããheadã³ãã³ãã§ãã¡ã€ã«åã1ã€ã«çµããŸãã
$ aws s3 ls s3://sample-bucket/testDir/ | awk '{print $4}' | head -n 1
ã
äžèšã®ã³ãã³ãã®çµæã ãšãaws-cliã®S3ã®lsã³ãã³ãã®çµæã®å
é ã«ãããã£ã¬ã¯ããªåïŒç©ºæåïŒãšãªã£ãŠããŸããŸãã
ãã®ãããsortã³ãã³ãã«ãŠãã¡ã€ã«ã®äœææ¥æããã¡ã€ã«åã§éé ãœãŒãããããšã§å¯Ÿå¿ããŸãã
ãã¡ã€ã«ã®äœææ¥æã§éé ãœãŒãããå Žå
$ aws s3 ls s3://sample-bucket/testDir/ | sort -r | awk '{print $4}' | head -n 1
test2.txt
ãã¡ã€ã«åã§éé ãœãŒãããå Žå
$ aws s3 ls s3://sample-bucket/testDir/ | awk '{print $4}' | sort -r | head -n 1
test3.txt
æé 3. aws-cliã䜿çšããŠS3ãããã¡ã€ã«ãååŸãã
aws-cliã䜿çšããŠS3ã®ãã±ããããªããžã§ã¯ããããã¡ã€ã«ãååŸããå Žåã¯ä»¥äžã®æ§æã䜿çšããŸãã
aws s3 cp {target} [--options] {target-dir}
{target}ã«ã¯ãs3://ãã«ç¶ããŠãã±ããåããã£ã¬ã¯ããªããã¡ã€ã«åãã/ãåºåãã§æå®ããŸãã
[âoptions]ã«ã¯lsãšåãããã«ããã€ãã®ãªãã·ã§ã³ãçšæãããŠããŸãã
ãªãã·ã§ã³ã®è©³çްã¯AWSå
¬åŒã®ããã¥ã¡ã³ãã«ãŸãšãŸã£ãŠããŸãã
{target-dir}ã¯S3ããååŸãããã¡ã€ã«ãé
眮ããEC2äžã®ãã£ã¬ã¯ããªã®ãã¹ãæå®ããŸãã
ä»åã¯çŸåšã®ãã£ã¬ã¯ããªé
äžãšããã./ããæå®ããŸãã
ã³ãã³ããšããŠã¯ä»¥äžã®ãããªåœ¢ã«ãªããŸãã
aws s3 cp s3://sample-bucket/testDir/ãæé 2ã§ååŸãããã¡ã€ã«åã ./
æé ãçµã¿åãããŠã·ã§ã«ãã¡ã€ã«ãäœã
äžèšã®æé ãèžãŸããŠããS3ã®æå®ããããã£ã¬ã¯ããªã«ããææ°ã®ãã¡ã€ã«ã1ã€ååŸãããã·ã§ã«ãäœæããŠã¿ãŸãã
ä»åã®ã·ã§ã«ãã¡ã€ã«ã¯ã/home/test_user/get_latest_file_from_s3.shããšããŸãã
#!/bin/bash
# S3ããååŸãããã¡ã€ã«ãé
眮ãããã£ã¬ã¯ããªãžç§»åãã
cd /home/test_user
# aws-cliã䜿çšããŠS3ã®ç¹å®ã®ãã±ããåã³ãã©ã«ãå
ã®ãã¡ã€ã«äžèЧãããã¡ã€ã«åãååŸããïŒãã¡ã€ã«ã®äœææ¥æéé ïŒ
TARGET_FILE=`aws s3 ls s3://sample-bucket/testDir/ | sort -r | awk '{print $4}' | head -n 1`
# aws-cliã䜿çšããŠS3ãããã¡ã€ã«ãååŸãã
aws s3 cp s3://sample-bucket/testDir/${TARGET_FILE} ./
äžèšã®ã·ã§ã«ã§ã¯ææ°ãã¡ã€ã«ã®ååŸãŸã§ããè¡ã£ãŠããŸããããããã«ã³ãã³ãã远å ããããšã§ããŠã³ããŒããããã¡ã€ã«ãéãããèµ·åããããªã©ãèªååããããšãã§ããŸãã
æåŸã«
ã·ã§ã«ãã¡ã€ã«ã®æºåãã§ããããã·ã§ã«ãã¡ã€ã«ã«å®è¡æš©éãä»äžããŠçŽæ¥å®è¡ãããEC2ã®èµ·åæã«å®è¡ãããããã«ãŠãŒã¶ãŒããŒã¿ã«ç»é²ãããsystemdã«ç»é²ããŠèªåèµ·åãããªã©è²ã
ãšã§ããŸãã
aws-cliã®S3ã«ã¯ä»ã«ããã±ãããäœæããããã®mbã³ãã³ããããªããžã§ã¯ããåé€ããããã®rmã³ãã³ãçãè²ã
ãªã³ãã³ããçšæãããŠããŸãã
ä»åã¯äœ¿çšããŠããªãã³ãã³ãã«ã€ããŠãäœ¿ãæ¹ã¯é£ãããªãã®ã§AWSæŽæ°ããŒãžãAWS CLI ã§é«ã¬ãã« (S3) ã³ãã³ãã䜿çšããããåèã«ããŠãã ããã