Devops

    [Terraform] Block Type

    resource "aws_vpc" "main" { cidr_block = var.base_cidr_block } "" "" { # Block body = # Argument } Terraform은 HCL 언어로 정의하며 기본 문법은 위와 같다. {}로 감싸진 하나의 단위를 블록이라고 하며, 로 정의한다. 블록은 Argument로 이루어져 있으며, 각 Argument는 IDENTIFIER = EXPRESSION 형태로 정의하며 key-value 형태이다. 본 글은 Terraform에서 사용하는 BLOCK TYPE에 대해 다룬다. terraform terraform { required_providers { aws = { version = ">= 2.7.0" source = "hashicorp/aws" } }..

    [AWS] Terraform 3-Tier Architecture - Network

    본 글은 Web, Application, Data Layer로 나눈 3-Tier Architecture를 AWS 리소스로 구성하는 내용이다. Terraform을 통해 구성하였으며, 전체 코드는 깃허브에 업로드 해두었다. 이번은 Network 구성에 관한 글이며 EC2, ELB, RDS는 다음 Instance 편에서 다룰 예정이다. 글을 나눈 기준은 AWS에서 VPC 대시보드에 제공하는 서비스와 EC2 대시보드에서 제공하는 서비스이다. VPC (Virtual Private Cloud) 사용자가 AWS 리소스를 관리할 논리적으로 격리된 네트워크 공간 방(Subnet)도 만들고 가구(EC2, RDS 등)도 들일 집 역할을 하는 것이 바로 VPC이다. RFC 1918 range Example 10.0.0.0 ~..

    [AWS] ALB - Application Load Balancer

    ALB - Application Load Balancer ALB란? ALB는 AWS에서 제공하는 로드밸런서 중 하나로 OSI Layer7인 어플리케이션 계층에서 동작하는 로드밸런서이다. 부하(Load), 즉 트래픽을 균형있게 나누어준다(Balance)는 의미로 로드 밸런서라고 부른다. 위 사진과 같이 Load Balancer, Listener, Target Group으로 나누어져 있다. 기능 어플리케이션의 트래픽을 여러 가용 영역으로 분산한다. 리스너를 통해 RL, 호스트, 헤더, 메소드 등을 기반으로 요청의 규칙을 구성하여 처리할 수 있다. 트래픽 부하에 따라 자동으로 스케일업,스케일 다운을 수행한다. 하나 이상 타겟 그룹에 라우팅할 수 있으며 가중치 설정이 가능하다. SSL Offloading(SSL..

    [AWS] Security Group

    Security Group Security Group 이란? 연결된 리소스에 도달하고 나갈 수 있는 트래픽을 제어하는 가상 방화벽 역할을 한다. 예시로 보안 그룹을 EC2에 연결한다면 EC2의 인바운드, 아웃바운드 트래픽을 제어할 수 있다. 특징 허용할 규칙만 지정할 수 있다. (거부 규칙 설정 불가능) 화이트 리스트 방식으로, 규칙을 지정하지 않는다면 모두 차단되어 있다. (Default Deny) 상태 저장 방식 (아래 Stateful 참조) Stateful과 Stateless stateful Inbound로 들어온 트래픽이 Outbound 설정과 관계 없이 나갈 수 있다. (Outbound 에서 허용 설정이 없어도 나갈 수 있다.) 허용된 트래픽이라는 상태를 기억한다는 의미에서 stateful 하다..

    [AWS] IAM - Identity and Access Management

    IAM IAM이란? AWS 리소스에 대한 인증 및 권한을 부여하는 기능 특징 암호나 억세스 키를 공유하지 않고도 권한을 다른 사람에게 부여할 수 있다 사용자, 리소스에 따라 다양한 권한을 부여할 수 있다 멀티 팩터 인증(MFA)을 통해 보안성을 높일 수 있다 Identity Federation 지원을 통해 다른 서비스 사용자에게 권한을 부여할 수 있다 최종 일관성을 보장한다 정책 유형 1. 자격 증명 기반 정책 - Indentity-based Polices 각 아이덴티티(유저, 그룹, 역할)이 어떤 리소스에, 어떤 조건에서 어떤 액션을 수행할 수 있는지에 대한 정책이다. 자격 증명 기반 정책은 다음과 같이 관리형 정책(AWS 관리형 정책, 고객 관리형 정책)과 인라인 정책으로 나뉜다. 관리형 정책 (Ma..

    [AWS] LocalStack을 사용하여 S3 Bucket에 파일 업로드/다운로드

    개발을 하다보면 데이터베이스, 파일 저장소 등 인프라를 필연적으로 사용하게 된다. 하지만 로컬 환경, 테스트 환경에서도 실제 구동되고 있는 머신을 사용하는 것은 불필요한 자원들을 소모할 수 있다. 통합 테스트를 격리된 환경에서 진행할 수 없다는 단점도 있다. 이를 위해 나온 솔루션이 바로 LocalStack 이다! aws의 서비스인 Lambda, S3, DynamoDB 등등 다양한 서비스를 로컬환경에서 구동할 수 있다. RDS, IAM 등 유료버전에서만 제공하는 기능, 서비스들도 있다. 로컬스택이 동작하는 방식이나 테라폼, 스프링 클라우드와 연동 등 더 다양한 설정이 궁금하다면 공식문서를 참조하자. 역시 공식 문서를 보는 것이 제일 정확하고 깔끔한 것 같다. 환경설정 다른 블로그를 보면 보통 locals..