AWS S3 : 사용중인 디스크 공간을 확인하려면 어떻게해야합니까?


113

AWS 계정이 있습니다. S3를 사용하여 다른 서버의 백업을 저장하고 있습니다. 질문은 AWS 콘솔에 S3 클라우드에서 사용중인 디스크 공간에 대한 정보가 있습니까?


1
모든 개체를 가져온 다음 모든 파일 크기를 합산해야합니다. 한 번의 작업으로는 할 수 없습니다.
Layke

이 문제에 대한 실제 해결책이 없다는 것이 이상합니다. 수천만 개의 파일이있는 경우 모든 항목을 살펴보고 계산하는 것은 해결책이 아닙니다! AWS의 s3 UI에서 관리-> 지표에서 사용량을 쉽게 확인할 수 있습니다. 명령 줄에서 이것을 얻을 수있는 방법이없는 이유는 무엇입니까?
사랑

답변:


117

Yippe-AWS CLI 업데이트를 통해 버킷을 통해 재귀 적으로 ls ...

aws s3 ls s3://<bucketname> --recursive  | grep -v -E "(Bucket: |Prefix: |LastWriteTime|^$|--)" | awk 'BEGIN {total=0}{total+=$3}END{print total/1024/1024" MB"}'

print total / 1024 / 1024 / 1024 * .03은 1TB 미만인 경우 $ 사용량에 대한 좋은 추정치를 제공합니다. @cudds 굉장함-감사합니다 !!!
chrislovecnm 17:29에

4
단일 버킷 인 경우 grep 부분이 필요하지 않습니다.
jpbochi 2014 년

7
이제 AWS Cloudwatch에는 매일 업데이트되는 버킷 크기 및 객체 수에 대한 지표가 있습니다. 시간! aws.amazon.com/blogs/aws/...
cudds

3
aws cloudwatch get-metric-statistics --namespace AWS/S3 --start-time 2015-07-15T10:00:00 --end-time 2015-07-31T01:00:00 --period 86400 --statistics Average --region eu-west-1 --metric-name BucketSizeBytes --dimensions Name=BucketName,Value=toukakoukan.com Name=StorageType,Value=StandardStorage 중요 : dimension 인수에 StorageType과 BucketName을 모두 지정해야합니다 . 그렇지 않으면 결과가 표시되지 않습니다.
Sam Martin

@SamMartin StorageType은 무엇이어야합니까? 또한이 답변은 100GB보다 큰 버킷을 계산하는 데 매우 오랜 시간이 걸립니다
Vivek Katial

104

원래 질문이 3 년 전이라는 점을 감안할 때 이것이 AWSCLI에 언제 추가되었는지 확실하지 않지만 명령 줄 도구는 다음을 실행하여 멋진 요약을 제공합니다.

aws s3 ls s3://mybucket --recursive --human-readable --summarize

4
당신과 크리스토퍼가 가장 좋은 답변입니다.
Michael Ahlers

2
허용되는 답변보다 훨씬 간단한 솔루션입니다. 감사!
Adrian Macneil

1
이것은 버전과 함께 실제 크기를 표시하지 않습니다. 모든 버전에서 s3 버킷의 전체 크기를 확인하는 방법이 있습니까?
Shanika Ediriweera

1
각 버킷의 총 크기를 인쇄합니다.for b in $(aws s3 ls | awk '{ print $NF }'); do printf "$b "; aws s3 ls s3://$b --recursive --human-readable --summarize | tail -1; done
Matt White

69

AWS 콘솔을 사용하여 S3 버킷의 크기를 확인하려면 :

  1. S3 버킷 이름을 클릭합니다.
  2. "관리"탭을 선택합니다.
  3. "메트릭"탐색 버튼을 클릭합니다.
  4. 기본적으로 버킷의 저장소 측정 항목이 표시됩니다.

도움이 되었기를 바랍니다.


3
버킷에 TB 데이터가있는 경우 더 빠르게 작동합니다. 허용되는 답변은 해당 척도의 모든 개체를 계산하는 데 많은 시간이 걸립니다.
sokras

또한 이것은 ls기반 솔루션은 그렇지 않은 불완전한 업로드를 캡처 합니다.
David Moles

가장 빠른 방법은이 답변입니다
Mohammad Zekrallah

36

s3cmd는를 실행 s3cmd du하고 선택적으로 버킷 이름을 인수로 전달하여 이를 표시 할 수 있습니다 .


1
참고로-나는 이것을 cudds 대답에서 aws cli 버전으로 시도했습니다. 둘 다 잘 작동하지만 릴리스 1.5.0-rc1에서 시도한 경우 s3cmd가 상당히 느 렸습니다.
DougW

