์ต๊ทผ ๊ณ ๊ฐ์ฌ์ ์๊ณ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ๋ 2~3๋ ์น์ ๋ฐ์ดํฐ ์ค ์ผ๋ถ๋ฅผ CSV๋ก ์ถ์ถํ๊ณ GZIP์ผ๋ก ์์ถํ ํ S3 ๋ฒํท์ ์ ๋ก๋ํ๋ ์ ์ง๋ณด์ ์์ ์ ์งํํ๊ณ ์์ต๋๋ค. ๊ทธ๋์ ๊ฐ๋ฐ์๋ก ์ผํด์ค๋ฉด์ AWS CLI ๋ฅผ ์์ฃผ ํ์ฉํ์ง๋ ์์๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ ์ง๋ณด์ ์์ ๊ณผ์ ์์ AWS S3 CLI ๋ฅผ ์ด๋ป๊ฒ ํ์ฉํ๋์ง ๋จ๊ฒจ๋ณด๋๋ก ํ๋ ค๊ณ ํฉ๋๋ค. ์ด๋ฏธ ๋ง์ ๋ธ๋ก๊ทธ ๊ธ์์ ๊ณต์ ๋ ๋ด์ฉ์ด๋ผ์ ํฅ๋ฏธ๋ก์ด ์ ๋ณด๋ ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
๊ฐ๋ณ CSV ํ์ผ์ GZIP ์ผ๋ก ์์ถํ๊ธฐ โ
์๊ณ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก๋ถํฐ CSV ํ์ผ๋ค์ /data/main/prepare
ํด๋ ํ์์ {app_name}/{yyyyMM}/{yyyyMMdd}.csv ํจํด์ผ๋ก ์ ์ฅ๋๋๋ก ์ถ์ถ๋๋๋ก ๋ฏธ๋ฆฌ ์์
ํ๋๋ฐ์. ์ ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํด์ผํ๋ ์ถ์์ผ๋ ChatGPT์ ๋์์ ๋ฐ์ ์๋์ ๊ฐ์ด find ๋ช
๋ น์ด๋ก ์ฐพ์ CSV ํ์ผ๋ค์ gzip ๋ช
๋ น์ด๋ฅผ ์ํํ์์ต๋๋ค.
find /data/main/prepare -type f -name "*.csv" -exec gzip {} +
# CPU ์ฝ์ด๋ฅผ ํ์ฉํ ๋ณ๋ ฌ ์ฒ๋ฆฌ
find /data/main -type f -name "*.csv" | xargs -P "$(nproc)" gzip
์์ถ์ ์งํํ ๋ -exec gzip {} \;
๋ฅผ ์ฌ์ฉํ์๋๋ฐ ํ์ผ์ด ๋ง์ ๊ฒฝ์ฐ์๋ -exec gzip {} +
๋ก ์ํํ๋๊ฒ์ด ๋ ํจ์จ์ ์ด๋ผ๊ณ ํฉ๋๋ค. ์ด ๊ธ์ ์์ฑํ๊ธฐ ์ํด์ ์ ๋ฆฌํ๋ค๋ณด๋ Bash ์์์๋ CPU ์ฝ์ด๋ฅผ ์ต๋ํ ํ์ฉํด์ ์์ถํ ์ ์๋ ๋๋ฒ์งธ ๋ฐฉ๋ฒ๋ ์์์ ์๊ฒ๋์๋ค์.
์์ถ๋ CSV ํ์ผ์ S3 ๋ฒํท์ผ๋ก ๋ณด๋ด๊ธฐ โ
GZIP ์ผ๋ก ์์ถ๋ CSV ํ์ผ๋ค์ ๊ณ ๊ฐ์ฌ์์ ์ ๊ณตํด์ค S3 ๋ฒํท์ผ๋ก ์ ๋ก๋ํด์ผํ๋ ์์ ์ ์งํํด์ผ ํฉ๋๋ค. ์์ถ๋ CSV ํ์ผ์ ์ด ํฌ๊ธฐ๋ ์ฝ 256GB์ด๋ฉฐ ์ ๋ก๋ํด์ผํ ํ์ผ์ ๊ฐ์๋ 4800๊ฐ ์ด์์ด์์ต๋๋ค. ์ด๋ sync ๋ช ๋ น์ด๋ฅผ ์ํํ ๋ ์ ๋ก๋ ์ฑ๋ฅ์ ์ํด max_concurrent_requests ์ค์ ๊ฐ์ ๋ณ๊ฒฝํ ์๋ ์์ผ๋ ๋ณต์ ๋ ์๋ฒ์ ์ธ์คํด์ค ์ฌ์์ ๋คํธ์ํฌ ์๋๊ฐ ์ค์ํ์ฌ ๊ตณ์ด ๋ณ๊ฒฝํ์ง ์์๋ 30๋ถ ์ด๋ด์ ์ ๋ก๋๊ฐ ์๋ฃ๋์์ต๋๋ค.
aws s3 sync /data/main/ s3://bucket_name/ --exclude "*" --include "*.gz"
๊ณ ๊ฐ์ฌ ์ธํ๋ผ์ด๊ธฐ ๋๋ฌธ์ AWS ์น ์ฝ์์ ํตํด ์๋ฒ ์ธ์คํด์ค์ ๋ชจ๋ํฐ๋ง ์งํ๋ฅผ ์ดํด๋ณผ ์ ์์ด์ ์์ฌ์ด ๊ฒ ๊ฐ์ต๋๋ค.
AWS S3 ํธ์ถ ์ ์ธ์ฆ์ ๋ฐ๊ธ์ ์ด์ ๐ฅ โ
๊ณ ๊ฐ์ฌ ์ธํ๋ผ ํ์์ ์ ์ง๋ณด์ ์์
์ ์ํด ์๊ณ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํ ๋ณต์ ์๋ฒ๋ฅผ ์ ๊ณตํด์ฃผ์์ง๋ง AWS S3๋ฅผ ํธ์ถํ ์ ์๊ธฐ๊น์ง ์๊ฐ๋ณด๋ค ์๊ฐ์ด ๋ง์ด ์์๋ ์ ๋ณด๋ฅผ ๊ณต์ ํด๋ณผ๊น ํฉ๋๋ค. AWS S3 CLI ๋ช
๋ น์ด๋ฅผ ์ํํ๋ ค๊ณ ๋ณด๋ ์๋์ ๊ฐ์ด SSL CERTIFICATE_VERIFY_FAILED ์ค๋ฅ๊ฐ ๋ฐ์ํ์๋๋ฐ์. openssl ๋ช
๋ น์ด๋ฅผ ํตํด ์ธ์ฆ์ ์ฒด์ธ์ ํ์ธํด๋ณด๋ Troubleshooting errors for the AWS CLI์ ๋์์๋ ๊ฒ์ฒ๋ผ ์ธ์ฆ์ ์ฒด์ธ์ด Fortinet
์ด๋ผ๊ณ ํ๋ WAF์ ์ฌ์ฉ๋๋ ๋ณด์ ์๋ฃจ์
์ด ๋ฐ๊ธ์์ธ ๊ฒ์ ์๊ฒ๋์๊ณ ์ด์ ๋ํ ์ ๋ณด๋ฅผ ๊ณ ๊ฐ์ฌ ๋ด๋น์๋ฅผ ํตํด ์ธํ๋ผํ์ผ๋ก ์ ๋ฌํ์ง๋ง ๋ณต์ ๋ ์๋ฒ์์ S3 ๊ฐ ํต์ ์ WAF ๋ฐฉํ๋ฒฝ์์ ์ ์ธ๋๋ค๋ ๋ต๋ณ์ ๋ฐ์์ต๋๋ค.
ubuntu@hostname:/data$ aws s3 ls s3://[bucketname]
SSL validation failed for https://[bucketname].s3.ap-northeast-2.amazonaws.com/?list-type=2&prefix=&delimiter=%2F&encoding-type=url [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1125)
# S3 ๋ฒํท ์ฃผ์์ ๋ํ ์ธ์ฆ์ ์ฒด์ธ์ ํ์ธํ๋ ๋ฐฉ๋ฒ
ubuntu@hostname:/data$ openssl s_client -showcerts -connect [bucketname].s3.ap-northeast-2.amazonaws.com:443
depth=1 C = US, ST = California, L = Sunnyvale, O = Fortinet, OU = Certificate Authority, CN = FGVM4VTM23003261, emailAddress = support@fortinet.com
verify error:num=19;self signed certificate in certificate chain
verify return:1
depth=0 CN = *.s3.ap-northeast-2.amazonaws.com
verify return:1
AWS S3 CLI ๋ช ๋ น์ด ์ํ ์ --no-verify-ssl ์ต์ ์ ํตํด ์ธ์ฆ์ ๊ฒ์ฆ์ ๋ฌด์ํด๋ณธ ๊ฒฐ๊ณผ ์ ๋ฌ๋ฐ์ ์ก์ธ์ค ํค๊ฐ S3 ๋ฒํท์ ๋ํ ๊ถํ(ListObject, GetObject, PutObject)์ด ์๋ ๊ฒ์ผ๋ก ํ์ธ๋์์ผ๋ฉฐ, ๊ณ ๊ฐ์ฌ ์ธํ๋ผํ์ผ๋ก๋ถํฐ ํด๊ฒฐ๋์๋ค๋ ๋ต๋ณ์ ๋ฐ์์ ๋ ์ ํํ ์์ธ์ ๊ณต์ ๋์ง ์์๊ธฐ์ ์ด๋ ํ ์ฌ์ ๋ก ํฌํฐ๋ท์ ์ธ์ฆ์๊ฐ ์ ๋ฌ๋์๋์ง๋ ์ ์ ์์ต๋๋ค.
S3 ๋ฒํท ๋๊ธฐํ ๊ฒฐ๊ณผ ํ์ธํ๊ธฐ โ
AWS S3 CLI์ sync ๋ช ๋ น์ด๋ฅผ ํตํด ์ ๋ก๋๋ CSV ์์ถ ํ์ผ์ ์ต์ข ์ ๋ก๋ ๊ฒฐ๊ณผ๋ฅผ ํตํด ์ ๋๋ก ์ ๋ฌ๋์๋์ง๋ฅผ ๊ฒ์ฆํด์ผํฉ๋๋ค. ์ด ๋ฐฉ๋ฒ์ ๋ํด์๋ ์ฐพ์๋ณด๋ --summarize ๊ณผ --human-readable ์ต์ ์ ํตํด S3 ๋ฒํท์ ๋ํ ์คํ ๋ฆฌ์ง ์งํ๋ฅผ ๊ณ์ฐํ ์ ์์์ต๋๋ค.
aws s3 ls s3://[bucketname] --recursive --summarize --human-readable
Total Objects: 4895
Total Size: 295.0 GiB
์ด๋ฒ ์ ์ง๋ณด์ ์์ ์ ๋ฆฌ๋ ์ค ๋ช ๋ น์ ์ ์คํฌ๋ฆฝํธ ์์ฑ ์ ChatGPT์ ๊ฐ์ ์์ฑํ AI๋ฅผ ์ต๋ํ ํ์ฉํ์ฌ ์๊ฐ๋ณด๋ค ์ฝ๊ฒ ์งํํ ์ ์์๋ ๊ฒ ๊ฐ์ต๋๋ค. ๊ณ ๊ฐ์ฌ์์ ์๊ตฌํ ์ ์ง๋ณด์ ์์ ์ ์์ง ๋จ์์์ผ๋ AI ์์ด์ ํธ ๋์์ ํตํด ์์๋ณด๋ค ๋ ๋น ๋ฅด๊ฒ ์๋ฃ๋ ๊ฒ์ผ๋ก ์๊ฐ๋ฉ๋๋ค.