aws
-
[aws] health check(gray): elastic beanstalkaws 2021. 5. 25. 00:32
[들어가며] 하욤! 현 회사의 CMS(Contents Management System)은 Elastic Beanstalk를 사용하여 애플리케이션을 배포하고 관리한다. Elastic Beanstalk은 애플리케이션의 상태에 대해서 모니터링을 제공하여 녹색, 노란색, 빨간색, 회색으로 구성된 색상은 각각의 의미를 표현하는 색상을 보여주게 된다. 새로운 CMS 환경을 구축하며 잘못 설정한 탓인지 회색을 보여줬다. 그러더라도 로드 밸런서는 동작했기에 곧 초록불이라 생각하여 크게 문제 삼지 않고 넘어간 것이 화근이 되었다 [Elastic Beanstalk] 더 자세하게 글을 작성하기 전에 Elastic Beanstalk에 대한 이해가 필요하여 짚고 넘어가도록 한다. Elastic Beanstalk를 사용하면 애플..
-
[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 저장 비용은 두 배로 더 나오겠지만 이미지 서버를 구축할 여력이 없는 우리에겐 어쩔 수 없는 선택이라고 들었다. 그러다 충격적인 이슈를 들었는데 아래와 같았다. "저화질 이미지 용량과 고화질 이미지 용량이 다르지 않다." 곧바로 콘텐츠를 등록하는 사내 시스템을 확인하니 압축을 놀랍게도 하..
-
[aws] what is aws?aws 2021. 5. 14. 01:37
[들어가며] 하욤! 서비스를 개발하고 운영해야만 한다고 가정한다. 서비스를 개발하기 위해 수많은 언어(Java, Python, PHP)와 라이브러리 등을 사용한다. Integrated Development Environment(통합 개발 환경, IDE)를 설치하고 환경을 설정하고 개발한다. 로컬에서 테스트하고 운영까지 이어질 수도 있다. 하지만 운영을 하기 위해서 로컬의 해당 컴퓨터를 전원이 공급된 상태로 유지해야만 한다. 또한 장비에 따라서 온도와 습도를 일정하게 유지해줄 또 다른 장비가 필요할 수 있다. 그리고 장비의 성능이 떨어진다면 쿠ㅍ, 옥ㅅ, 다나ㅇ 등에서 구매하고 교체해야 할 수 있다. 이 상황이 되더라도 개발자들에게 아주 더럽고 귀찮은 작업이지만 더 깊게 들어가자. 운영이 무중단으로 되어야..