CloudFormation으로 VPC, Subnet, IGW, NAT GW, Security Group, EC2를 만들어봤다. 이번에는 같은 인프라를 AWS CDK(TypeScript)로 다시 만든다. CDK가 TypeScript를 CloudFormation 템플릿으로 자동 변환해준다.CDK vs CloudFormation CloudFormationCDK언어YAML / JSONTypeScript, Python, Java 등VPC 생성17개 리소스, 80줄 YAMLnew ec2.Vpc() 10줄스택 간 참조Export + Fn::ImportValueTypeScript Props배포 순서직접 순서 지켜서 실행--all로 자동타입 검사없음 (배포 시점에 오류)TypeScript 컴파일 시점에 오류최종 결과물직..
Infrastructure
시리즈 CLI로 만든 VPC를 CloudFormation으로 다시 만들기 1 템플릿 기초 — Lab 1~4 2 전체 네트워크 — Lab 5 3 EC2 배포와 삭제 — Lab 6 + Cleanup L1 L2 L3 L4 L5 L6 Lab 1–5 완료 · Lab 6 진행 중 Lab 1: VPC 하나만 ← 템플릿 기본 구조Lab 2: VPC + Subnet ← Parameters, !RefLab 3: 환경별 분기 ← Mappings, !FindInMapLab 4: 결과 출력 ← Outputs, ExportLab 5: 전체 네트워크 ← Intrinsic Functio..
시리즈 CLI로 만든 VPC를 CloudFormation으로 다시 만들기 1 템플릿 기초 — Lab 1~4 2 전체 네트워크 — Lab 5 3 EC2 배포와 삭제 — Lab 6 + Cleanup L1 L2 L3 L4 L5 L6 Lab 1–4 완료 · Lab 5 진행 중 · Lab 6 예정Lab 1: VPC 하나만 ← 템플릿 기본 구조Lab 2: VPC + Subnet ← Parameters, !RefLab 3: 환경별 분기 ← Mappings, !FindInMapLab 4: 결과 출력 ← Outputs, ExportLab 5: 전체 네트워크 ← Intrinsic Functions, DependsOn ← 이번 글Lab 6: EC2 + 웹서버 ← Cross Stack, User Data1편에서 배운 ..
시리즈 CLI로 만든 VPC를 CloudFormation으로 다시 만들기 1 템플릿 기초 — Lab 1~4 2 전체 네트워크 — Lab 5 3 EC2 배포와 삭제 — Lab 6 + Cleanup L1 L2 L3 L4 L5 L6 Lab 1–4 진행 중 · Lab 5–6 예정 Lab 1: VPC 하나만 ← 템플릿 기본 구조 ← 이번 글Lab 2: VPC + Subnet ← Parameters, !Ref ← 이번 글Lab 3: 환경별 분기 ← Mappings, !FindInMap ← 이번 글Lab 4: 결과 출력 ← Outputs, Export ← 이번 글Lab ..
이 글에서는 AWS CLI를 사용하여 VPC 생성부터 EC2 웹 서버 생성까지의 여정을 다룹니다.최종 목표는 웹 서버에 접속해서 응답을 확인하는 것입니다.1. VPC 생성AWS에서 서버와 같은 리소스를 만들려면 네트워크가 필요한데, VPC가 그 네트워크이다.VPC는 내 리소스들이 쓸 IP 범위 (10.0.0.0/16), 통신 규칙, 인터넷과의 연결 방식을 정의하고, 다른 AWS 계정 / VPC와 격리된다."AWS에서 나만의 격리된 네트워크를 만드는 것" 라고 이해하자.1.1 VPC 생성먼저 최대 65,536개의 IP 주소를 제공하는 CIDR 블록이 10.0.0.0/16인 VPC를 생성해보자.aws ec2 create-vpc --cidr-block 10.0.0.0/16 --tag-specifications..
ECS는 Container Orchestration을 위한 환경을 제공하는 AWS 서비스이다.k8s처럼 AWS에서 컨테이너 기반 앱들을 자동으로 배포, 관리, 확장, 장애복구를 하고싶다면 AWS ECS를 사용할 수 있다.ECS 구성 요소ECS는 크게 4가지의 키워드가 있다.각 구성요소의 역할이다.구성요소역할비유ClusterECS 전체 환경. 서비스와 태스크들이 배치되는 “인프라 공간”건물Service태스크를 일정 개수로 유지하고, ALB와 연결해 로드밸런싱 관리관리자Task컨테이너 묶음의 실행 단위 (같은 Task Definition 기반으로 여러 개 복제 가능)방Container실제 애플리케이션이 실행되는 프로세스 (이미지 기반)사람계층 구조로 그려보면 이렇다.$ aws ecs list-clusters..
[추가 정보]Parameter store 환경변수 관리를 쉽게 할 수 있는 툴인 chamber에 이미 같은 기능이 구현되어있다.chamber import를 사용해보자.문제 상황Parameter store는 AWS 콘솔에서 값을 하나씩 업로드하는 방식만 제공한다.프로젝트에서 env를 Parameter store에 보관한다고 할 때, env 양이 많은 경우 번거롭다.심지어 배포 정책에 따라 dev, stag, prod와 같이 여러 환경이 존재한다면 노가다가 더 길어진다.요구 사항.env파일에 적힌 환경변수를 명령어 한번으로 Parameter store에 한번에 업로드 할 수 있다.해결 방안프로젝트 레포의 터미널에서 cli로 업로드를 하면 편할 것 같다.shell 파일을 이용해보자.아래와 같이 실행할 수 있다..
SQS ConfigurationVisibility timeout어떤 소비자가 메시지를 수신했을 때 부터 해당 메시지가 다른 소비자에게 숨겨지는 시간 (중복 소비 방지)소비자의 작업이 길어지면 직접 sqs에 Visibility time 연장 API를 쏴야함Message retention period메시지가 처음 큐로 들어왔을 때 부터 살아있는 시간메시지가 재처리(큐에 재입고)될 때마다 리셋되지는 않는다.Delivery delay메시지 소비 시작 시점을 늦추는 기능메시지를 큐에 넣긴 하지만, 지연 시간동안 소비자에게 숨겨서 바로 처리되지 않게 한다.Maximum message size메시지 최대 크기 (1byte ~ 1MiB)1MiB보다 큰 메시지를 전송하려면 S3에 메시지 페이로드를 저장한 후 해당 참조를..