Upgrade to Pro — share decks privately, control downloads, hide ads and more …

S3バケットを高速で削除・空にするツール「cls3」 / s3-deletion-tool-cls3

k.goto
December 09, 2023

S3バケットを高速で削除・空にするツール「cls3」 / s3-deletion-tool-cls3

2023/12/13開催 Storage-JAWS #2 での登壇資料です。

k.goto

December 09, 2023
Tweet

More Decks by k.goto

Other Decks in Technology

Transcript

  1. ࣗݾ঺հ LHPUP w όοΫΤϯυςοΫϦʔυ w "84$PNNVOJUZ#VJMEFS %FW5PPMT  w "84$%,ίϯτϦϏϡʔλʔ

    ‣ $PNNVOJUZ3FWJFXFSʹબఆ w ࣗ࡞"84πʔϧͷ044։ൃʲˡࠓ೔ͷ͓࿩ʳ w าͷςοΫ ٕज़ϒϩά  w 9 5XJUUFS !@TUFQ@UFDI ‣ LHPUP าͷςοΫ
  2. 4ͬͯ࡟আ·ΘΓେม͡Όͳ͍ʁ w 4ίϯιʔϧͷʮόέοτΛۭʹ͢Δʯػೳ͕$-*΍4%,Ͱ͸ͮ͠Β͍ ‣ όʔδϣχϯά͕ΦϑͳΒ$-*ͩͱBXTTSNSFDVSTJWFͰՄೳ͕ͩɺ଎౓͕஗͍ ‣ όʔδϣχϯά͕Φϯͩͱͦ΋ͦ΋Ͱ͖ͳ͍ ΍Ζ͏ͱ͢Δͱ໘౗Ͱେม  w

    4όέοτΛ࡟আ͢Δࡍɺόέοτ͕ۭͰͳ͍ͱ࡟আͰ͖ͳ͍ ‣ $-*Ͱ͸BXTTSCGPSDFͰՄೳ͕ͩɺ଎౓͕஗͍ w ۭʹ͍͕ͨ͠ଞͷϦιʔε͔Βґଘ͞Ε͍ͯͯɺ$%,ͷBVUP%FMFUF0CKFDUTͳͲΛ ࢖ͬͯͷόέοτ࡟আ ࠶࡞੒͕ग़དྷͳ͍ w 4ͷϥΠϑαΠΫϧػೳͰফͦ͏ͱͯ͠΋೔଴ͨͳ͍ͱ͍͚ͳ͍
  3. 4ͬͯ࡟আ·ΘΓେม͡Όͳ͍ʁ w 4ίϯιʔϧͷʮόέοτΛۭʹ͢Δʯػೳ͕$-*΍4%,Ͱ͸ͮ͠Β͍ ‣ όʔδϣχϯά͕ΦϑͳΒ$-*ͩͱBXTTSNSFDVSTJWFͰՄೳ͕ͩɺ଎౓͕஗͍ ‣ όʔδϣχϯά͕Φϯͩͱͦ΋ͦ΋Ͱ͖ͳ͍ ΍Ζ͏ͱ͢Δͱ໘౗Ͱେม  w

    4όέοτΛ࡟আ͢Δࡍɺόέοτ͕ۭͰͳ͍ͱ࡟আͰ͖ͳ͍ ‣ $-*Ͱ͸BXTTSCGPSDFͰՄೳ͕ͩɺ଎౓͕஗͍ w ۭʹ͍͕ͨ͠ଞͷϦιʔε͔Βґଘ͞Ε͍ͯͯɺ$%,ͷBVUP%FMFUF0CKFDUTͳͲΛ ࢖ͬͯͷόέοτ࡟আ ࠶࡞੒͕ग़དྷͳ͍ w 4ͷϥΠϑαΠΫϧػೳͰফͦ͏ͱͯ͠΋೔଴ͨͳ͍ͱ͍͚ͳ͍ Ήͣᙱ͍ʂʂʂ
  4. όέοτ࡟আ ۭʹ͢Δ ߴ଎ʂʂ όʔδϣχϯά࡟আ Ϧʔδϣϯލ͗ ෳ਺όέοτҰׅ࡟আ ର࿩ϞʔυͰόέοτݕࡧ ࣗಈϦτϥΠ ฒྻॲཧ ϓϩάϨεόʔ

    શΦϒδΣΫτ਺දࣔ ࡟আࡁΈ ΦϒδΣΫτ਺දࣔ ࢒Γඵ਺දࣔ DMTͷಛ௃ ࡟আ਺੍ݶແ͠ ඇݱߦόʔδϣϯͷΈ શͯ࡟আ
  5. DMTͷಛ௃ ʲ࡟আͰ͖ΔΦϒδΣΫτ਺ͷ੍ݶແ͠ʳ ‣ $-* 4%, EFMFUFPCKFDUT"1* Ͱ͸ίϚϯυΦϒδΣΫτ·Ͱ࡟আՄೳ ‣ DMTͰ͸਺ͷ੍ݶɾ্ݶ਺ແ͠ʂ ʲΤϥʔ࣌ͷࣗಈϦτϥΠʳ

    ‣ ΦϒδΣΫτ͕Կສ݅΋͋Δ৔߹ɺ௨ৗ$-*΍4%,ͰҰؾʹ࡟আ͍ͯ͠Δͱ·Εʹ 4BQJଆͰ4MPX%PXOΤϥʔ Τϥʔ ͕ى͜Δ͜ͱ͕͋Δ ‣ DMTͰ͸ɺϥϯμϜඵ਺଴ͬͯԿ౓͔ࣗಈϦτϥΠ͢Δ࢓૊ΈΛೖΕΔ͜ͱͰରԠ
  6. DMTͷಛ௃ ʲฒྻॲཧʳ ‣ ݸҎ্ΦϒδΣΫτɾόʔδϣϯ͕͋Δ৔߹͸ฒྻॲཧͰΦϒδΣΫτ࡟আ  ฒྻΦϒδΣΫτ࡟আ "1*ݺͼग़͠ ɺฒྻ਺ͷ্ݶ͸ʮฒྻ·Ͱʯ IUUQTEPDTBXTBNB[PODPNKB@KQ"NB[PO4MBUFTUVTFSHVJEFPQUJNJ[JOHQFSGPSNBODFIUNM %&-&5&ͷ৔߹͸ඵؒ

    ·Ͱ͸଱͑ΒΕɺฒྻ͝ͱʹΦϒδΣΫτͰ౤͍͛ͯΔͨΊɺ  ฒྻΦϒδΣΫτ ·Ͱ͸଱͑ΒΕΔ ˞ฒྻʹͳΔͱεϩοτϧΤϥʔ͕ग़Δ ˞੍ݶΪϦΪϦͷ ̑ฒྻͰ΋εϩοτϧΤϥʔ͕ଟൃͨ͠
  7. DMTͷಛ௃ ʲฒྻॲཧʳ ‣ 4ίϯιʔϧͷʮۭʹ͢ΔʯϘλϯͱউෛʂ  ίϯιʔϧͷʮۭʹ͢ΔʯϘλϯ74DMT ϩʔΧϧ؀ڥ࿦ཧ$16ίΞ਺   ಉ͡ສΦϒδΣΫτ

    αΠζ͸ۃখ ΛೖΕͨόέοτΛͦΕͧΕ༻ҙ ίϯιʔϧ DMT ඵ ඵ ໿ഒ଎͍ʂʂ ΄΅ฒྻ਺௨Γ ສΦϒδΣΫτͩͱɺDMTͰ͸෼Ͱ׬ྃ ສΦϒδΣΫτͩͱɺDMTͰ͸෼Ͱ׬ྃ ˠ෼ͰສΦϒδΣΫτͷ࡟আ͕Մೳʂ ʢ˞ίϯιʔϧͰ͸ະܭଌʣ
  8. DMTͷΠϯετʔϧ ʲ)PNFCSFXʳ ‣ CSFXJOTUBMMHPUPLUBQDMT ʲΠϯετʔϧγΣϧ .BD 8JOEPXT -JOVY ʳ ‣

    DVSMGT4-IUUQTSBXHJUIVCVTFSDPOUFOUDPNHPUPLDMTNBJOJOTUBMMTIcTI ‣ DVSMGT4-IUUQTSBXHJUIVCVTFSDPOUFOUDPNHPUPLDMTNBJOJOTUBMMTIcTITW ʲόΠφϦ .BD 8JOEPXT -JOVY ʳ ‣ (JU)VCϦϦʔεϖʔδ͔Β IUUQTHJUIVCDPNHPUPLDMTSFMFBTFT  ʲιʔεϏϧυ ։ൃ൛ະϦϦʔε (P؀ڥ͕ඞཁ ʳ ‣ HJUDMPOFIUUQTHJUIVCDPNHPUPLDMTHJU ‣ DEDMT ‣ NBLFJOTUBMM
  9. DMTͷίϚϯυΦϓγϣϯ DMT<CCVDLFU/BNF><QQSP fi MF><SSFHJPO><G><J><R><P> ʲC CVDLFU/BNFʳ ‣ 4όέοτ໊  ର࿩Ϟʔυ

    ޙड़ Ͱͳ͍৔߹͸ඞਢ  ର࿩ϞʔυͰ͸ࢦఆͰ͖ͳ͍ ‣ ෳ਺όέοτ໊ࢦఆ͕Ͱ͖·͢  DMTCUFTUCUFTU  ϦʔδϣϯΛލ͙Α͏ͳෳ਺ͷόέοτ΋ࢦఆՄೳ 㾎DMTCUPLZPCVDLFUCVTCVDLFU
  10. DMTͷίϚϯυΦϓγϣϯ DMT<CCVDLFU/BNF><QQSP fi MF><SSFHJPO><G><J><R><P> ʲQ QSP fi MF Φϓγϣϯ ʳ

    ‣ "84ϓϩϑΝΠϧ໊  σϑΥϧτ࣮ߦ؀ڥͷσϑΥϧτͷϓϩϑΝΠϧ͕࢖༻ ʲS SFHJPO Φϓγϣϯ ʳ ‣ "843FHJPO  σϑΥϧτBQOPSUIFBTU ‣ ࣗಈͰόέοτͷϦʔδϣϯ৘ใΛऔಘͯ֘͠౰Ϧʔδϣϯͷ"1*Λୟ͘ͷͰؾʹ ͠ͳͯ͘ ࢦఆ͠ͳͯ͘ 0,
  11. DMTͷίϚϯυΦϓγϣϯ DMT<CCVDLFU/BNF><QQSP fi MF><SSFHJPO><G><J><R><P> ʲG GPSDF Φϓγϣϯ ʳ ‣ 4όέοτ͝ͱ࡟আ͢ΔʢʮGʯແ͠ͰʮόέοτΛۭʹ͢Δʯʣ

    ʲJ JOUFSBDUJWF Φϓγϣϯ ʳ ‣ ର࿩Ϟʔυʢόέοτ໊ݕࡧ༻ʣ  Ϧʔδϣϯލ͗ͰόέοτҰཡදࣔ 4ίϯιʔϧͱಉ༷
  12. DMTͷίϚϯυΦϓγϣϯ DMT<CCVDLFU/BNF><QQSP fi MF><SSFHJPO><G><J><R><P> ʲR RVJFU Φϓγϣϯ ʳ ‣ ϓϩάϨεόʔΛදࣔ͠ͳ͍

    ʲP PME7FSTJPOT0OMZ Φϓγϣϯ ʳ ‣ ඇݱߦόʔδϣϯͷΈશͯ࡟আ ‣ -BUFTU $VSSFOU Ͱͳ͍όʔδϣϯͱ͢΂ͯͷ࡟আϚʔΧʔΛ࡟আ͢Δ  ࠷৽όʔδϣϯͷΦϒδΣΫτ͚ͩΛ4ʹ࢒͢͜ͱ͕Մೳʂ
  13. όέοτ࡟আ ۭʹ͢Δ ߴ଎ʂʂ όʔδϣχϯά࡟আ Ϧʔδϣϯލ͗ ෳ਺όέοτҰׅ࡟আ ର࿩ϞʔυͰόέοτݕࡧ ࣗಈϦτϥΠ ฒྻॲཧ ϓϩάϨεόʔ

    શΦϒδΣΫτ਺දࣔ ࡟আࡁΈ ΦϒδΣΫτ਺දࣔ ࢒Γඵ਺දࣔ DMTͷಛ௃ ࡟আ਺੍ݶແ͠ ඇݱߦόʔδϣϯͷΈ શͯ࡟আ
  14. DMTͷ(JU)VC w JTTVF1VMM3FRVFTU͓ؾܰʹͲ͏ͧʂ ‣ ͜Μͳػೳཉ͍͠ͳͱ͔044ίϯτϦϏϡʔτͷ࿅शͯ͠Έ͍ͨ౳΋͓ؾܰʹʂ  ྫ͑͹͜ΜͳҊͳͲ 㾎όέοτݕࡧ࣌ͷҰཡʹ࡞੒೔࣌Λද͍ࣔͨ͠ 㾎όέοτݕࡧ࣌ʹ࡞੒೔࣌ O೔લͳͲ

    ͰߜΓࠐΈ͍ͨ 㾎ର࿩Ϟʔυ J બ୒࣌ͷίϚϯυΦϓγϣϯʹΩʔϫʔυΦϓγϣϯΛ௥Ճ͍ͨ͠ ‣ ·ͩίϯτϦϏϡʔγϣϯΨΠυͱ͔Կ΋ͳ͍ͷͰͦΖͦΖ࡞Γ͍ͨʜ (JU)VCϦϯΫ ·ͨ͸ʮDMT"84ʯͰݕࡧ
  15. DMTͷ(JU)VC w (PݴޠͰ࣮૷ɿ(PϢʔβʔͷํͷ͍͍αϯϓϧʹͳΔͷͰ͸ ‣ "844%,GPS(P7ϥούʔ࣮૷  ʮ͍͍ײ͡ʯʹ4%,Λϥοϓ͢Δ࣮૷ɾߏ੒ʹ͍ͯ͠·͢ ‣ JOUFSGBDF͍Βͣͷ"844%,ϞοΫʹΑΔςετ࣮૷ 

    ࢀߟɿʮ"844%,GPS(P7ͰJOUFSGBDFͷϞοΫzແ͠Ͱςετʯ 㾎IUUQTHPUPLIBUFOBCMPHDPNFOUSZBXTTELHPWNJEEMFXBSFUFTU ‣ ͦͷଞ  (PݴޠͰͷ$-*πʔϧͷ࡞Γํ  (PݴޠͰͷύοέʔδ σΟϨΫτϦ ߏ੒  (PݴޠͰͷฒྻɾഉଞॲཧ  )PNFCSFX΍(JU)VC3FMFBTFTϖʔδ΁ͷࣗಈϦϦʔεॲཧ $*$% (JU)VCϦϯΫ ·ͨ͸ʮDMT"84ʯͰݕࡧ
  16. 044͸͍͍ͧ w ୭Ͱ΋ؾܰʹ ‣ ίʔυ͸΋ͪΖΜɺطଘόά΍ཁ๬ͷҰཡ·ͰݟΒΕΔ ‣ ։ൃʹࢀՃͰ͖ͯɺࣗ෼Ͱػೳ௥Ճ΍मਖ਼Ͱ͖Δ ‣ όάใࠂ͕Ͱ͖Δɺ࣭໰ɾ૬ஊ͕Ͱ͖Δ ‣

    ϑΥʔΫͯࣗ͠෼༻ʹΧελϚΠζͰ͖Δ w ࣗ෼ͷ࡞ͬͨॻ͍ͨ΋ͷΛଞͷਓ͕࢖ͬͯ͘Εͨͱ͖ͷخ͠͞ɾײಈ ‣ ʮྑ͍ʂʯʮ࢖͍΍͍͢ʂʯʮศརʂʯʮεΫϦϓτॻ͔ͳ͍͍ͯ͘ʂʯ  ϞνϕʹͳΓ·͢ʂͥͻײ૝πΠʔτͨ͠Γ֦ࢄͯ͠Լ͍͞ʂʂʂ ‣ JTTVFཱͯͯ͘ΕͨΓɺ1VMM3FRVFTUΛग़ͯ͘͠ΕͨΓ خ͍͠Ͱ͢ʂ