Backend


이전 포스팅에서는 Spring 프로젝트에서 로컬 개발 환경과, EC2 프로덕션 환경에 따른 S3 연동 방법 및 기본적인 업로드와 다운로드를 구현해 보았었다. 이번 포스팅에서는 S3 업로드와 다운로드 방식을 고도화하여 Presigned URL을 사용하는 방법에 대해서 살펴보고, 업로드 시 여러개의 Chunk 단위로 분할 업로드하는 방식인 S3 Multipart Upload에 대해서도 함께 살펴보려고 한다. 1. Presigned URL - 업로드 및 다운로드 구현 (Spring + 바닐라 JS)2. Multipart 업로드 - 업로드 및 다운로드 구현 (Spring + 바닐라 JS) [AWS + Spring] S3 활용 : 파일 업로드와 다운로드 (1) (개발 환경 및 프로덕션 환경에서의 기본..


이번 포스팅에서는 기존 Local Stroage를 이용하여 파일 업로드 및 다운로드 API를 제공하던 Spring Application에 S3를 연동하는 작업을 해보도록 하겠다. 개발 환경에서의 S3 연동, EC2 프로덕션 환경에서의 S3 연동 두 가지로 나누어 비즈니스 로직을 작성해보자. 1. 로컬 스토리지 기반의 Spring 파일 업로드 및 다운로드 로직2. AWS S3 준비 3. 개발 환경 및 프로덕션 환경에 따른 AWS 서비스 연동 방법 및 자격 증명 방식4. S3 연동 : 로컬 개발 환경 4-1. IAM 사용자 생성 4-2. AWS CLI 설치 및 AWS Profile 설정 4-3. Spring 프로젝트에 SDK 의존성 추가 4-4. Spring 프로젝트의 환경변수 프로파일 설정 4-..


S3는 AWS에서 제공하는 스토리지 서비스이다. 높은 가용성 및 내구성을 제공하여 데이터를 안전하게 저장하고 어디에서나 접근할 수 있도록 서비스를 제공한다.이번 포스팅에서는 S3의 기본적인 개념 및 저장소 단위인 버킷에 대해서 살펴보려고 한다. 1. AWS S3 소개 2. S3 기능 - 주요 기능 : 업로드 및 다운로드, 버킷 정책, 스토리지 클래스, 버전 관리와 객체 잠금, 수명주기 제어, 암호화- 기타 기능 : 복제, S3 엑세스 로깅, 이벤트 기반 호출, AWS Athena, Transfer Acceleration3. 버킷 명명 규칙4. 버킷 정책 (Bucket Policy)5. S3 Object의 구성6. 스토리지 클래스 (Storage Class)7. 암호화8. 버킷 버전 관리9. 객체 잠금10..


AWS에서 VPC를 구성할 때, 서로 다른 VPC 간의 통신, 혹은 외부 네트워크와 VPC간에 통신을 해야 할 때 사용할 수 있는 방법들이 있다. 서로 다른 VPC의 인스턴스 간의 통신을 지원하는 VPC Peering과, 온프레미스와 VPC 간의 통신을 지원하는 기술들인 AWS VPC와 Direct Connect의 개념에 대해서 간단하게 살펴보자. VPC Peering 서로 다른 VPC의 구성 요소 간에 Public Network를 통해서 통신이 가능하지만, 보안 그룹 설정을 비롯하여 외부 인터넷에 노출되어 있는 서비스(인스턴스) 간의 통신만이 가능하다. 그렇지만 DB와 같은 인터넷에 노출되어서는 안되는 서비스들의 경우 Private Network 상에서 통신할 수 있는 방법이 필요하다.VPC P..


Private Subnet에 위치한 EC2는 인터넷 게이트웨이(IGW)와 퍼블릭 IP가 없기 때문에 외부에서 직접 접근할 수 없다. 따라서 인스턴스에 접속하거나 접근하려면 우회적인 방식을 사용해야 한다. 이번 포스팅에서는 Private EC2에 접근할 수 있는 3가지 방식을 소개하려고 한다. 1. Bastion Host 2. SSM (Systems Manager Session Manager)3. EC2 Instance Connect Endpoint4. Bastion Host로 Private EC2 접속5. SSM으로 Private EC2 접속6. Instance Connect Endpoint로 Private EC2 접속 Bastion Host Public EC2 인스턴스를 Bastion Host..


AWS에서 S3, DynamoDB 등의 대부분의 서비스에 접근할 때, 기본적으로 퍼블릭 인터넷을 거쳐야 한다.하지만 VPC Endpoint를 사용하면 퍼블릭 IP 없이 AWS 내부망을 통해 통신이 가능하므로 보안성과 성능을 높일 수 있다.이번 포스팅에서는 VPC Endpoint의 개념과 활용 방법을 정리해 보려고 한다. VPC Endpoint 외부 인터넷과 통신이 차단된 Private Subnet에서 AWS 서비스에 접근하려면 두 가지 방식을 사용할 수 있다.첫번째로 우회적으로 NAT Gateway를 경유하여 외부 퍼블릿 인터넷을 통해서 접근하는 방식이다.두번째로는 VPC Endpoint를 활용하여 내부망을 통해서 접근하는 방식이다. VPC Endpoint는 외부 Public 인터넷을 거치지 않..


AWS의 가상 네트워크인 VPC에서 네트워크 보안을 제공하기 위한 두 가지 중요한 구성 요소로서 보안 그룹과 NACL가 있다. 이번 포스팅에서는 해당 두 종류 방식의 사용 목적과 차이점에 대해서 살펴보려고 한다. 보안 그룹 (Security Group) 보안 그룹(Security Group)은 VPC의 인바운드 및 아웃바운드 트래픽을 제어하는 가상 방화벽 역할을 하는 서비스이다. 즉 클라우드에서 내 서버를 지켜주는 문지기 같은 존재이다. 어떤 요청을 들여보낼지, 내보낼지를 미리 정해두고 그 규칙에 맞춰 움직인다. 쉽게 말해, A번 방에 "이 친구는 들어와도 돼" 또는 "너는 못 들어와"를 결정하는 역할을 한다. NACL과 함께 방화벽 역할을 하는 서비스Port 허용 : 기본적으로 모든 포트 비활성화,..


VPC는 AWS의 계정 전용 가상 네트워크로서 클라우드 운영에 있어서 필수적인 개념이다. 이번 포스팅에서는 VPC의 기본적인 구성 요소들에 대해서 살펴보려고 한다.기본 단위인 서브넷의 종류인 Public Subnet과 Private Subnet을 구축하는 방법과, 그에 따라 필요한 구성 요소들을 살펴보자. 1. VPC의 개념2. 서브넷의 개념과 네트워크 분할 방식3. VPC 기본 구성 요소 - Public & Private Subnet - IGW (인터넷 게이트웨이) - NAT Gateway - 트래픽 라우팅 : VPC Router, Routing Table4. Public Subnet과 Private Subnet 구성 예시5. 직접 AWS에서 VPC와 서브넷 구성하기 - VPC 생성하기 ..


이전 포스팅에서 Auto scaling group을 통해서 EC2 인스턴스를 자동으로 Scale-out하여 관리하는 방법에 대해서 알아보았었다.이번에는 해당 클러스터 (혹은 단일 EC2 인스턴스)를 로드밸런서에 연결해보는 과정을 해보려고 한다. 1. ELB (Elastic Load Balancer) 소개 2. ELB의 구성 요소 : 대상 그룹 (Target Group), 리스너 (Listener)3. ELB의 종류 : ALB, NLB, GLB, CLB4. EC2 Autoscaling Group에 ALB 적용하기5. 리스너 규칙 설정 : 2개 이상의 Autoscaling Group에 경로에 따라 트래픽 분산하기 ELB (Elastic Load Balancer) 두 개 이상의 가용 영역에서 EC2 인스..