필요하다고 느낀 점:
프로젝트를 진행할 때 서로 작업했던 내용을 합치면서 진행해야 하는데 직접 만나서 하지 못하는 경우에는 단톡방에서 파일을 첨부했다는 메시지를 계속 보내면서 작업해야 하는데 이것이 은근 번거롭다 생각하여 구축한 솔루션
프로젝트 작업 클라우드는 S3 스토리지를 확장하여 OwnCloud로 제공하고 S3 파일 업로드 시 이벤트 알림을 통해 SNS 프로토콜(SMS, EMAIL, HTTP, HTTPS, SQS 등등)로 업로드 이벤트 로그를 전송할 수 있음.
목차
- OwnCloud설치 및 Cloudflare 적용 (생략)
- IAM 사용자 정책 설정(access/secret key 발급)
- OwnCloud에서는 S3 외부 스토리지가 files_external 앱에 번들로 제공되지 않기 때문에 Market에서 따로 설치
- S3 정보 입력(버킷명, 호스트네임, IAM Access key, secret key, 리전)
- SNS Topic 생성/구독 생성
- S3 이벤트 알람 생성
1. OwnCloud 설치 및 Cloudflare 적용 (생략)
2. IAM 사용자 정책 설정(access/secret key 발급)
3. OwnCloud에서는 S3 외부 스토리지가 files_external 앱에 번들로 제공되지 않기 때문에 Market 에서 따로 설치
왼쪽 상단 메뉴를 클릭하게 되면 Market에 접속할 수 있는 아이콘이 나온다.
밑으로 쭉 내리다 보면 External Storage: S3라고 나온다.
들어가서 설치하면 된다.
4. S3 정보 입력(버킷명, 호스트네임, IAM Access key, secret key, 리전)
이제 설정 - 관리자(저장소) - 외부 저장소 활성화
이렇게 하면 외부 저장소 종류에 Amazon S3 compatible 보일 것이다.
- 버킷 이름 (예 : jamong)
- 호스트네임 (S3 버킷 엔드포인트. 예: s3.ap-northeast-2.amazonaws.com) (만약 제대로된 주소로 기입하지 않을 시 새로 생성된 버킷으로 등록 되니 주의하도록 하자)
- 리전 (서울이면 ap-northeast-2)
- IAM Access key
- IAM secret key
정상적으로 입력됐으면 옆에 초록색 표시로 아이콘이 나온다.
추가(선택사항)
기본적으로 외부 저장소를 마운트 할 시 공유 링크 생성이 안된다.
만약 다른 사용자들에게 공유하고 싶다면 오른쪽 톱니바퀴 아이콘을 눌러 '공유 사용'을 체크해주면 된다.
5. SNS Topic 생성/구독 생성
{
"Version": "2008-10-17",
"Id": "example-ID",
"Statement": [
{
"Sid": "example-statement-ID",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "SNS:Publish",
"Resource": "<SNS ARN>",
"Condition": {
"ArnLike": {
"aws:SourceArn": [
"<S3 ARN>"
]
}
}
}
]
}
S3 버킷이 Resource(SNS)에 대해 Action(SNS:Publish)할 수 있는 정책 설정 후 주제 생성
서울 리전은 SMS를 지원하지 않기 때문에 이용하고 싶은 경우 리전을 바꿔서 생성하면 된다.
(S3도 같은 리전이어야 함)
6. S3 이벤트 알람 생성
OwnCloud에서 생성한 외부 S3 스토리지로 들어가야 한다.
(OwnCloud에서 생성한 스토리지가 AWS S3 콘솔에 바로 뜨지 않고 좀 기다려야 한다.)
이벤트 이름 - 객체 생성에서 모든 객체 생성 이벤트 체크
나머지는 그대로
만약 변경 사항 저장이 구성이 잘못됐다라는 오류가 나오면 SNS 주제 생성의 정책 수정을 잘못한 것이다.
결과
이런 식으로 메일로 업로드 이벤트 로그를 받을 수 있다.
가독성이 안 좋기 때문에 한눈에 알아보기 위해 Lambda 를 통해 필요한 부분만 필터링하여 볼 수도 있다.
'서버 > AWS' 카테고리의 다른 글
[AWS]17. 웹 Serverless Architecture 구성 (1) | 2024.03.19 |
---|---|
[AWS]16. S3 업로드 이벤트 트리거 Lambda 함수로 SNS 필터 (0) | 2024.03.13 |
[AWS]14. Cloudfront 단일 배포로 웹 서비스 구현 (Route53, ELB, Auto Scaling, S3, RDB) (0) | 2024.01.24 |
[AWS]13. S3 버킷에 ELB Access Log 저장 (0) | 2024.01.24 |
[AWS]12. S3 기반 정적 웹 사이트 호스팅 (Route53, Cloudfront) (0) | 2024.01.20 |
댓글