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는 --query 는 JMESPath 표현식을 사용 파라미터를 .

이는 다음을 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설치 프로그램 포함) grep및 awkAWS 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.