update 2026-11-07 18:00 - · -

IT 로드맵 › 클라우드 › AWS의 S3 칸이다.


S3는 늘 켜져 기다리는 서버이고, 나는 버킷 안의 파일만 관리한다

질문은 「내 미니 PC 대신 S3에 파일을 두면 무엇이 달라지나」였다. 내 PC에 Floci를 띄워 두고, 명령을 직접 쳐 보며 답을 세웠다.

처음 짐작은 「내 PC의 hello.txt를 남이 받아 가려면 웹서버가 있어야 한다」였다. 내 PC 쪽은 그대로 맞다. 그래서 S3 쪽도 내가 무언가를 띄워야 할 거라고 생각했다.

버킷을 만들기도 전에 대답이 왔다. 명령이 제대로 안 먹어서 버킷이 없는 채로 브라우저에서 http://localhost:4566/my-bucket/hello.txt를 열었는데, 이게 왔다.

<Error>
<Code>NoSuchBucket</Code>
<Message>The specified bucket does not exist.</Message>
<BucketName>my-bucket</BucketName>
...
</Error>

나는 웹서버를 띄우지 않았다. 그런데도 누군가 「그런 버킷은 없다」고 대답했다. 그래서 첫 답이 섰다. S3는 이미 켜져서 요청을 기다리고 있고, 나는 버킷을 만들어 그 안의 파일만 관리한다. aws s3 mb s3://my-bucket으로 버킷을 만들고 aws s3 cp로 파일을 올리자, 같은 주소에서 파일 내용 hello가 그대로 왔다.

두 번째 짐작은 「웹서버는 사람이 쓰고, S3는 프로그램이 쓴다」였는데, 반만 맞았다. 파일 이름을 빼고 버킷 주소 http://localhost:4566/my-bucket을 열자, 사람이 보는 화면이 아니라 정해진 양식의 XML이 왔다.

<ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Name>my-bucket</Name>
<Contents>
<Key>hello.txt</Key>
<LastModified>2026-11-06T13:01:05Z</LastModified>
<Size>16</Size>
...
</Contents>
</ListBucketResult>

이건 프로그램이 읽으라고 만든 양식이다. 그런데 바로 전에 파일 내용 hello는 사람인 나에게도 그대로 왔다. 그래서 고쳤다. 파일은 누구에게나 그대로 오고, 파일 목록이나 에러 같은 S3의 대답은 프로그램이 읽는 양식으로 온다.

그 양식을 읽어 주는 프로그램은 내 PC에 있었다. 같은 목록을 aws s3 ls s3://my-bucket으로 물으니 터미널에는 한 줄만 나왔다.

2026-11-06 22:01:05         16 hello.txt

이름과 크기는 XML과 같았다. 시간은 처음에 같다고 봤는데, 「시」 자리만 다시 보니 XML은 13, 터미널은 22였다. 9시간 차이다. XML 끝의 Z는 UTC라는 표시이고, 한국은 UTC보다 9시간 빠르다. 그러니까 S3는 UTC로 보냈고, 내 PC의 AWS CLI가 그 XML을 읽어 한국 시간으로 바꾸고 필요한 칸만 골라 한 줄로 보여 줬다.

정리하면 내 PC와 S3는 이렇게 다르다.

  내 PC에 파일을 둘 때 S3에 둘 때
요청을 받는 서버 내가 띄운다 S3가 이미 켜져 기다린다
내가 하는 일 서버와 파일 둘 다 버킷과 그 안의 파일만
목록 · 에러의 모양 내 웹서버가 정한다 S3가 정한 XML 양식
사람이 보기 좋게 바꾸는 쪽 웹서버 내 PC의 프로그램(AWS CLI)
  1. 웹서버를 띄우지 않았는데 S3가 대답한다. 버킷이 없으니 NoSuchBucket
  2. AWS CLI로 버킷을 만들고 hello.txt 를 올린다. 서버는 만들지 않았다
  3. 파일 주소로 물으면 파일 내용 hello 가 그대로 온다
  4. 버킷 주소로 물으면 사람이 보는 화면이 아니라 XML 목록이 온다. 시간은 UTC
  5. 같은 XML을 내 PC의 AWS CLI가 받아 한국 시간 한 줄로 바꿔 보인다
내가 실제로 쳐 본 순서대로 그렸다. 실선 화살표는 요청, 점선 화살표는 대답이고, 아래로 갈수록 나중이다. 세로 간격은 걸린 시간이 아니다. S3 서버는 칸 하나로 그렸다. 실제 AWS의 S3가 안에서 몇 대의 서버로 나뉘어 도는지는 그리지 않았다. 지금 S3는 내 PC의 Floci라서 네트워크도 내 PC 안의 localhost다.

여기서 Claude가 알려 준 것은 두 가지다. 시간이 같다고 봤을 때 「시 자리만 다시 보라」고 짚어 준 것, 그리고 XML 끝의 Z가 UTC 표시라는 것이다. 「AWS는 UTC로 보낸다」와 「바꿔 준 건 내 PC의 AWS CLI다」는 내가 냈다. 실제 AWS의 S3에서 같은 결과가 나오는지는 아직 확인하지 않았다.


S3에서 아직 안 본 것

  • 지금은 비어 있다. S3 섹션을 닫다가 생긴 「키도 없이 hello.txt가 열렸다, 실제 AWS에서도 그럴까」는 IAM에서 닫았다

← AWS로

최상단으로 이동했습니다!
확대 이미지

조회수: - · -

업데이트: