macOS에서 Civo Object Storage를 S3로 탐색합니다.
리전 엔드포인트, s3cmd와 rclone과 AWS CLI에 바로 넣는 설정, 그리고 네이티브 클라이언트가 다르게 하는 일.
Civo Object Storage는 S3를 말합니다. 그래서 두 가지만 맞으면 거의 모든 S3 클라이언트가 붙습니다. 스토어가 사는 리전의 엔드포인트, 그리고 같은 리전에서 만든 자격 증명입니다. Civo 문서는 s3cmd까지 안내하고 나머지 도구는 알아서 하라고 둡니다. 이 페이지는 s3cmd와 rclone과 AWS CLI의 설정을 그대로 적고, 이어서 CivoCloudManager가 택한 경로를 보여 줍니다. 엔드포인트와 액세스 키를 Civo API에서 바로 읽어 오기 때문에 손으로 설정할 것이 없는 방식입니다.
Civo용 S3 클라이언트 설정하기
-
01
리전의 엔드포인트를 찾습니다.
Civo는 Object Store 엔드포인트를
https://objectstore.<region>.civo.com형태로 만들고 리전 코드는 소문자입니다. 그래서 런던의 스토어는https://objectstore.lon1.civo.com, 프랑크푸르트는https://objectstore.fra1.civo.com입니다. 스토어마다 Civo 대시보드에 자기 엔드포인트를 표시하고 REST API의objectstore_endpoint필드로도 돌려줍니다. Civo의 리전별 기능 개요에 따르면 Object Store는 LON1, FRA1, NYC1, MUM1에서 제공되고 PHX1에는 없습니다. -
02
같은 리전에서 자격 증명을 만듭니다.
Civo Object Store는 전부 비공개라 액세스 키 ID와 시크릿 키가 필요합니다. Civo 대시보드의 Object Stores에서 리전 선택기를 스토어의 리전에 맞춰 둔 채로 만들거나, Civo CLI로 만듭니다. civo objectstore credential export
-a<access_key>명령은 그 쌍을AWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY,AWS_DEFAULT_REGION,AWS_HOST로 출력해 셸에 바로 붙여 넣을 수 있게 합니다. -
03
s3cmd: host_base와 host_bucket.
~/.s3cfg의 [default] 아래에host_base=objectstore.fra1.civo.com,host_bucket=objectstore.fra1.civo.com,bucket_location= fra1,use_https= True,signature_v2= False를 넣고access_key와secret_key를 채웁니다.host_bucket에host_base와 같은 호스트명을 주면 s3cmd가 path style 주소 지정을 유지하고, Civo가 응답하는 방식이 그쪽입니다. 그다음 s3cmd ls로 스토어 목록을, s3cmd ls s3://STORENAME으로 하나를 보고, s3cmd put file.tar s3://STORENAME/backups/로 올리고, s3cmd get-rs3://STORENAME/backups/로 프리픽스 전체를 받습니다. 설정 파일 없이 쓰려면 같은 두 값을 명령줄에서--host=와--host-bucket=으로 줍니다. -
04
rclone: type은 s3, provider는 Other.
rclone config를 돌려 s3를 고르거나,
~/.config/rclone/rclone.conf에 블록을 직접 적습니다. [civo] 아래에 type = s3, provider = Other,env_auth= false, 자격 증명에서 가져온access_key_id와secret_access_key, region = fra1, endpoint =https://objectstore.fra1.civo.com, acl = private을 둡니다. 그러면 rclone lsd civo:로 스토어 목록을, rclone ls civo:STORENAME으로 객체를 보고, rclone copy ./dir civo:STORENAME/dir -P로 폴더를 진행률과 함께 올리고, rclone ncdu civo:STORENAME으로 텍스트 모드 브라우저를 띄웁니다. 같은 설정을 일회성 플래그로도 쓸 수 있습니다.--s3-providerOther--s3-endpointhttps://objectstore.fra1.civo.com--s3-regionfra1. -
05
AWS CLI: 매 호출에 --endpoint-url.
AWS CLI에는 Civo 전용 플러그인이 필요 없고 명령마다 엔드포인트만 있으면 됩니다. aws s3 ls
--endpoint-urlhttps://objectstore.fra1.civo.com, 이어서 aws s3 ls s3://STORENAME--endpoint-url... 과 aws s3 cp file.tar s3://STORENAME/--endpoint-url... 입니다. 자격 증명은AWS_ACCESS_KEY_ID와AWS_SECRET_ACCESS_KEY에서 오거나 이름 붙인 프로파일에서 오고, Signature V4 스코프가 맞도록AWS_DEFAULT_REGION에 Civo 리전 코드를 넣습니다. 최근 버전에 대한 각주 하나. AWS CLI 2.23부터는 업로드에 CRC64NVME 체크섬을 기본으로 붙이는데 모든 S3 호환 엔드포인트가 이를 받아 주지는 않습니다. put이 체크섬 오류로 실패하면 AWS_REQUEST_CHECKSUM_CALCULATION=when_required와 AWS_RESPONSE_CHECKSUM_VALIDATION=when_required를 설정하세요.
한 시간을 잡아먹는 함정, 키는 리전 하나에 묶입니다
Civo 문서는 이걸 두 문장으로 분명히 적어 두었는데 눈으로 훑고 지나가기 쉽습니다. Object Store는 리전별이고, Object Store를 관리하고 접근하는 자격 증명은 만들어진 리전에 묶입니다. 대시보드가 FRA1에 있는 동안 만든 키는 같은 계정이고 같은 청구서여도 LON1 엔드포인트에서 인증되지 않습니다. 증상이 시크릿 오타처럼 보이는 인증 오류나 서명 오류라서, 자연스러운 반응은 키를 재발급하는 것이고 그러면 똑같이 틀린 리전에 키가 하나 더 생깁니다. 리전 선택기를 먼저 보고, 스토어 옆에서 자격 증명을 만들고, 설정을 의심하는 것은 그다음입니다.
명령줄이 덮지 못하는 것
스크립트와 백업과 CI에는 s3cmd와 rclone과 AWS CLI가 맞는 답이고 여기 있는 어떤 것도 그 자리를 대신하지 않습니다. 이들이 주지 않는 것은 스토어를 들여다보는 일입니다. 폴더 트리, 한눈에 들어오는 크기, 끌어낼 수 있는 선택 영역. Cyberduck이나 Transmit 같은 범용 Mac S3 클라이언트가 그 자리를 메우지만 Civo에 대해 아무것도 모릅니다. 그래서 엔드포인트를 입력하고, 스토어마다 키 두 개를 붙여 넣고, 자격 증명이 바뀔 때마다 손으로 맞춰 줘야 합니다.
앱 경로, 입력할 엔드포인트가 아예 없습니다
CivoCloudManager는 Civo API 키로 한 번 인증하고 Civo REST API v2에서 Object Store 목록을 읽습니다. 그 목록에는 스토어마다 엔드포인트와 연결된 자격 증명이 이미 들어 있습니다. S3 클라이언트를 거기서 조립하므로 엔드포인트 칸도, 키를 붙여 넣는 일도, 설정 파일도 없습니다. S3 계층은 순수 Swift입니다. AWS Signature V4를 CryptoKit의 HMAC-SHA256으로 계산하고, AWS SDK도 Electron도 없습니다. continuation token을 쓰는 ListObjects v2, 공통 프리픽스를 따라가는 브레드크럼 이동, 다중 선택, 진행 표시가 붙은 폴더 재귀 다운로드를 합니다. 모양을 정직하게 말하면 이 브라우저는 읽고 내려받습니다. 업로드와 삭제는 여전히 s3cmd나 rclone의 몫입니다. 앱에는 macOS 15 이상이 필요합니다.
닷파일 대신 Touch ID 뒤에 있는 액세스 키
CLI를 계속 쓰더라도 설치할 값어치가 있는 부분이 여기입니다. s3cmd가 동작한다는 말은 시크릿 키가 ~/.s3cfg에 평문으로 있다는 뜻이고, rclone.conf와 ~/.aws/credentials도 마찬가지입니다. 내 사용자 권한으로 도는 모든 프로세스가 그 셋을 읽을 수 있고, 홈 디렉터리를 훑는 무엇이든 마찬가지입니다. CivoCloudManager는 Civo API 키를 macOS 키체인에 두고, 화면에서 Object Store 시크릿 액세스 키를 드러내려면 먼저 Touch ID나 시스템 암호를 요구합니다. 한계는 분명하고 말해 둘 만합니다. 키를 터미널로 복사해 내는 순간 그것은 다시 평문 파일입니다.
쓰지 않는 스토어를 위한 Pause와 Resume
놀고 있는 스토어도 할당된 크기만큼 계속 과금됩니다. Pause는 모든 객체를 civo-cloud-manager라는 중앙 Object Store로 복사하고, 데이터가 들어가지 않으면 그 vault를 먼저 키우고, 복사된 키와 크기를 원본과 대조한 다음, 일치할 때만 원본 스토어를 삭제합니다. Civo 청구서에서 그 항목이 사라집니다. Resume는 같은 이름과 같은 자격 증명으로 스토어를 다시 만들고, 객체를 되돌리고, 키와 크기를 다시 검증한 뒤 vault를 비웁니다. 동시에 옮기는 객체는 최대 네 개입니다. 정직한 한계는 이렇습니다. 검증은 내용을 해싱하는 대신 이름과 크기를 비교하고, 전송은 객체 전체를 메모리에 담으며, 원격 manifest는 원본을 지운 뒤에 기록되고 로컬 manifest가 그 대비책입니다.
어떤 일에 어떤 클라이언트인가
넷 다 같은 엔드포인트에서 같은 S3 API와 이야기합니다. 차이는 설정이 어디에 사는지, 시크릿이 어디에 남는지, 그리고 무엇을 볼 수 있는지입니다.
| 작업 | s3cmd | rclone | AWS CLI | CivoCloudManager |
|---|---|---|---|---|
| 엔드포인트 설정 | ~/.s3cfg의 host_base와 host_bucket | 리모트의 endpoint | 매 호출의 --endpoint-url | Civo API에서 읽어 옴 |
| 시크릿 키가 남는 곳 | ~/.s3cfg, 평문 | rclone.conf, 평문 | ~/.aws/credentials, 평문 | macOS 키체인, 표시에 Touch ID |
| 스토어를 눈으로 탐색 | 아니요 | rclone ncdu, 텍스트 모드 | 아니요 | 예, 브레드크럼 파일 브라우저 |
| 객체 업로드와 삭제 | 예 | 예 | 예 | 브라우저에는 없음 |
| 폴더 재귀 다운로드 | s3cmd get -r | rclone copy | aws s3 cp --recursive | 예, 진행 표시와 함께 |
| 놀고 있는 스토어를 Pause해 과금 중단 | 아니요 | 아니요 | 아니요 | 예, 삭제 전 검증이 붙은 vault |
| CI에서 실행 | 예 | 예 | 예 | 아니요, Mac 앱입니다 |
S3로 쓰는 Civo Object Storage, 답변
- Civo Object Storage 엔드포인트 URL은 무엇인가요?
- Civo Object Store 엔드포인트는
https://objectstore.<region>.civo.com형태를 따르고 리전 코드는 소문자입니다. 런던은https://objectstore.lon1.civo.com, 프랑크푸르트는https://objectstore.fra1.civo.com입니다. 엔드포인트는 스토어를 만든 리전에 따라 달라집니다. 스토어마다 Civo 대시보드에 자기 엔드포인트를 보여 주고 Civo REST API의objectstore_endpoint필드로도 돌려줍니다. - Civo Object Storage에 s3cmd나 rclone을 쓸 수 있나요?
- 둘 다 됩니다. AWS CLI도, 다른 S3 호환 클라이언트도 마찬가지입니다. s3cmd라면
~/.s3cfg의host_base와host_bucket을objectstore.fra1.civo.com같은 리전별 호스트명으로 두고access_key와secret_key를 채웁니다. rclone이라면 type = s3, provider = Other, endpoint =https://objectstore.fra1.civo.com과 같은 키 쌍으로 리모트를 만듭니다. AWS CLI라면 명령마다--endpoint-urlhttps://objectstore.fra1.civo.com을 넘깁니다. - Civo Object Storage 액세스 키가 왜 동작하지 않나요?
- 보통 원인은 리전입니다. Civo는 Object Store가 리전별이고 자격 증명이 만들어진 리전에 묶인다고 밝히고 있습니다. 그래서 FRA1에서 만든 키는 같은 계정이어도 LON1 엔드포인트에서 인증되지 않습니다. 대시보드를 스토어의 리전에 맞춘 상태에서 자격 증명을 만드세요. 두 번째로 흔한 원인은 엔드포인트를 아예 받지 못한 클라이언트, 또는 기본값으로 남아 있는 s3cmd의
host_bucket입니다. 그러면 요청이 Civo가 아니라 Amazon으로 갑니다. - Mac에 Civo Object Storage용 GUI가 있나요?
- CivoCloudManager가 네이티브 macOS 앱이고 macOS 15 이상, Mac App Store에 있으며 Civo를 압니다. 스토어마다 엔드포인트와 액세스 키를 Civo API에서 읽으므로 설정할 것이 없습니다. 브레드크럼으로 탐색하고 파일 하나, 다중 선택, 폴더 전체를 재귀로 내려받습니다. 업로드와 삭제는 CLI의 몫으로 남습니다. Cyberduck이나 Transmit 같은 범용 S3 클라이언트도 엔드포인트를 입력하고 스토어마다 키 두 개를 붙여 넣으면 Civo에 연결됩니다.
- Pause는 Civo Object Store의 데이터를 어떻게 하나요?
- Pause는 모든 객체를 내 Civo 계정 안의 civo-cloud-manager라는 중앙 Object Store로 복사하고, 복사된 키와 크기를 원본과 대조한 다음에야 원본 스토어를 삭제해 과금을 끊습니다. Resume는 같은 이름과 같은 자격 증명으로 스토어를 다시 만들고, 객체를 되돌리고, 키와 크기를 다시 검증한 뒤 vault를 비웁니다. 데이터는 Civo 계정을 벗어나지 않고, 검증은 내용 해시가 아니라 이름과 크기로 합니다.
가이드
단계별 안내와 솔직한 비교.
- 01 Civo API 키 연결 Civo 대시보드에서 키를 만들고, 한 번 붙여 넣고, 그다음부터는 macOS 키체인이 들고 있습니다.
- 02 내 IP로 방화벽 열기 수동 절차, 그 뒤에 남는 유동 IP 함정, 그리고 마감 시각에 규칙을 닫아 주는 무료 메뉴 막대 경로.
- 03 Lens·OpenLens·k9s 비교 클러스터를 가리지 않는 도구 셋, Civo만 아는 도구 하나. 그 차이가 무엇을 열어 둘지를 정합니다.
- 04 Mac에서 쓰는 Civo DNS 도메인을 Civo 네임서버로 넘긴 다음, 존은 브라우저 탭이 아니라 네이티브 앱에 둡니다.
- 05 변경 이력 출시된 모든 릴리스를 최신순으로, 스토어 릴리스 노트가 담기에는 짧은 설명까지 붙여서.
심층 가이드
Civo 제품별로 따로 읽는 페이지.
CivoCloudManager가 다루는 Civo 영역마다 별도의 페이지가 있습니다. 구체적인 동작, 트레이드오프, 아키텍처 세부까지 담았습니다. 지금 하는 일에 가장 가까운 것을 고르세요.
- 01 Mac을 위한 Civo CLI 대안 GUI가 CLI보다 나은 지점, 그렇지 않은 지점, 그리고 둘을 함께 쓰는 법.
- 02 Mac을 위한 Civo Kubernetes GUI 실시간 클러스터 대시보드, 실시간 Pod 로그, kubectl 불필요.
- 03 Mac을 위한 Civo Object Storage 브라우저 네이티브 S3 호환 브라우저. 쓰지 않는 bucket은 중앙 vault로 Pause.
- 04 Mac 메뉴 막대에서 여는 Civo 방화벽 방화벽마다 클릭 한 번으로 열고 닫기, 자동 IP 감지, 자동 닫힘 타이머.
- 05 Mac을 위한 Civo 비용 대시보드 Civo charges API의 실제 청구 데이터. 기간 선택기와 월말 예상치.
엔드포인트 설정을 건너뛰세요.
CivoCloudManager는 엔드포인트와 액세스 키를 내 Civo 계정에서 읽어 오므로, 설정 파일이 필요한 대신 스토어가 그냥 열립니다. 메뉴 막대 티어는 무료, 전체 대시보드는 Mac App Store에서 일회성 구매.