@DougW : 감사합니다, 유용한 정보. AWS CLI 1.0.0은 2013 년 9 월출시 되었으므로 제가 답변을 작성할 당시에는 존재하지 않았습니다.
markusk

s3cmd는 AWS4 해싱을 지원하지 않으므로 EU 지역 "eu-central-1"
Koen을

@Koen .: 감사합니다, 나는 이것을 몰랐습니다. s3cmd 유지 관리자가 AWS4에 대한 지원 추가를 고려하고있는 것 같습니다. github.com/s3tools/s3cmd/issues/402
markusk 2014

@Koen .: s3cmd는 이제 2015 년 1 월 12 일에 출시 된 1.5.0부터 AWS4 해싱을 지원합니다. s3tools.org/news를 참조하십시오 .
markusk

28

이제 AWS CLI는 --queryJMESPath 표현식을 사용 파라미터를 .

이는 다음을 list-objects사용하여 주어진 크기 값을 합산 할 수 있음을 의미합니다.sum(Contents[].Size) 과 같은 계산을 length(Contents[]).

이는 아래와 같이 공식 AWS CLI를 사용하여 실행할 수 있으며 2014 년 2 월 에 도입되었습니다.

 aws s3api list-objects --bucket BUCKETNAME --output json --query "[sum(Contents[].Size), length(Contents[])]"

Windows 명령 줄에서 쿼리 문자열 주위에 큰 따옴표를 사용해야했습니다. 그래도 챔피언처럼 작동합니다.
Travis Steel

주의 : 버킷이 비어 있으면 다음 오류와 함께 명령이 실패합니다. In function sum(), invalid type for value: None, expected one of: ['array-number'], received: "null"그렇지 않으면 쿼리가 잘 작동합니다!
mechatroner

7

python( pip설치 프로그램 포함) grepawkAWS CLI (EC2, S3 및 기타 여러 서비스 용 명령 줄 도구 ) 가있는 Linux 상자에서

sudo pip install awscli

그런 다음 .awssecret아래와 같은 내용으로 홈 폴더에 파일 을 만듭니다 (필요에 따라 키, 암호 및 지역 조정).

[default]
aws_access_key_id=<YOUR_KEY_HERE>
aws_secret_access_key=<YOUR_SECRET_KEY_HERE>
region=<AWS_REGION>

이 파일을 사용자에게만 읽기 / 쓰기로 만듭니다.

sudo chmod 600 .awssecret

환경으로 내보내십시오.

 export AWS_CONFIG_FILE=/home/<your_name>/.awssecret

그런 다음 터미널에서 실행합니다 ( \여기에서 쉽게 읽을 수 있도록로 구분 된 한 줄 명령 ).

aws s3 ls s3://<bucket_name>/foo/bar | \
grep -v -E "(Bucket: |Prefix: |LastWriteTime|^$|--)" | \
awk 'BEGIN {total=0}{total+=$3}END{print total/1024/1024" MB"}'
  • aws부분 (임의로 또는 "서브 폴더") 버킷 나열
  • grep(사용 부품 제거합니다 -v) 정규 표현식 (사용하여 일치하는 라인 -E). ^$빈 줄입니다.-- 출력의 구분 줄aws s3 ls
  • 지난 awk단순히 추가 total한 후 결과 출력 (KB의 크기)의 3 콜럼 마지막에 표시

참고이 명령은 재귀 적이 아닌 현재 버킷 또는 '폴더'에 대해 작동합니다.


7

Cloud Watch를 사용하면 S3 버킷에 대한 지표를 생성 할 수도 있습니다. 크기 및 개체 수별로 메트릭을 표시합니다. 서비스> 관리 도구> 클라우드 시계. S3 버킷이있는 지역을 선택하고 사용 가능한 측정치 중 크기 및 객체 수 측정치를 선택합니다.


6

/server/84815/how-can-i-get-the-size-of-an-amazon-s3-bucket을 참조 하십시오.

의해 답변을 Vic ...

<?php
if (!class_exists('S3')) require_once 'S3.php';

// Instantiate the class
$s3 = new S3('accessKeyId', 'secretAccessKey');
S3::$useSSL = false;

// List your buckets:
echo "S3::listBuckets(): ";
echo '<pre>' . print_r($s3->listBuckets(), 1). '</pre>';

$totalSize = 0;
$objects = $s3->getBucket('name-of-your-bucket');
foreach ($objects as $name => $val) {
    // If you want to get the size of a particular directory, you can do
    // only that.
    // if (strpos($name, 'directory/sub-directory') !== false)
    $totalSize += $val['size'];
}

