Oracle Cloud Object Storage로 워드프레스 블로그 이미지 관리하기 | 완벽 가이드

블로그 이미지 관리 — OCI Object Storage 주제를 표현한 개념 그림

이 글은 OCI Object Storage와 SFTPGo를 이용해 워드프레스 이미지 파일을 별도 저장소에서 관리하는 방법을 다룹니다. 저장 용량과 비용, 공개 범위는 계정과 구성에 따라 달라집니다. 파일 업로드가 워드프레스 미디어 등록이나 기존 이미지 이전까지 자동으로 처리하는 것은 아닙니다.

왜 새로운 이미지 관리 방법이 필요할까요?

기본 워드프레스 설치에서는 업로드한 이미지가 보통 wp-content/uploads에 저장됩니다. 이미지 원본과 파생 크기 파일, 백업이 늘어나면 서버의 저장 공간을 함께 사용합니다.

저장량과 이미지 전달 트래픽을 확인한 뒤 분리 여부를 판단하세요. 이미지 최적화 플러그인의 무료 한도와 요금은 제품마다 다르며, Object Storage가 이미지 압축이나 크기 조정을 대신하는 것은 아닙니다.

Object Storage를 활용한 해결 방법

Object Storage는 이미지 파일을 컴퓨트 인스턴스와 별도로 보관하는 선택지입니다. 무료 한도는 계정 유형과 저장 계층에 따라 확인해야 하며, 매월 새로 쌓이는 저장 공간이 아닙니다. 필요한 용량과 API 요청·전송 비용을 함께 계산하세요.

다음 효과는 구성과 사용량을 측정해 판단합니다:

  1. 이미지 전달 부하 분리
    • 이미지 요청을 별도 저장소로 보내면 원본 서버의 해당 전달 부하를 줄일 수 있습니다
    • 전체 응답 시간은 캐시, 이미지 크기와 데이터베이스 부하도 함께 측정해야 합니다
  2. 효율적인 백업 관리
    • 본문·데이터베이스와 이미지 파일을 나눠 백업하되 URL 관계와 복원도 함께 검증합니다
    • 기존 객체 URL과 접근 설정을 유지하면 서버 이전 시 이미지 파일을 그대로 사용할 수 있습니다
  3. CDN 연동 검토
    • CDN을 별도로 구성하면 캐시 적중과 방문자 위치에 따라 이미지 전달 시간을 줄일 수 있습니다
    • 이미지 용량, 캐시 헤더와 실제 로딩 시간을 확인하세요

Object Storage 파일 업로드 설정

아래 화면은 과거 설정 예시입니다. 설치 버전의 메뉴와 지원 조건을 확인하고, 업로드 권한과 공개 읽기 범위를 따로 검토하세요.

1. Customer Secret Key 생성하기

Customer Secret Key는 OCI의 S3 호환 인터페이스에서 사용하는 인증 정보입니다. 키를 만든 것만으로 권한이 부여되지는 않으므로 해당 사용자의 IAM 정책과 버킷 접근 범위를 확인해야 합니다.

