시작하기
기본 개념
서로 다른 AWS 환경의 버킷을 하나의 전송 경로로 연결하기
AWS 환경은 계정별로 운영·개발·분석 환경을 분리하거나, 조직과 업무에 따라 각각 다른 계정을 사용할 수 있습니다.
예를 들어 운영 계정의 S3 버킷에 생성되는 원본 데이터를 별도의 분석 계정으로 전송하거나, 외부 협력 환경에서 생성된 파일을 내부 AWS 계정으로 가져오는 방식으로 활용할 수 있습니다.
이 경우 Source와 Target은 각각 다른 AWS 환경에 존재하지만, 파일 전송에서는 두 버킷을 하나의 Flow 안에서 연결할 수 있습니다.
AWS Account A AWS Account B
┌─────────────────┐ ┌─────────────────┐
│ Source Bucket │ │ Target Bucket │
│ │ │ │
│ raw-data/ │ ───────────────▶ │ incoming/ │
│ reports/ │ Transfer │ archive/ │
└─────────────────┘ └─────────────────┘
│ │
│ │
Source Region Target Region
예를 들어 다음과 같이 구성할 수 있습니다.
| 구분 | Source 환경 | Target 환경 |
|---|---|---|
| AWS 계정 | 운영 계정 | 분석 계정 |
| S3 버킷 | production-data | analytics-data |
| 리전 | Seoul | Tokyo |
| 파일 경로 | /daily/ | /incoming/ |
| 역할 | 원본 파일 제공 | 파일 저장 및 활용 |
이처럼 계정과 리전이 다르더라도 파일이 생성되는 버킷과 실제 사용할 버킷을 직접 연결해 필요한 파일 이동 경로를 구성할 수 있습니다.
전송 범위
버킷 전체가 아닌 필요한 파일과 경로만 선택하기
서로 다른 계정의 S3 버킷에는 여러 업무에서 사용하는 파일이 함께 저장될 수 있습니다.
따라서 전체 버킷을 그대로 전송하기보다 실제로 다른 환경에서 필요한 경로와 파일만 선택해 전송 범위를 구성할 수 있습니다.
예를 들어 하나의 Source 버킷에 다음과 같은 데이터가 있다고 가정합니다.
production-data
│
├── daily/
│ ├── 2026-09-01/
│ └── 2026-09-02/
│
├── logs/
│ ├── application/
│ └── system/
│
├── backup/
│
└── temporary/
이 중 분석 환경에서 필요한 daily/ 경로만 Target 버킷으로 전송할 수 있습니다.
Source Bucket Target Bucket
production-data analytics-data
│ │
├── daily/ ─────────────────▶ ├── incoming/
│ Selected │ └── daily/
│ │
├── logs/ ─── Not Included
├── backup/ ─── Not Included
└── temporary/ ─── Not Included
전송 범위를 구성할 때는 다음 기준을 함께 설정할 수 있습니다.
| 설정 기준 | 활용 |
|---|---|
| Source 경로 | 전송할 파일이 저장된 S3 Prefix 지정 |
| Target 경로 | 대상 버킷에서 파일을 저장할 위치 지정 |
| 파일 유형 | 특정 확장자 또는 파일 유형 선택 |
| 파일 이름 | 지정된 이름 규칙에 맞는 파일 처리 |
| 제외 경로 | 백업·임시 파일 등 전송 대상에서 제외 |
| 변경 파일 | 새로 생성되거나 변경된 파일만 전송 |
이렇게 하면 계정 전체의 데이터를 복사하는 대신 실제 다른 AWS 환경에서 필요한 파일만 선택적으로 전송할 수 있습니다.
전송 구조
Source 계정과 Target 계정의 접근 범위를 각각 준비하기
서로 다른 AWS 계정의 S3 버킷을 연결할 때는 Source와 Target에서 필요한 접근 범위가 다릅니다.
Source에서는 전송할 파일을 확인하고 읽을 수 있어야 하며, Target에서는 파일을 지정된 버킷과 경로에 저장할 수 있어야 합니다.
┌─────────────────────────┐
│ AWS Account A │
│ │
│ ┌───────────────────┐ │
│ │ Source Bucket │ │
│ │ │ │
│ │ Read Files │──┼──────────┐
│ └───────────────────┘ │ │
└─────────────────────────┘ │
▼
┌──────────────┐
│ Transfer Flow│
└──────┬───────┘
│
┌─────────────────────────┐ │
│ AWS Account B │ │
│ │ ▼
│ ┌───────────────────┐ │
│ │ Target Bucket │◀─┼── Write Files
│ │ │ │
│ └───────────────────┘ │
└─────────────────────────┘
전송을 시작하기 전에 다음 환경을 확인합니다.
| 구분 | 확인 내용 |
|---|---|
| Source 연결 | 원본 AWS 계정과 S3 버킷 접근 가능 여부 |
| Source 권한 | 전송 대상 파일과 경로를 읽을 수 있는지 확인 |
| Target 연결 | 대상 AWS 계정과 버킷 접근 가능 여부 |
| Target 권한 | 지정된 경로에 파일을 저장할 수 있는지 확인 |
| 리전 | Source와 Target의 S3 리전 확인 |
| 저장 경로 | 전송 후 파일이 반영될 Prefix 확인 |
이 구조를 통해 하나의 AWS 계정에서 파일을 가져와 다른 AWS 계정의 지정된 버킷에 직접 반영하는 전송 흐름을 구성할 수 있습니다.
IT 엔지니어
환경 연결
서로 다른 계정의 S3 Storage를 각각 연결하기
먼저 Source와 Target에서 사용할 S3 Storage를 각각 연결합니다.
예를 들어 운영 환경의 AWS 계정에 있는 버킷을 하나의 Storage로 등록하고, 분석 환경의 별도 AWS 계정에 있는 버킷을 다른 Storage로 등록할 수 있습니다.
두 환경은 서로 다른 계정 정보를 사용하더라도 전송 Flow에서는 각각 Source와 Target으로 선택할 수 있습니다.
예를 들어 다음과 같은 구조로 구성할 수 있습니다.
Storage Connections
AWS Production
└── Account A
└── production-data
AWS Analytics
└── Account B
└── analytics-data
각 연결은 독립적으로 관리하므로 특정 계정의 연결 정보를 변경하거나 접근 범위를 조정하더라도 다른 Storage 설정과 구분해 관리할 수 있습니다.
경로 구성
원본 Prefix와 대상 Prefix를 연결해 파일 이동 경로 만들기
Storage 연결이 완료되면 실제 파일이 있는 Source 경로와 Target에서 사용할 저장 위치를 설정합니다.
예를 들어 Source의 다음 경로를 선택할 수 있습니다.
s3://production-data/export/daily/
그리고 Target에서는 다음 위치로 파일을 저장하도록 구성할 수 있습니다.
s3://analytics-data/incoming/production/
이 경우 파일 전송은 다음과 같이 구성됩니다.
Source
production-data
└── export/
└── daily/
├── report-01.csv
├── report-02.csv
└── report-03.csv
│
│ Transfer
▼
Target
analytics-data
└── incoming/
└── production/
├── report-01.csv
├── report-02.csv
└── report-03.csv
필요한 경우 Source와 Target의 폴더 구조를 동일하게 유지하거나, Target 환경에 맞게 새로운 Prefix 구조로 파일을 반영할 수도 있습니다.
실행 기준
새 파일, 변경 파일 또는 정해진 일정에 따라 전송 시작하기
서로 다른 S3 버킷 사이의 파일 이동은 업무 방식에 따라 다양한 조건으로 실행할 수 있습니다.
예를 들어 매일 생성되는 데이터 파일을 다른 계정으로 전달해야 한다면 일정에 따라 Flow를 실행할 수 있고, 새로운 파일이 생성되는 즉시 분석 환경으로 전달해야 한다면 파일 상태를 기준으로 전송을 시작할 수 있습니다.
| 실행 방식 | 활용 예시 |
|---|---|
| Date/Time | 매일 지정된 시간에 정기 전송 |
| After Transfer | 이전 파일 처리 완료 후 다음 버킷으로 전송 |
| Sync | Source의 새 파일과 변경 사항 반영 |
| URL Request | 외부 시스템 요청으로 특정 전송 실행 |
예를 들어 운영 계정에서 매일 생성되는 보고서를 분석 계정으로 전달하는 경우 다음과 같은 흐름으로 구성할 수 있습니다.
파일 생성 → 지정 시간 확인 → Source S3 파일 확인 → Target S3 전송 → 결과 검증
반대로 분석 작업이 완료된 이후에만 다음 계정으로 파일을 이동해야 한다면 이전 Flow의 완료 상태를 기준으로 다음 전송을 시작할 수 있습니다.
계정 간 전송
하나의 Flow에서 Source 버킷과 Target 버킷을 직접 연결하기
전송 조건과 경로 설정이 완료되면 Flow에서 서로 다른 AWS 계정의 S3 버킷을 연결합니다.
Source에서는 전송 대상 파일을 확인하고, Target에서는 지정된 경로에 파일을 저장합니다.
이때 계정이 서로 다르더라도 각 Storage의 연결 정보를 기준으로 하나의 파일 전송 작업을 구성할 수 있습니다.
전송 환경은 단순히 한 방향으로만 구성할 필요는 없습니다.
예를 들어 운영 계정에서 분석 계정으로 원본 데이터를 전달한 뒤, 분석 결과를 다시 다른 버킷으로 전달하는 방식으로도 확장할 수 있습니다.
AWS Account A AWS Account B
Raw Data
│
▼
S3 Source
│
▼
┌───────────────┐
│ Transfer Flow │
└───────┬───────┘
│
▼
Analysis Bucket
│
│ Analysis Complete
▼
Result Transfer
│
▼
Archive Bucket
이렇게 하면 계정별로 분리된 S3 환경에서도 파일 생성 → 계정 간 전송 → 분석 → 결과 저장까지 하나의 파일 흐름으로 연결할 수 있습니다.
결과 검증
전송된 파일과 대상 버킷의 반영 결과 확인하기
전송이 완료되면 Runs에서 전체 작업의 실행 상태를 확인하고, 필요한 경우 상세 정보를 통해 Source와 Target의 처리 결과를 확인합니다.
특히 서로 다른 계정과 리전 사이에서 파일을 이동하는 경우에는 단순히 작업이 완료되었는지뿐 아니라 실제로 대상 버킷에 필요한 파일이 정상적으로 반영되었는지 함께 확인하는 것이 중요합니다.
각 Run에서는 다음과 같은 정보를 확인할 수 있습니다.
| 확인 항목 | 확인 내용 |
|---|---|
| Source | 원본 AWS 계정과 S3 경로 |
| Target | 대상 AWS 계정과 저장 위치 |
| Total Files | 전체 전송 파일 수 |
| Total Size | 전체 전송 용량 |
| Progress | 현재 또는 최종 처리 진행률 |
| Status | 실행 완료 또는 실패 상태 |
| Started | 전송 시작 시간 |
| Completed | 전송 완료 시간 |
파일 수와 전송 결과를 확인한 뒤에는 Target 버킷의 지정된 Prefix에 파일이 정상적으로 반영되었는지 확인할 수 있습니다.
예외 확인
권한, 경로 또는 파일 상태를 확인한 뒤 필요한 작업 다시 실행하기
계정이 다른 S3 버킷 간 전송에서는 Source와 Target 중 한쪽의 접근 설정이나 저장 경로 문제로 작업이 실패할 수 있습니다.
이 경우 Run의 상세 정보를 통해 어느 단계에서 문제가 발생했는지 확인한 뒤 필요한 환경을 조정할 수 있습니다.
Run 확인
│
├── Source 접근 문제
│ └── 계정 연결 및 읽기 권한 확인
│
├── Target 저장 문제
│ └── 버킷 경로 및 쓰기 권한 확인
│
├── 파일 조건 문제
│ └── Source 경로와 파일 규칙 확인
│
└── 연결 문제
└── Storage 연결 상태 확인
│
▼
Retry
│
▼
New Run
│
▼
Target 반영 확인
이 레시피를 적용하면 서로 다른 AWS 계정 또는 리전의 S3 버킷 연결 → Source와 Target 경로 지정 → 필요한 파일 선택 → 실행 조건 설정 → 계정 간 파일 전송 → 대상 버킷 반영 확인 → 실패 항목 확인 및 재실행까지 하나의 흐름으로 구성할 수 있습니다.
이를 통해 운영, 분석, 개발, 백업 등으로 분리된 AWS 환경에서도 계정과 리전의 경계를 넘어 필요한 파일을 지정된 S3 버킷으로 자동 전송하고, 결과까지 확인하는 파일 전송 환경을 구성할 수 있습니다.