목록📖 ☁️ 클라우드 (28)
즐겁게, 코드
S3 버킷에 담긴 데이터(객체)의 암호화는 크게 "서버에서 암호화하느냐, 클라이언트에서 암호화하느냐" 로 나뉩니다. 서버 사이드 암호화 (SSE) 서버 사이드 암호화 방식에는 크게 SSE-S3, SSE-KMS, SSE-C 의 3종류가 존재합니다. SSE-S3 SSE-S3는 AWS에서 제공 / 관리되는 키를 통해 데이터를 암호화하는 방법입니다. 암호화 방법은 정말 간단한데요, 버킷에 객체를 업로드할 때 헤더에 "x-amz-server-side-encryption": "AES256" 키-값 쌍을 추가해 업로드하면 자동으로 S3에서 제공되는 키를 통해 암호화됩니다. ✅ 헤더에 추가하는 값을 보면 추측할 수 있듯, SSE-S3는 AES256 암호화 알고리즘을 사용합니다. SSE-KMS SSE-KMS는 AWS K..
LINE의 2022년 신년 대응: 리모트 환경에서 트래픽 폭증에 대비하기 - LINE ENGINEERING 안녕하세요. 저는 LINE Plus 서비스 엔지니어링 팀의 권용찬이라고 합니다. 올해로 LINE에 입사한 지 4년 차입니다. 모르는 것도 없지만 다 알지도 못하는 애매한 연차라고 할 수 있겠습니다. 우리는 engineering.linecorp.com 카카오, 라인 등의 대규모 서비스 운영기를 읽어보면 연말에 몰리는 신년 인사 트래픽을 대비해 엄청난 준비를 하는 것을 알 수 있습니다. AWS에서는 이처럼 특정 상황에서 트래픽이 너무 몰리는 것을 대비해 Auto Scaling Group(ASG)를 통해 인스턴스를 유연하게 구성할 수 있는데요, 예를 들어 연말에는 신년 인사 트래픽이 몰리니 서버 인스턴스..
여러분의 멋진 서비스가 컨테이너 위에서 실행 중이라고 가정하겠습니다. 그런데, 만약 프로그램에 오류가 발생하거나 컨테이너가기동중인 환경에 문제가 생겨 컨테이너가 의도치 않게 중단된다면 어떨까요? 만약 이런 일이 발생한다면 관리자가 직접 터미널을 열고 docker run을 다시 입력할 때까지 서비스가 중단되는 걸까요? 쿠버네티스를 사용하면 컨테이너가 불의의 사고로 중단되더라도 관리자가 복구 커맨드를 입력할 때까지 기다릴 필요 없이, 마치 오뚜기처럼 컨테이너를 다시 실행해 장애를 최소화합니다. 쿠버네티스의 고가용성을 책임지는 오늘의 주인공, 디플로이먼트(Deployment)와 레플리카셋(ReplicaSet)을 소개해보도록 하겠습니다. 디플로이먼트 (Deployment) 디플로이먼트는 쿠버네티스가 관리해야 ..
AWS 기반 예제 아키텍처를 보고 있으면 많은 아키텍처에서 VPC 라는 네트워크를 사용하는데요, 과연 VPC란 무엇일까요? 이번 글에서는 AWS의 VPC가 무엇인지와 어떤 설정을 하는지에 대해 간단히 알아보도록 하겠습니다. VPC (Virtual Private Cloud) VPC는 퍼블릭 클라우드(AWS) 위에서 사용자가 구성하는 프라이빗 클라우드 환경으로, 가상의 네트워크 위에서 AWS 서비스를 가동할 수 있게 합니다. VPC를 사용하면 VPN을 통해 VPC를 온프레미스 환경과 통합할 수 있고(하이브리드 클라우드), 개발자가 네트워크 구성 요소들을 완전히 제어할 수 있습니다. 또한 이를 이용해 조직 내부에 고립된 클라우드 인프라 환경을 구축할 수 있어 강력한 보안을 형성할 수 있습니다. AWS에서는 계..
빌드한 이미지를 도커허브에 배포하려 했는데, 도커허브에는 반드시 / 의 형태로 이미지를 푸시해야 한다는 점을 알 수 있었습니다. 그런데 굳이 이것 때문에 이미지를 새로 빌드하는 것은 비효율적인 것 같아 간단히 이미지 이름만 변경하는 방법을 공유해보려 합니다. tag 커맨드 docker image tag 커맨드를 사용하면 기존 이미지를 참조하면서 새로운 이름을 갖는 이미지를 생성할 수 있습니다. 도커허브에 푸시하기 위해, / 형태로 새로운 이미지를 생성해 보겠습니다. 이렇게 기존 이미지명에 제 도커허브 아이디를 붙인 새로운 이미지를 생성했습니다. 이제 로컬에 이미지가 존재하지 않는다는 에러 없이, 푸시가 잘 수행되는 모습입니다. 🙂
한번쯤 이미지를 빌드해 보신 분들이라면, 이미지 사이즈가 적게는 수십 ~ 많게는 몇백 메가바이트에서 기가바이트 단위까지 넘나드는 것을 보셨을 것입니다. 물론 가상 머신에 OS와 어플리케이션을 올린 것보다는 가볍겠지만 단순한 어플리케이션 하나가 수백 메가를 차지하는 걸 보면 뭔가 억울한데요, Distroless 라는 구글에서 관리하는 베이스 이미지를 사용하면 일부 환경의 어플리케이션 이미지를 더욱 가볍게 제작할 수 있습니다. 이번 글에서는 Node.js의 Distroless 베이스 이미지를 사용해 간단한 이미지를 제작해보고, 기존 Node.js 베이스 이미지를 사용했을 때보다 얼마나 용량을 절약할 수 있는지 알아보도록 하겠습니다. 멀티 스테이징 빌드 Distroless 이미지가 용량을 절약하는 원리는 운영..
이미지에 파일을 하나 추가했다고 해서 처음부터 수백 메가에 달하는 파일을 다시 다운받는다면 굉장히 비효율적일 것입니다. 하지만, 도커 데몬은 레이어 를 활용해 이미지를 빌드할 때 파일이 추가되거나 변경될 때마다 해당 동작을 캐시합니다. 오늘은 도커파일을 잘 작성해 레이어의 캐싱을 최대화하고, 이를 통해 이미지 빌드 속도를 최적화하는 팁을 소개해보려 합니다. 이미지 생성하기 간단한 node.js 어플리케이션 하나를 이미지로 만들어 보겠습니다. 코드는 다음과 같습니다. const express = require('express'); const app = express(); app.get('/', (req, res) => { res.send(` 간단한 node.js 어플리케이션입니다. `); }) app.li..