AWS Relational Database Service는 클라우드에서 관계형 데이터베이스를 쉽게 설정, 운영 및 확장할 수 있는 관리형 서비스입니다. 사용자가 직접 데이터베이스 서버를 설피하고 관리하는 대신, RDs가 데이터베이스의 설치, 패치, 백업, 복구, 확장
VPC는 AWS 서비스들이 있는 가상 데이터 센터이다. 백엔드 개발자는 인프라 엔지니어가 아니더라도, 서버 간의 통신 방식과 보안을 이해하기 위해 VPC의 구조를 명확히 알아야 한다.정의: AWS 리전 내에 할당된 논리적으로 격리된 가상 네트워크.CIDR 블럭: VPC
이는 보안이 중요한 인스턴스나 데이터베이스 같은 중요한 서버들은 Default VPC에 사용하면 해킹당할 위험이 있기 때문이다.왜냐하면 Default VPC는 외부에서 접근할 수 있는 네트워크이기 때문에 고객들에게 서비스하는 프로덕션 레벨의 애플리케이션은 Default

이 페이지에서 보면 이름이 -인 VPC가 있는데 이것이 Default VPC이다.이름은 내가 원하는 이름을 작성한다. 그리고 IPv4 CIDR에는 10.0.0.0/16을 입력하고 VPC 생성버튼을 클릭한다.인스턴스를 만들면 사설 IP는 자동으로 할당된다. 도메인 이름도
보안 그룹은 AWS 인스턴스(EC2, RDS, Lambda 등)로 유입되거나 나가는 트래픽을 제어하는 가상 방화벽이다. 백엔드 개발자에게는 누가 우리 서버의 API 포트에 접근할 수 있는가?를 결정하는 가장 중요한 통제 수단이다.네트워크 ACL(NACL)이 서브넷 입구
EC2는 클릭 몇 번으로 원하는 사양의 서버를 생성하고 필요에 따라 크기를 늘리거나 줄일 수 있는 가상 서버 서비스이다.정의: 서버에 필요한 운영체제(OS), 소프트웨어, 설정 등을 미리 구성해 높은 템플릿이다.활용: Ubuntu, Amzaon Linux, Window
AWS Fargate는 Amazon ECS(Elastic Container Service)나 EKS(Kubernetes)에서 컨테이너를 실행할 때, 그 기반이 되는 EC2 인스턴스를 사용자가 관리하지 않도록 해주는 서버리스 컴퓨팅 엔진이다.컨테이너 이미지 준비: Doc
ECS는 도커 컨테이너를 쉽고 빠르게 실행, 중단 및 관리할 수 있게 해주는 관리형 서비스이다.ECS를 이해하려면 아래 세 가지 계층 구조를 반드시 알아야 한다.컨테이너 하나 이상의 설정을 담은 JSON 형식의 설계도이다포함 내용: 사용할 도커 이미지 주소(ECR),
ECR은 개발자가 컨테이너 이미지를 손쉽게 푸시(Push), 풀(Pull) 및 관리할 수 있게 해주는 안전하고 확장 가능한 서비스이다.보안 및 권한 관리 (IAM): AWS IAM과 완벽하게 통합된다. 특정 개발자나 특정 서버(EC2, ECS)만 이미지를 가져갈 수 있
WAF는 ALB, CloundFront, API Gateway 등의 앞단에 위치하여 정의된 규칙(Rule)에 따라 웹 요청을 허용하거나 차단하는 방화벽 서비스이다.보안 그룹(Security Group): IP주소와 포트 번호를 기준으로 차단한다.WAF: HTTP 메시지
RDS는 사용자가 데이터베이스를 직접 설치하고 운영하는 번거로움을 대신해주는 관리형 서비스이다.데이터베이스에서 가장 중요한 것인 데이터를 잃지 않는 것이다.자동 백업 (Automatic Backup)RDS는 매일 전체 스냅샷을 찍고 트랜잭션 로그를 저장한다.보존 기간:
DynamoDB는 어떤 규모에서도 10밀리포(ms) 미만의 응답 속도를 제공하는 완전 관리형 NoSQL 키-값(Key-Value) 데이터베이스이다.테이블 생성 시 데이터의 모든 열을 정의할 필요가 없다.오직 기본 키(Partition Key & Sort Key)만 정의
ElastiCache는 분산 인메모리 데이터 스토어를 클라우드에서 쉽게 설정하고 관리할 수 있게 해주는 서비스이다. 데이터가 디스크가 아닌 RAM(메모리)에 저장되므로 응답 속도가 압도적으로 빠르다.대부분의 현대적인 백엔드 개발 환경에서는 Redis를 사용한다.전략:
Lambda는 이벤트에 응답하여 코드를 실행하고 기본 컴퓨팅 리소스를 자동으로 관리하는 서버리스(Serverless) 컴퓨팅 서비스이다.Lambda는 스스로 실행되지 않는다. 반드시 어떤 이벤트(Trigger)가 발생해야 동작한다.S3: 새로운 이미지가 업로드되었을 때
SQS는 마이크로서비스, 분산 시스템 및 서버리스 애플리케이션을 분해하고 확장할 수 있게 해주는 완전 관리형 메시지 대기열(Message Queue) 서비스이다.상황: 주문 서버가 결제 서버에 직접 요청을 보낼 때, 결제 서버가 점검 중이면 주문 자체가 실패한다.해결:
S3는 업계 최고의 확장성, 데이터 가용성, 보안 및 성능을 제공하는 객체 저장소(Object Storage)이다.버킷(Bucket): S3의 최상위 컨테이너이다 (파일 시스템의 ‘드라이브’ 개념) 전 세계에서 유일한 이름을 가져야 한다.객체(Object): S3에 저
Secret Manager는 데이터베이스 자격 증명, API 키 및 기타 비밀 정보를 수명 주기 동안 안전하게 암호화하여 관리, 검색 및 교체할 수 있도록 도와주는 서비스이다.중앙 집중 관리: 여러 서버(EC2, Lambda, ECS)가 동일한 DB를 사용할 때, 비밀
Parameter Store는 구성 데이터 관리 및 암호 관리를 위한 안전하고 확장 가능한 계층적 저장소를 제공한다. 이를 통해 애플리케이션 코드와 설정 데이터를 완벽히 분리하여 관리할 수 있다.String: 일반적인 텍스트 데이터를 저장한다. 예를 들어, 마이크로서비
백엔드 엔지니어링 관점에서 두 서비스의 내부 동작 방식, 한계점, 그리고 하이브리드 패턴을 깊이 있게 분석한다.두 서비스 모두 AWS KMS(Key Management Service)를 사용하여 데이터를 암호화하지만, 접근 방식에 미묘한 차이가 있다.구조: 텍스트 저장
IAM은 “누가(인증, Authentication)”, “무엇을(인가, Authorization)”할 수 있는지를 제어하는 AWS의 글로벌 서비스이다.IAM을 이해하려면 아래 4가지를 반드시 구분해야 한다.AWS 리소스를 사용하는 주체이다.사람: 콘솔에 로그인하기 위한
IAM Role은 특정 권한을 가진 자격(Identity)이지만, 그 자격을 영구적으로 소유하는 주체(사람)은 없다. 필요할 때만 잠시 빌려쓰는 모자(Hat)나 유니폼에 비유할 수 있다.Role을 생성할 때 가장 어려운 부분이다. Role은 반드시 두 가지 종류의 정책
Route 53은 가용성과 확장성이 뛰어난 클라우드 DNS(Domain Name System) 웹 서비스이다.공용 호스팅 영역 (Public Hosted Zone): 인터넷에서 접근 가능한 도메인 레코드를 관리한다 (예: sample.com)프라이빗 호스팅 영역 (Pr
애플리케이션이 실행되는 환경(로컬, 개발, 운영)에 따라 달라지는 설정값들을 코드와 분리하여 안전하게 관리하는 방법에 대해서 서술한다.보안: 민감한 정보(비밀번호, API 키)가 소스 코드 제어 시스템(Git)에 노출되는 것을 방지한다.유연성: 코드를 다시 빌드하거나
서버가 실행된 후 발생하는 모든 일을 기록하고, 문제가 생겼을 때 즉시 알림을 받는 시스템을 구축하는 방법이다.서버 내부의 파일(예: app.log)에 로그를 남기면 서버가 삭제될 때 로그도 사라진다. 따라서 모든 로그는 CloudWatch Logs로 전송해야 한다.E
데이터의 심장인 DB를 외부 공격으로부터 보호하기 위해 네트워크 장벽을 세우는 방법입니다.VPC 내에서 서브넷을 용도에 따라 엄격히 분리해야 한다.Public Subnet (공개 영역)외부 인터넷과 직접 통신이 가능한 영역이다.배치 리소스: 로드밸런서(ALB), 배스천
단일 장애점(SPOF)을 제거하고 트래픽 증가에 유연하게 대응할 수 있는 아키텍처 구축 방법이다.SPOF(Single Point of Failure)란 그 부분이 고장나면 전체 시스템이 중단되는 지점을 말한다.위험한 구조: 1개의 가용 영역에 서버 1대만 가동 → 해당
코드 변경 사항을 안전하고 빠르게 운영 환경에 반영하기 위한 자동화 파이프라인 구축 방법이다.CI (Continuous Integration): 지속적인 통합이라는 의미로 개발자가 코드를 푸쉬하면 자동으로 빌드와 테스트를 수행하여 코드의 품질을 검증하는 것을 의미한다.
AWS CDK에서 Stack은 CloudFormation의 Stack과 1:1로 매핑되는 배포 단위입니다.App: 전체 CDK 애플리케이션의 루트(Root)Stage: (선택 사항) 개발, 테스트, 운영 환경을 구분하는 논리적 단위Stack: 배포의 최소 단위. 리소스
Construct는 AWS 리소스를 하나 이상의 단위로 묶어 정의하는 논리적 단위이다. 모든 CDK 리소스(S3, VPC, EC2 등)는 Construct 클래스를 상속받는다.AWS CDK는 리소스의 추상화 정도에 따라 세 가지 레벨을 제공한다.특징: CloudForm
Java 버전의 CDK는 Builder 패턴을 적극적으로 사용하며, 객체의 생성자와 메서드를 통해 인프라 간의 관계를 정의한다.CDK App은 최상위 컨테이너이며, 그 아래 여러 Stack이 존재합니다. Stack 간에 객체(Resource)를 주고받으며 권한을 부여하
AWS CDK에서 Grant는 IAM 정책을 객체 지향 프로그래밍의 메서드 호출 방식으로 추상화한 패턴이다. 리소스가 자신에 대한 접근 권한을 다른 객체에게 부여하는 형식을 취한다.기존의 방식이 “누가(Principal) 무엇을(Resource) 할 수 있는가”라는 정
Custom construct는 여러 개의 기본 시소스(L1, L2)를 논리적으로 하나의 단위로 묶어 나만의 재사용 가능한 부품을 만드는 기술이다.기본적으로 CDK가 제공하는 Bucket이나 Function은 개별 리소스이다. 하지만 실제 배포에서는 “암호화가 적용된
CDK의 기본 구조를 넘어 실제 운영 환경에서 복잡한 인프라를 안전하고 유연하게 관리하기 위해 반드시 알아야 하는 핵심 철학이 존재한다. 이 개념들은 CDK가 단순한 스크립트 도구를 넘어 왜 프레임워크인지를 증명하는 요소들이다.Aspect는 객체 지향의 방문자 패턴(V
AWS CDK의 라이프사이클은 개발자가 작성한 프로그래밍 언어 코드가 최종적으로 AWS 클라우드 리소스로 프로비저닝되기 전까지의 전 과정을 의미한다. 이 과정은 크게 Construct(구성), Sysnthesis(합성), Deployment(배포)의 단계로 나뉜다.CD
Bootstrap(부트스트랩)은 AWS CDK를 특정 AWS 게정과 리전에서 사용하기 위해 가정 먼저 수행해야 하는 사전 준비 과정이다. CDK 프로젝트를 배포하기 위한 기반 시설을 만드는 단계라고 이해하면 된다.CDK는 코드(Java)를 CloudFormation 템
AWS CDK에서 VPC(Virtual Private Cloud)를 설계하는 것은 가장 강력한 기능 중 하나이다. 기존에는 서브넷, 라우팅 테이블, 인터넷 게이트웨이(IGW), NAT 게이트웨이를 하나하나 연결해야 했지만 CDK의 L2 객체인 Vpc를 사용하면 선언적 코드 몇 줄로 모든 인프라가 자동으로 구축된다. 1. VPC 설계의 핵심 개념 Subn...
AWS CDK에서 IAM 권한을 관리하는 방식은 크게 고수준의 Grant 패턴과 저수준의 Policy 직접 추가 방식으로 나뉜다. 이를 이해하면 보안은 유지하면서도 코드 양을 줄일 수 있다.Grant 패턴은 이 리소스가 저 사용자(혹은 서비스)에게 이러한 권한을 준다는
AWS CDK의 Assets(자산)은 로컬 머신에 있는 파일, 디렉터리 또는 Docker 이미지를 배포 과정에서 자동으로 AWS 클라우드(S3 또는 ECR)로 업로드하고 관리하는 기능이다.코드로 인프라를 정의할 때 그 인프라 위에서 돌아갈 실제 프로그램(Lmabda 소
AWS CDK에서 배포 시점에 값을 동적으로 주입하는 방법은 크게 Context와 Parameters 두 가지가 있다. 두 방싱은 값을 주입하는 시점과 철학에 큰 차이가 있다.Context는 합성(Synth)가 일어날 때 (코드가 템플릿으로 변환될 때) 값을 주입하는
AWS CDK의 합성(Synthesis)과 배포(Deployment)는 우리가 짠 Java 코드가 실제 AWS 리소스로 변신하는 핵심 과정이다. 쉽게 비유하면 합성은 설계도를 그리는 과정이고 배포는 그 설계도대로 집을 짓는 과정이라 할 수 있다.합성은 Java 코드를
cdk deploy를 누르기 전 가장 중요한 명령어가 바로 cdk diff이다. 실수로 데이터베이스를 날리거나 의도치 않게 보안 구멍을 만드는 대참사를 막기 위해 이 명령어가 내뱉는 메시지를 읽는 법을 반드시 익혀야 한다.현재 내 로컬 코드와 이미 AWS에 배포되어 있
HotSwap은 AWS CDK에서 개발 주기를 획기적으로 단축하기 위해 도입된 기능이다. 일반적인 배포 과정의 지루한 대기 시간을 줄여주는 개발자용 빠른 배포라고 할 수 있다.일반적인 cdk deploy는 CloudFormation의 ChangeSet(변경 세트)을 생
클라우드 인프라를 배포하다 잘못되는 경우가 있다. 이때 개발자를 당황스럽게 하면서도 구원해주는 기능이 바로 롤백이다.롤백은 배포 도중 에러가 발생했을 때 해당 스택을 배포 전의 마지막 안정적이었던 상태(Last Known Goot State)로 되돌리는 안전장치이다.철
AWS CloudFormation은 AWS 리소스를 모델링하고 설정하여 인프라 관리에 드는 시간을 줄이고 AWS에서 실행되는 애플리케이션에 더 많이 집중할 수 있게 해주는 서비스이다.설계도 하나도 AWS의 모든 자원을 자동으로 만들고 관리하는 서비스라고 이해하면 편하다