S3
-
[aws] image backup(2): lambda & s3 & nasaws 2021. 5. 19. 03:30
[Make SSH] SFTP를 이용하여 파일 업로드를 진행하기에 스토리지에 공개키를 등록한다. 정말 간단하다. 공개키를 ~/.ssh/authorized_keys 파일 아래에 추가하도록 하자. [Make Lambda] 이전에 작성한 글에서도 사용한 Lambda를 다시 선택했다. S3에서 발생된 이벤트를 수신하기 위한 방법은 Amazon SNS, Amazon SQS도 사용할 수 있지만 기획 의도에 맞춰 메시징을 관리하지 않아도 되어서 Lambda를 선택했다. 그렇게 작성된 코드는 다음과 같다. const aws = require('aws-sdk'); const client = require('ssh2-sftp-client'); const fs = require('fs'); const s3 = new aws...
-
[aws] image backup(1): lambda & s3 & nasaws 2021. 5. 18. 22:17
[들어가며] 하욤! 현 회사가 문제, 해설, 정답, 개념 등을 이미지(. png)로 관리한다고 앞선 글에서 설명했다. 그뿐만이 아니라 모든 콘텐츠를 S3에 저장한다. 저장 수준이 아닌 의존의 개념이 명확할 것 같다. 이러다 보니 몇 번의 AWS 장애로 불안에 떨며 시간을 보낸 경험이 자연스레 생겼다. 모든 콘텐츠를 S3에 낮추기 위해 하나의 백업 서버를 두는 것이 좋다고 판단되었고 Lambda를 사용하여 S3의 이벤트에서부터 백업까지의 플로우를 관리하기로 결정했다. [NAS] 네트워크 결합 스토리지(network-attached storage, NAS)는 컴퓨터 네트워크에 연결된 파일 수준의 컴퓨터 기억 장치이며 서로 다른 네트워크 클라이언트에 데이터 접근 권한을 제공한다. 현 회사에서 이미 NAS가 구..
-
[aws] image resize(2): s3 batch & lambdaaws 2021. 5. 16. 22:09
[S3 Batch Operations] 하욤! 앞에서 상황을 설명했으니 이젠 구현을 기술하기 전 S3 Batch Operations 기능은 다음과 같다. 이 기능을 이용하면 수백, 수백만 또는 수십억 개의 S3 객체를 간단하고 간편한 방식으로 처리할 수 있다. 다른 버킷에 객체를 복사하거나, 태그 또는 ACL을 설정하거나, Glacier에서 복원을 시작하거나, 각 객체별로 Lambda 함수를 호출할 수 있다. 이 기능은 S3에서 지원되는 Inventory Report를 기반으로 하며, 보고서 또는 CSV 파일을 통해 배치 작업을 지원할 수 있다. 작업을 생성하고 실행하면 S3가 대규모 병렬 프로세스를 통해 자동으로 작업을 처리한다. 사용하는 S3 콘솔, S3 CLI 또는 S3 API를 사용하여 배치 작업..
-
[aws] image resize(1): s3 batch & lambdaaws 2021. 5. 16. 19:07
[들어가며] 하욤! 현 회사는 문제, 해설, 정답, 개념 등을 이미지(. png)로 관리하고 이미지는 저화질(width: 310px), 고화질(width: 930px)로 나눠 사용한다. 베스트 프로세스를 꼽는다면 이미지 서버를 두고 고화질 파일만을 저장하고 요청에 따라 저화질 이미지를 내리도록 설계하는 것이지만 우린 이미지 서버를 통해 고화질을 저화질로서 바꿔 사용하는 것이 아닌 애초에 두 종류로 저장하고 있었다. S3 저장 비용은 두 배로 더 나오겠지만 이미지 서버를 구축할 여력이 없는 우리에겐 어쩔 수 없는 선택이라고 들었다. 그러다 충격적인 이슈를 들었는데 아래와 같았다. "저화질 이미지 용량과 고화질 이미지 용량이 다르지 않다." 곧바로 콘텐츠를 등록하는 사내 시스템을 확인하니 압축을 놀랍게도 하..