Amazon S3ͷ࢝Ίํ",*#""840/-*/&"84ɺ͡Ί·ͨ͠ฤ)JSPBLJ"TIJ[BXBʙS3ͷ֓ཁͱΞΫηεɾετϨʔδཧʹֶ͍ͭͯ΅͏ʙ
View Slide
ࣗݾհ Ἑত /(͋͟͠ΘͻΖ͖͋)ॴଐAWSࣄۀ෦ίϯαϧςΟϯά෦Twitter@ashi_ssanೖࣾ2021/09/01ڵຯ͕͋ΔαʔϏεAWS WAFAWS DataSync
ॕɾʰAWSͷࣝਤʱൃץʂ
ʰ"84ͷࣝਤʱ͏ಡΈ·͔ͨ͠ʁ ߪೖϖʔδϦϯΫɿhttps://www.amazon.co.jp/dp/B09X9JVR7Q
ʰ"84ͷࣝਤʱͷ࣍ "NB[POΑΓ
ʰ"84ͷࣝਤʱͷ࣍ "NB[POΑΓ ͜ͷষʹؚ·ΕΔ"NB[PO4ʹ͍ͭͯ͠·͢ʂʂʂ
ࠓ͢͜ͱ • Amazon S3ͱʁ• S3ͷػೳ• ΞΫηεཧɾετϨʔδཧ• ·ͱΊ
ఆࢹௌऀ • ͜Ε͔ΒAWSΛֶΜͰߦ͖͍ͨํ• Amazon S3ʹֶ͍ͭͯͼ͍ͨํ• Amazon S3Λطʹ͍ͬͯΔ͕ͲΜͳઃఆΛͨ͠Βྑ͍͔Θ͔Βͳ͍ํ
ࠓͤͳ͍͜ͱ • S3Ҏ֎ͷAWSϦιʔεʹ͍ͭͯ• ࠓऔΓѻΘͳ͍S3ͷػೳ• ػೳͯ͢Λཏͨ͠༰Ͱ͋Γ·ͤΜ• S3Λར༻ͨ͠۩ମతͳϢʔεέʔε• AWSར༻ྉۚʹ͍ͭͯ
Amazon S3ͱʁ
"NB[PO4ͱʁ • S3 = ”Amazon Simple Storage Service”• ҎԼͷಛΛ࣋ͭΦϒδΣΫτετϨʔδαʔϏε• ֦ுੑ• ٱੑ• ηΩϡϦςΟ• ύϑΥʔϚϯε
ΦϒδΣΫτετϨʔδͱʁ Ҿ༻ɿhttps://www.softbank.jp/biz/blog/business/articles/202007/storage-difference/
4ͷߏཁૉ • όέοτ• S3ʹอଘ͞ΕΔΦϒδΣΫτίϯςφ• ΦϒδΣΫτ• S3ʹอଘ͞ΕΔجຊΤϯςΟςΟ• Ωʔ• όέοτʹҰҙͷΦϒδΣΫτࣝผࢠ• ΦϒδΣΫτΩʔ = Prefix + ΦϒδΣΫτ໊
4ͷߏཁૉ
4ͷٱੑɾՄ༻ੑ • ٱੑɿ99.999999999% <௨শɿΠϨϒϯφΠϯ>• ͭ·Γ… σʔλΛফࣦ͢ΔՄೳੑ΄΅θϩ• Մ༻ੑɿ99.99%(S3 Standardͷ߹)• ͭ·Γ…ɹαʔϏεఀࢭ࣌ؒؒ1࣌ؒఔ(52.6)
4ͷٱੑɾՄ༻ੑ Ҿ༻ɿhttps://d1.awsstatic.com/webinars/jp/pdf/services/20190220_AWS-BlackBelt_S3_Glacier.pdf
4ͷσʔλ߹ੑϞσϧ • ڧྗͳ߹ੑ• ΦϒδΣΫτͷPUT(৽نొɺߋ৽),DELETE(আ)ʹؔ͢Δॻ͖ࠐΈޙಡΈऔΓͷ “ڧྗͳ߹ੑ” ͕࠾༻͞Ε͍ͯΔ
4ͷσʔλ߹ੑϞσϧ Ҿ༻ɿhttps://dev.classmethod.jp/articles/update-amazon-s3-strong-read-after-write-consistency/• ڧ͍߹ੑ2020ͷre:inventͰαϙʔτ͞Ε·ͨ͠• ݹ͍ॻ੶ɾใͩͱʮ݁Ռ߹ੑʯͱ͋Δͣɺཁҙ• ࠷৽ͷΞοϓσʔτͷใΛ͍·͠ΐ͏
S3ͷػೳ
4ͷػೳ • ΞΫηεཧ• IAMɺACL(ΞΫηείϯτϩʔϧϦετ)ɺόέοτϙϦγʔɺϒϩοΫύϒϦοΫΞΫηε etc…• ετϨʔδཧ• σϑΥϧτ҉߸ԽɺόʔδϣχϯάɺετϨʔδΫϥεɺϥΠϑαΠΫϧϙϦγʔ etc…• ͦͷଞ• ΞΫηεϩάɺCloudTrailϩάɺCloudWatchϝτϦΫε• S3 Storage LensɺS3ετϨʔδΫϥεੳ• etc…
4ͷػೳ • ΞΫηεཧ• IAMɺACL(ΞΫηείϯτϩʔϧϦετ)ɺόέοτϙϦγʔɺϒϩοΫύϒϦοΫΞΫηε etc…• ετϨʔδཧ• σϑΥϧτ҉߸ԽɺόʔδϣχϯάɺετϨʔδΫϥεɺϥΠϑαΠΫϧϙϦγʔ etc…• ͦͷଞ• ΞΫηεϩάɺCloudTrailϩάɺCloudWatchϝτϦΫε• S3 Storage LensɺS3ετϨʔδΫϥεੳ• etc…ࠓ͢ͱ͜Ζ
ΞΫηεཧ
લஔ͖ͳͥΞΫηεཧ͕ඞཁͳͷ͔ʁ • S3REST API(HTTPS)ͰΞΫηεՄೳͰ͢• ྫ)• ౦ژϦʔδϣϯʹ͋Δόέοτ໊ ”akiba-aws-bucket” ͷΦϒδΣΫτΩʔ”object/blog.jpg”ʹΞΫηε͢Δ߹…• URLྫɿhttps://{όέοτ໊}.s3.{Ϧʔδϣϯ໊}/{Prefix}/{ΦϒδΣΫτ໊}
લஔ͖ͳͥΞΫηεཧ͕ඞཁͳͷ͔ʁ • S3REST API(HTTPS)ͰΞΫηεՄೳͰ͢• ྫ)• ౦ژϦʔδϣϯʹ͋Δόέοτ໊ ”akiba-aws-bucket” ͷΦϒδΣΫτΩʔ”object/blog.jpg”ʹΞΫηε͢Δ߹…• URLྫɿhttps://{όέοτ໊}.s3.{Ϧʔδϣϯ໊}/{Prefix}/{ΦϒδΣΫτ໊}ʲఏىʳ͜ͷ63-ΛΒΕͨΒ୭ͰΞΫηεͰ͖ͯ͠·͏ͷͰʁʁʁ
ΞΫηεཧ֓ཁ • ϢʔβʔϙϦγʔ• όέοτϙϦγʔ• ACL(ΞΫηείϯτϩʔϧϦετ)• ϒϩοΫύϒϦοΫΞΫηε
ϢʔβʔϙϦγʔ • ʮAWSʹ͓͍ͯ͜ͷϢʔβʔԿ͕Ͱ͖Δͷ͔ʁʯΛࢦఆ͢ΔIAMͷΞΠσϯςΟςΟϕʔεϙϦγʔ
όέοτϙϦγʔ • ʮ͜ͷS3όέοτʹ୭͕ΞΫηεͰ͖Δͷ͔ʁʯΛࢦఆ͢ΔIAMͷϦιʔεϕʔεϙϦγʔ
"$- ΞΫηείϯτϩʔϧϦετ • ʮ͜ͷS3όέοτ/S3ΦϒδΣΫτʹΞΫηεͰ͖ΔଞͷAWSΞΧϯτʯΛࢦఆ͢ΔIAMͷϦιʔεϕʔεϙϦγʔ
"$- ΞΫηείϯτϩʔϧϦετʲΞοϓσʔτʳ Ҿ༻ɿhttps://dev.classmethod.jp/articles/s3-bucket-owner-enforced/• ACL2021ͷre:inventͰɹແޮԽͰ͖ΔΑ͏ʹͳΓ·ͨ͠• ʰͪΐͬͱACLࣺͯͯ͘Δʱ
όέοτϙϦγʔPS"$-ʁ • όέοτϙϦγʔͱͲͪΒΛ͏͔બ͢Δ• جຊతͳߟ͑ͱͯ͠ɺόέοτϙϦγʔΛ༻ɺACLແޮʹ͢Δ͖• ACLAWSΞΧϯτ୯Ґͷ੍ޚͷΈ• όέοτϙϦγʔIAMϦιʔε୯ҐͰͷ੍ޚ͕Մೳ
ϒϩοΫύϒϦοΫΞΫηε • S3όέοτʹઃఆ͢Δ͜ͱͰύϒϦοΫެ։ΛࢭͰ͖Δػೳ• ύϒϦοΫΞΫηε͕ෆཁͳόέοτʹඞਢͷઃఆ• ΞΧϯτ୯Ґɺόέοτ୯Ґͷઃఆ͕͋Δ
4ͷΞΫηεཧɺԿͨ͠Β͍͍ͷʁ • ϢʔβʔϙϦγʔ• όέοτϙϦγʔ• ACL(ΞΫηείϯτϩʔϧϙϦγʔ)• ϒϩοΫύϒϦοΫΞΫηε
4ͷΞΫηεཧɺԿͨ͠Β͍͍ͷʁ • ϢʔβʔϙϦγʔ• ར༻͢Δ → લఏͱͯ͠IAMϢʔβʔͰਖ਼͘͠ݖݶཧΛ͠Α͏• όέοτϙϦγʔ• ར༻͢Δ → S3ʹ͍ͭͯΞΫηεڐՄ͢ΔϦιʔεͷཧΛ͠Α͏• ACL(ΞΫηείϯτϩʔϧϙϦγʔ)• جຊతʹແޮͰOK• ϒϩοΫύϒϦοΫΞΫηε• ༗ޮԽ → ύϒϦοΫެ։͕ෆཁͳ߹ඞਢ
ࢀߟ*".ʹ͍ͭͯͬͱΓ͍ͨํ͚ͷهࣄ Ҿ༻ɿhttps://dev.classmethod.jp/articles/re-introduction-2022-aws-iam/
ࢀߟ"$-ʹ͍ͭͯͬͱΓ͍ͨํ͚ͷهࣄ Ҿ༻ɿhttps://dev.classmethod.jp/articles/amazon-s3-acl-basics/
ετϨʔδཧ
લஔ͖ͳͥετϨʔδͷཧΛ͢Δͷ͔ʁ • ҰൠతͳετϨʔδͰ͋Ε…• σʔλͷ૿Ճରࡦ → ݶΒΕͨετϨʔδαΠζ• σʔλͷόοΫΞοϓ → ϋʔυোɺϥϯαϜΣΞରࡦ• S3ͷ߹ಉ͡Α͏ʹରࡦ͕ඞਢ• σʔλͷ૿Ճରࡦ → ॊೈͳετϨʔδαΠζ• → ैྔ՝ۚΛ͑ΔͨΊͷରࡦ͕ඞཁ• σʔλͷόοΫΞοϓ → S3ͷٱੑɾՄ༻ੑ• → ޡૢ࡞ɺվ͟Μରࡦඞཁ
ετϨʔδཧ֓ཁ • σϑΥϧτ҉߸Խ• όʔδϣχϯά• ετϨʔδΫϥε• ϥΠϑαΠΫϧϙϦγʔ
σϑΥϧτ҉߸Խ Ҿ༻ɿhttps://d1.awsstatic.com/webinars/jp/pdf/services/20190220_AWS-BlackBelt_S3_Glacier.pdf
ࢀߟ4ͷ҉߸Խʹ͍ͭͯ Ҿ༻ɿhttps://dev.classmethod.jp/articles/lim-s3-sse-2021/
όʔδϣχϯά • ୯ҰͷΦϒδΣΫτͷෳόʔδϣϯΛอ࣋Ͱ͖ΔΑ͏ʹ͢ΔΦϓγϣϯ• ૢ࡞ϛεʹΑΔআ͔Βͷ෮چɺσʔλͷվ͟ΜରࡦʹͳΔ• ্ॻ͖ͷ߹৽نόʔδϣϯͷΦϒδΣΫτɺআͷ߹আϚʔΧʔ͕࡞͞ΕΔ
όʔδϣχϯά Ҿ༻ɿhttps://dev.classmethod.jp/articles/3minutes-s3-versioning-lifecycle/
ετϨʔδΫϥε • ༻్ʹԠͯ͡ΦϒδΣΫτΛ֨ೲ͢ΔS3ͷॴΛ͍͚Δ͜ͱ͕Ͱ͖·͢Ҿ༻ɿhttps://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/storage-class-intro.html
ετϨʔδΫϥε • ͲͷΫϥεʹ͖͔͢ʁɺΞΫηεස࠷খอଘظؒʹΑܾͬͯ·Δ• ྫʣ• 1ϲ݄ʹ1ճΞΫηε͢ΔΞϓϦέʔγϣϯϩά = Standard-IA• ୯ҐͰΞΫηε͞Εͳ͍ࠪϩά = Glacier Deep Archive• ࣄલʹԿʹ͖͔͢Θ͔Βͳ͍߹ޙ͔Βઃఆ͢Δ͜ͱՄೳ• Ұ୴ͯ͢StandardͰอଘ͓͖ͯ͠ɺS3 Storage Lensͷੳ݁ՌʹΑͬͯΫϥεΛܾΊΔɺͱ͍͏ઓུ
ετϨʔδΫϥεʲ44UPSBHF-FOTʳ • ༗ޮԽ͢ΔͱS3ͷར༻ঢ়گ͕μογϡϘʔυԽ͞Ε·͢Ҿ༻ɿhttps://dev.classmethod.jp/articles/amazon-s3-storage-lens/
ετϨʔδΫϥεʲ*OUFMMJHFOU5JFSJOHʳ • ΞΫηεසʹԠͯ͡3ͭͷΞΫηε֊ʹࣗಈతʹΦϒδΣΫτΛอଘ͢ΔΫϥε• ߴස/ස/Πϯελϯτ• ΦϓτΠϯͰΑΓ͍සͷΞΫηε֊Λར༻Մೳ• ΞʔΧΠϒ/σΟʔϓΞʔΧΠϒ• ޙड़͢ΔϥΠϑϧαΠΫϧϙϦγʔΛଂͨ͠ετϨʔδΫϥεͱ͍͏Πϝʔδ
ετϨʔδΫϥεʲ*OUFMMJHFOU5JFSJOHʳ • গ͠ݹ͍ਤͰ͕͢͜ͷΑ͏ͳΠϝʔδҾ༻ɿhttps://dev.classmethod.jp/articles/amazon-s3-intelligent-tiering-further-automating-cost-savings-for-short-lived-and-small-objects/ݱࡏΠϯελϯτΞΫηε֊͕Ճ͞Ε͍ͯΔ
ϥΠϑαΠΫϧϙϦγʔ • όέοτͷΦϒδΣΫτʹରͯ͠ɺετϨʔδΫϥεͷมߋআॲཧΛࣗಈԽ͢ΔΦϓγϣϯ
ϥΠϑαΠΫϧϙϦγʔʲΞοϓσʔτʳ • 2021/11ʹൃද͞ΕͨΞοϓσʔτʹͯɺόʔδϣϯΛࢦఆͨ͠ϥΠϑαΠΫϧཧ͕Մೳʹ• ඇݱߦόʔδϣϯͰͳ͘ͳͬͨΛࢦఆͯ͠আɺετϨʔδΫϥεҠಈ͕Մೳʹ• ྫ) ඇݱߦόʔδϣϯͱͳͬͯ2ܦͬͨΒআҾ༻ɿhttps://dev.classmethod.jp/articles/s3-lifecyclerule-add-object-version/
4ͷετϨʔδཧɺԿͨ͠Β͍͍ͷʁ • σϑΥϧτ҉߸Խ• όʔδϣχϯά• ετϨʔδΫϥε• ϥΠϑαΠΫϧϙϦγʔ
4ͷετϨʔδཧɺԿͨ͠Β͍͍ͷʁ • σϑΥϧτ҉߸Խ• ༗ޮԽ → جຊαʔόʔαΠυɺSSE-S3(҉߸ԽϙϦγʔ͕ͳ͍߹)• όʔδϣχϯά• ༗ޮԽ → ޡૢ࡞ࢭɺվ͟Μࢭͷ؍ͰઃఆΛ͓͢͢Ί• ετϨʔδΫϥε• جຊతʹStandardɺ༻్ཧํ͕ܾ·͍ͬͯΕ֤ετϨʔδΫϥεΛબ͢Δ• ϥΠϑαΠΫϧϙϦγʔ• ઃఆ͢Δ → దͳετϨʔδΫϥεͷҠಈɺෆཁʹͳͬͨΦϒδΣΫτͷআͷࣗಈԽ͕Մೳ
·ͱΊ
શମͷ·ͱΊ • S3ͱ• ֦ுੑɾٱੑɾηΩϡϦςΟػೳΛͭΦϒδΣΫτετϨʔδ• ͘͢͝ݎ࿚Ͱɺڧྗͳσʔλ߹ੑΛ͍࣋ͬͯΔɻ• ΞΫηεཧ• ϢʔβϙϦγʔɺόέοτϙϦγʔΛར༻͠Α͏(ACLແޮ)• ෆཁͳύϒϦοΫΞΫηεϒϩοΫ͠Α͏• ετϨʔδཧ• σϑΥϧτ҉߸ԽɺόʔδϣχϯάɺϥΠϑαΠΫϧϙϦγʔΛར༻͠Α͏• ετϨʔδΫϥεStandardͰOK