echo ($totalSize / 1024 / 1024 / 1024) . ' GB';
?>

이 경우 기가 바이트가 1024 3인지 1000 3인지 아십니까? 확실한 S3 진술을 찾는 데 어려움을 겪고 있습니다.
dfrankow

@dfrankow이 줄 echo ($totalSize / 1024 / 1024 / 1024) . ' GB';은 소스 코드 맨 아래에 있습니다.
MJD

@MJD 나는 여기에 내 생각이 무엇인지 기억하지 못합니다. 이 PHP 코드가 아니라 "기가 바이트"라는 단어의 s3cmd 또는 S3 사용에 대해 질문했습니다.
dfrankow

5

Christopher의 답변 외에도.

버전이 지정된 버킷 사용의 총 크기를 계산해야하는 경우 :

aws s3api list-object-versions --bucket BUCKETNAME --output json --query "[sum(Versions[].Size)]"

최신 버전과 보관 된 버전을 모두 계산합니다.



1

AWS 콘솔은이를 표시하지 않지만 Bucket Explorer를 사용 하거나 Cloudberry Explorer를 를 의 총 크기를 가져올 수 있습니다. 둘 다 무료 버전을 사용할 수 있습니다.

참고 : 이러한 제품은 여전히 ​​각 개별 개체의 크기를 가져와야하므로 개체가 많은 버킷의 경우 시간이 오래 걸릴 수 있습니다.


그래도 평가판 만 볼 수 있습니다. 해당 오퍼가 제거 되었습니까?
Trefex 2013 년

1

@cudds의 답변을 바탕으로 :

function s3size()
{
    for path in $*; do
        size=$(aws s3 ls "s3://$path" --recursive | grep -v -E "(Bucket: |Prefix: |LastWriteTime|^$|--)" | awk 'BEGIN {total=0}{total+=$3}END{printf "%.2fGb\n", (total/1024/1024/1024)}')
        echo "[s3://$path]=[$size]"
    done
}

...

$ s3size bucket-a bucket-b/dir
[s3://bucket-a]=[24.04Gb]
[s3://bucket-b/dir]=[26.69Gb]

또한 Cyberduck 은 버킷 또는 폴더의 크기를 편리하게 계산할 수 있습니다.


1

Mini John 의 대답은 완전히 나를 위해 일했습니다! 굉장 ... 추가해야했다

--region eu-west-1 

하지만 유럽에서


1

이것은 오래된 질문이지만 답을 찾고 있었기 때문에 그것을 발견했습니다. 일부 답변은 S3 브라우저를 사용하여 데이터를 관리하는 것을 기억하게했습니다. 버킷과 적중 속성을 클릭하면 총계가 표시됩니다. 아주 간단합니다. 브라우저를 적극 권장합니다 : https://s3browser.com/default.aspx?v=6-1-1&fam=x64


0

인간 친화적 인 UI를 선호한다면 S3 클라이언트를 통해서도 가능합니다.

저는 무료이며 크로스 플랫폼 인 CrossFTP를 사용 합니다. 여기서 폴더 디렉토리를 마우스 오른쪽 버튼으로 클릭-> "속성 ..."을 선택-> 크기 및 짜임새 옆에있는 "계산"버튼을 클릭합니다.


0

s3admin 은 버킷을 탐색하고, 총 크기를 계산하고, 가장 큰 / 가장 작은 파일을 표시 할 수있는 오픈 소스 앱 (UI)입니다. 버킷 및 사용량에 대한 빠른 개요를 제공하도록 맞춤화되었습니다.


0

질문 : AWS 콘솔에서 S3 클라우드에서 사용중인 디스크 공간에 대한 정보 ?

나는 그래서에 청구 대시 보드 및 현재 법안의 S3 사용을 확인합니다 .

그들은 당신에게 정보-MTD-Gb에서 6 소수점, IOW, Kb 수준까지 제공합니다.

지역별로 세분화되어 있지만 두 개 이상의 지역을 사용한다고 가정 할 때 추가하는 것만으로도 충분합니다.

BTW : 결제 정보에 액세스하려면 특정 IAM 권한이 필요할 수 있습니다.


-2

Cloud Turtle 을 사용 하여 개별 버킷의 크기를 얻습니다. 버킷 크기가> 100Gb를 초과하면 크기를 표시하는 데 시간이 걸립니다. Cloud turtle은 프리웨어입니다.


8
이 소프트웨어에주의하십시오. 여분의 크롬 확장 프로그램을 설치하고 오히려 스팸처럼 보입니다.
styks
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.