1. S3 버킷 생성
- 로컬 환경에서는 파일이나 데이터에 바로 접근할 수 있지만, 프로젝트를 확장하거나 외부 환경과 연동하려면 데이터 저장 위치를 별도로 분리할 필요가 있다.
- S3는 네트워크를 통해 접근 가능한 저장소이기 때문에, 애플리케이션과 데이터 저장소를 분리할 수 있고, 여러 환경에서 동일한 데이터를 참조할 수 있다.
- 또한 서버가 변경되거나 컨테이너가 재시작되더라도 데이터가 영향을 받지 않기 때문에 운영 환경에서 안정적인 구조를 구성할 수 있다.
- 이번 프로젝트에서는 데이터 수집·처리 과정에서 생성되는 파일을 로컬이 아닌 S3에 저장하도록 변경함으로써, 실행 환경과 데이터 저장을 분리하고 이후 확장이나 배포를 고려한 구조로 전환할 예정이다.
AWS 서비스에서 S3을 검색하면 버킷 생성이 가능한 페이지가 나온다.

버킷 만들기를 클릭하여 아래와 같이 설정한다.

버킷 만들기 버튼을 클릭 후 버킷이 생성 되었는지 확인한다.

2. IAM 생성
로컬 환경에서 작업할 때는 파일 시스템이나 로컬 DB에 바로 접근할 수 있다.
하지만 클라우드 환경에서는 상황이 다르다.
예를 들어 S3에 데이터를 저장하거나 RDS에 접근하려면, 해당 리소스에 대한 접근 권한이 명확하게 관리되어야 한다.
여기서 필요한 것이 IAM이다.

사용자 세부 정보 입력

그룹 생성 클릭 후 설정

초기에는 빠른 검증을 위해 FullAccess를 사용

사용자 그룹 선택

사용자 생성

콘솔 로그인 ID와 콘솔 암호는 여기에서 마지막으로 확인할 수 있기 때문에, 따로 확인하고 기억해 두거나 .csv 파일 다운로드하기

액세스키 생성

Command Line Interface 선택

설명 태그 값 입력

액세스키 또한 확인이 어렵기 때문에 따로 메모하거나 csv 파일 다운로드

터미널에서 발급받은 액세스키로 s3에 접근이 가능한지 확인

test 파일 업로드 후 작동 확인

3. 다음 단계
- S3와 IAM을 통해 외부 저장소에 접근할 수 있는 환경을 구성했기 때문에, 이제는 기존 파이프라인에서 생성되는 데이터를 실제로 S3에 저장하도록 구조를 변경할 예정이다.
- 우선 데이터 수집 및 처리 과정에서 생성되는 파일을 로컬 경로가 아닌 S3 경로로 전환하고, Airflow DAG에서도 S3를 기준으로 데이터를 읽고 저장하도록 수정할 계획이다.
- 또한 이후에는 RDS와 같은 외부 데이터베이스와 연동해 S3에 저장된 데이터를 기반으로 적재 및 분석이 가능한 구조로 확장할 예정이다.
- 이 과정을 통해 단순 로컬 환경에서 동작하던 구조를 클라우드 환경에서도 동일하게 동작할 수 있는 형태로 전환할 수 있을 것으로 예상한다.
AWS S3를 활용한 데이터 저장 구조 설계
S3 저장 로직 추가스트리밍 데이터를 처리한 이후, 결과를 로컬이 아닌 클라우드 저장소(S3)에 적재하도록 구조를 변경했다. 컨테이너 기반 환경에서는 Pod 재시작이나 재배포 시 로컬 파일이 유
jjaehyeok.tistory.com
'Navisafe > Infrastructure' 카테고리의 다른 글
| Spark 연동을 위한 AWS RDS(MySQL) 환경 구성 (0) | 2026.05.03 |
|---|---|
| AWS S3를 활용한 데이터 저장 구조 설계 (0) | 2026.05.02 |
| Kubernetes 환경 구성 (5) - PostgreSQL + PostGIS + pgRouting 구성 (0) | 2026.04.29 |
| Kubernetes 환경 구성 (4) - 데이터 파이프라인 동작 검증 (0) | 2026.04.20 |
| Kubernetes 환경 구성 (3) - NaviSafe 서비스 배포와 Kafka Topic 초기화 (0) | 2026.04.20 |