설명
S3 버전 관리가 활성화되지 않으면 객체를 덮어쓰거나 삭제했을 때 이전 상태로 되돌릴 수 있는 선택지가 줄어듭니다. 버전 관리는 백업을 완전히 대체하지는 않지만 변경 이력이 중요한 데이터의 복구에 유용합니다. 활성화 이전에 이미 유실된 내용을 복원하는 기능은 아닙니다.
잠재적 영향
- 잘못 덮어쓴 객체를 이전 상태로 되돌리기 어려워질 수 있습니다.
- 삭제나 자동화 오류 후 데이터 손실이 커지고 복구가 늦어질 수 있습니다.
해결 방법
- 변경 이력을 보존해야 하는 버킷에
versioning: yes를 설정하세요. - 이전 버전 삭제 권한을 제한하고 보존 요구에 맞는 수명 주기 정책과 별도 백업을 검토하세요.
- 버전 저장 비용과 실제 복구 절차를 확인하세요. 한 번 활성화한 버전 관리는 중지할 수 있지만 미사용 상태로 되돌릴 수는 없습니다.
예시
버전 관리 설정을 비교하는 부분 예제입니다. policy.json은 별도로 준비해야 하며 버킷 정책과 Requester Pays 설정도 실제 요구사항에 맞추세요.
변경 전
yaml
- name: S3 버킷 생성
amazon.aws.s3_bucket:
name: mys3bucket
policy: "{{ lookup('file','policy.json') }}"
requester_pays: yes
versioning: no
새 버전 보존을 활성화하지 않습니다. 이미 버전 관리를 사용하던 버킷에 적용하면 중지되며 기존 버전을 자동으로 삭제하지는 않습니다.
변경 후
yaml
- name: S3 버킷 생성
amazon.aws.s3_bucket:
name: mys3bucket
policy: "{{ lookup('file','policy.json') }}"
requester_pays: yes
versioning: yes
이후의 변경에 대해 객체 버전을 보존합니다. 버전 ID를 지정하지 않은 일반 삭제는 삭제 마커를 만들지만, 권한이 있는 주체가 특정 버전을 영구 삭제할 수 있으므로 삭제 권한도 제한하세요.