1. OCI 콘솔(https://cloud.oracle.com)에 로그인합니다.

Oracle Cloud Login Console
Oracle Cloud Login Console

2. 화면 오른쪽 상단의 프로필 아이콘을 클릭합니다.

3. “User Settings” 또는 “My profile”을 선택합니다.

OCI User Settings
OCI User Settings

4. 왼쪽 메뉴에서 “Customer Secret Keys”를 클릭합니다.

5. “Generate Secret Key” 버튼을 클릭합니다.

OCI Generate  Secret Keys
OCI Generate Secret Keys

6. 키의 이름을 입력합니다. 예를 들어 “wordpress-blog-storage-key”와 같이 나중에 알아보기 쉬운 이름을 사용하세요.

OCI Define Secret Key Name
OCI Define Secret Key Name

7. 키 생성 후 Access Key와 Secret Key를 확인합니다. 키 값이 포함된 화면은 공유하지 마세요.

OCI Copy Secret Key
OCI Copy Secret Key
  • Access Key: 이 값은 나중에도 다시 확인할 수 있지만 다음 단계에서 필요하므로 메모해 두세요.
  • Secret Key: 이 값은 지금 단 한 번만 표시되므로 반드시 안전한 곳에 저장해 두세요.

OCI Generated Secret Key
OCI Generated Secret Key

2. 이미지 저장소(버킷) 만들기

공개용 이미지 전용 버킷을 사용하는 예시입니다. 버킷은 기본적으로 비공개이며, 비공개 파일과 백업을 섞어 보관한 버킷을 그대로 공개하면 안 됩니다.

1. OCI 콘솔 왼쪽 메뉴에서 “Storage” → “Object Storage & Archive Storage”를 선택합니다.

OCI Bucket Creation
OCI Bucket Creation

2. “Create Bucket”을 클릭합니다.

OCI Click Create Bucket
OCI Click Create Bucket

3. 버킷 설정을 진행합니다:

  • 이름은 알아보기 쉽게 “blog-images-2025″와 같이 설정합니다.
  • 이미지 전달에 사용할 저장 계층, 리전, 암호화·보존 조건을 검토합니다. 기본값을 무조건 유지하지 마세요.
  • “Create”를 클릭하여 버킷을 생성합니다.
OCI Complete Bucket Creation
OCI Complete Bucket Creation

4. 생성된 버킷의 공개 설정:

직접 공개 URL로 이미지를 제공하기로 결정한 경우에만 공개 읽기를 검토합니다. 객체 목록 공개 여부는 별도 선택이며 이미지 표시를 위해 목록까지 공개할 필요는 없습니다.

  • OCI 콘솔에서 방금 생성한 버킷으로 이동합니다
  • “Edit Visibility” 버튼을 클릭합니다
OCI Edit Bucket Visibility
OCI Edit Bucket Visibility
  • Visibility를 “Public”으로 변경합니다
  • “Save Changes”를 클릭합니다
OCI Complete Editing Bucket Visibility
OCI Complete Editing Bucket Visibility

공개 버킷의 객체는 로그인 없이 읽을 수 있습니다. 공개할 이미지와 권리를 확인하고, 민감한 파일이나 백업은 비공개 저장소에 분리하세요.
공개 읽기가 업로드 권한을 부여하는 것은 아니며, 파일명을 숨기는 것도 접근 제어가 아닙니다.

참고:

OCI의 namespace는 여러분의 테넌시를 고유하게 식별하는 문자열입니다. Object Storage의 URL을 구성할 때 필요한 중요한 정보인데요, 다음과 같은 방법으로 확인할 수 있습니다.

방법 1: 프로필에서 확인하기

  1. OCI 콘솔에 로그인합니다.
  2. 화면 오른쪽 상단의 프로필 아이콘을 클릭합니다.
  3. “Tenancy: [테넌시이름]”을 클릭합니다.
  4. Object Storage Namespace 항목에서 확인할 수 있습니다.

방법 2: Object Storage 콘솔에서 확인하기

  1. OCI 콘솔에서 “Storage” → “Object Storage & Archive Storage”로 이동합니다.
  2. 방금 만든 버킷을 클릭하고 버킷 상세 정보를 엽니다.
  3. Bucket Information의 General 섹션 상단에 “Namespace:”라는 레이블과 함께 표시됩니다.

namespace는 보통 알파벳과 숫자로 구성된 문자열입니다. 예를 들어 ‘axdf1g2x3’ 같은 형태를 가지고 있습니다. 이 값은 여러분의 테넌시가 생성될 때 자동으로 할당되며, 변경할 수 없습니다.

3. SFTPGo 서버 설치

SFTPGo는 S3 호환 스토리지를 연결할 수 있는 파일 전송 서버입니다. 관리자용 WebAdmin과 사용자용 WebClient를 구분해서 사용합니다. 이 글은 SFTPGo를 로컬에서 실행하는 예시이며 단순 SFTP 클라이언트 설치와는 다릅니다.

3.1. SFTPGo 다운로드

SFTPGo Download Links
SFTPGo Download Links

아래 v2.6.4 링크는 글 작성 당시의 예시이며 최신 버전 추천이 아닙니다. 설치 전 SFTPGo 공식 릴리스에서 현재 지원 버전, 보안 수정, OS·CPU 아키텍처와 업그레이드 절차를 확인하세요. 기존 설치를 이 글만 보고 덮어쓰지 마세요.

3.2. SFTPGo 설치와 실행:

  • 다운로드한 파일의 압축을 풀어주세요.
  • Windows의 경우 설치 프로그램을 실행합니다.
  • macOS나 Linux의 경우 터미널에서 실행 권한을 부여해야 할 수 있습니다.

3.3. SFTPGo 관리자 포털 설정

  • SFTPGo 서비스가 실행 중이고 기본 HTTP 바인딩을 사용하는 로컬 예시에서는 http://localhost:8080/web/admin으로 접속합니다. 포트·주소는 설치 설정에 따라 다르며, 관리 화면을 인터넷에 그대로 노출하지 마세요.
SFTPGo Initial Setup
SFTPGo Initial Setup
  • 초기 설정 화면에서:
    • 관리자 사용자 이름 설정 (예: admin)
    • 다른 서비스와 구분한 강한 비밀번호 설정 및 안전한 보관
    • ‘Create admin and Sign in’ 버튼 클릭

4. Object Storage 연결 사용자 추가

WebAdmin에서 파일 접근용 사용자를 추가합니다. 관리자 계정과 구분하고 필요한 버킷·접두사·작업 권한만 부여하세요:

  • 왼쪽 메뉴에서 “Users” 선택
  • 오른쪽 상단의 Plus(+) 버튼 클릭
SFTGo Add User step1
SFTGo Add User step1
  • 기본 정보 입력:
    • Username: 원하는 사용자 이름
    • Password: 안전한 비밀번호
SFTPGo Add User step2
SFTPGo Add User step2
  • S3 호환 스토리지 설정:
    • Storage에서 “S3 Compatible” 선택
    • Root directory와 로컬 임시 파일 경로는 설치 버전의 요구사항을 확인하세요. 객체 접두사와 로컬 경로는 서로 다릅니다
    • Bucket: 아까 만든 버킷 이름 입력
    • Region: 여러분의 OCI 리전 입력 (예: ap-seoul-1)
    • Access Key: 메모해둔 Access Key 입력
    • Secret Key: 메모해둔 Secret Key 입력
    • Endpoint: 아래 형식으로 정확히 입력
       https://{namespace}.compat.objectstorage.{region}.oraclecloud.com
OCI Finding NAMESPACE
OCI Finding NAMESPACE
SFTPGo Add User step3
SFTPGo Add User step3
  • 페이지 하단의 “Use path-style addressing” 옵션을 켜주세요
  • key_prefix는 이 SFTPGo 사용자에게 보이는 객체 접두사 범위를 정합니다. 비워두면 버킷 루트가 보이므로 필요한 범위를 먼저 정하세요. OCI 키의 IAM 권한이나 공개 객체 접근까지 제한하는 설정은 아닙니다
  • “Save” 버튼으로 사용자 설정을 저장합니다
SFTPGo Add User step4
SFTPGo Add User step4
SFTPGo Check User Added
SFTPGo Check User Added

실제 사용하기

연결 사용자의 목록 조회·업로드 권한을 각각 확인합니다. 아래 localhost 주소는 SFTPGo가 같은 컴퓨터에서 실행되는 예시입니다.

SFTPGo WebClient로 연결 확인

WebClient로 연결 상태를 확인합니다.

SFTPGo WebClient로 테스트:

  • 웹 브라우저에서 http://localhost:8080/web/client 접속
  • 방금 만든 사용자 계정으로 로그인:
    • Username: 설정한 사용자 이름
    • Password: 설정한 비밀번호
  • 로그인 후 버킷의 내용이 보이는지 확인
SFTPGo Client Login
SFTPGo Client Login

 

  • 예상한 버킷·접두사만 보이는지 확인하고, 다른 경로의 파일이 노출되지 않는지 점검
SFTPGo Verify Bucket Access
SFTPGo Verify Bucket Access

폴더 관리:

  • New Folder 버튼으로 폴더 생성
  • 지원 버전의 이동 기능을 확인하세요. S3 객체 이름 변경은 복사 후 삭제로 처리될 수 있어 기존 이미지 URL과 링크를 먼저 확인해야 합니다
SFTPGo Create OCI Object Storage Folder
SFTPGo Create OCI Object Storage Folder

파일 업로드:

  • WebClient의 Upload 버튼에서 컴퓨터의 파일을 선택
  • 지원되는 경우 컴퓨터의 파일을 브라우저 업로드 영역으로 드래그
  • 업로드 완료와 대상 객체 이름을 확인
SFTPGo Upload Images Into Bucket
SFTPGo Upload Images Into Bucket
SFTPGo Finish Uploading Images
SFTPGo Finish Uploading Images

업로드된 이미지 사용:

이미지가 빠진다면 원본 파일을 삭제하지 말고 본문의 이미지 주소와 저장소의 파일·접근 권한부터 대조하세요.

공개용 버킷에 업로드한 이미지의 읽기 허용 여부를 확인한 뒤 URL을 사용합니다. 파일을 업로드한 것만으로 워드프레스 미디어 라이브러리나 기존 글의 이미지 주소가 바뀌지는 않습니다. 아래는 실제 주소가 아닌 native endpoint 템플릿입니다:

https://objectstorage.{region}.oraclecloud.com/n/{namespace}/b/{bucket-name}/o/{image-name}

주소의 각 부분은 다음을 뜻합니다:

  • {namespace}: 여러분의 OCI 테넌시 네임스페이스
  • {region}: 버킷이 위치한 리전 (예: ap-seoul-1)
  • {bucket-name}: 방금 생성한 버킷의 이름
  • {image-name}: 폴더처럼 보이는 접두사도 포함한 전체 객체 이름. URL에 넣을 때 필요한 문자를 인코딩하고 이미 인코딩된 URI를 중복 인코딩하지 마세요.

기본 경로는 OCI 콘솔의 Object Details에서 “URL Path (URI)”를 복사하는 것입니다.
실제 버킷의 리전·namespace·이름을 확인하고 URI의 인코딩을 유지하세요.
위 예시는 기존 native endpoint 형식입니다.
OC1의 전용 native 호스트는 {namespace}.objectstorage.{region}.oci.customer-oci.com 형식이며, S3 호환 설정의 compat 호스트와는 다릅니다. 기존 endpoint도 계속 지원됩니다. 예시 문자열로 현재 이미지 URL을 일괄 치환하지 마세요.

콘솔에서 확인하는 순서는 다음과 같습니다:

  • 버킷으로 이동해서 해당 이미지 클릭
  • 오른쪽에 나타나는 “Object Details” 패널에서
  • “URL Path (URI)” 항목 확인 및 복사하면 됩니다
Check Uploaded Image URL
Check Uploaded Image URL
Copy Image URL
Copy Image URL

주의사항과 팁

  • 보안 관련:
    • Access Key와 Secret Key는 절대로 타인과 공유하지 마세요.
    • Customer Secret Key는 안전하게 보관하세요
    • public 버킷에는 민감한 정보가 포함된 이미지를 업로드하지 마세요
    • 정기적으로 사용하지 않는 이미지를 정리하세요
  • 효율적인 사용을 위해:
    • 이미지는 업로드 전에 적절한 크기로 최적화하세요
    • 내용을 알아볼 수 있는 파일명을 사용하세요
    • 중요한 이미지는 주기적으로 백업하세요

마무리

Object Storage로 이미지 저장과 전달을 분리할 수 있지만, 무료 한도와 비용·공개 범위·백업·URL 유지는 계속 관리해야 합니다. 작은 이미지 묶음으로 업로드, 표시와 복원을 확인한 뒤 적용 범위를 넓히세요.

질문할 때는 SFTPGo 버전과 어느 단계에서 문제가 발생했는지 알려주세요. Access Key·Secret Key나 비공개 접근 URL은 댓글에 넣지 마세요.

위로 스크롤