전체 글

전체 글

    [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을 통해 구성하였으며, 전체 코드는 깃허브에 업로드 해두었다. 글을 나눈 기준은 AWS에서 VPC 대시보드에 제공하는 서비스와 EC2 대시보드에서 제공하는 서비스이다.  VPC (Virtual Private Cloud)사용자가 AWS 리소스를 관리할 논리적으로 격리된 네트워크 공간방(Subnet)도 만들고 가구(EC2, RDS 등)도 들일 집 역할을 하는 것이 바로 VPC이다. RFC 1918 rangeExample10.0.0.0 ~ 10.255.255.255 (10/8 prefix) 10.0.0.0/16172.16.0.0 ~ 172.31.255.25..

    [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..

    [Spring] WireMock 을 사용한 HTTP Client 유닛테스트

    개인 깃허브에서 Riot API를 사용하여 리그오브레전드 게임 관련 어플리케이션을 만들고 있었다. 하지만 API가 어떻게 만들어졌는지 모르겠지만.. 정상적인 API 요청을 보내도 실패할때가 있고 몇 초 뒤에 아무렇지 않게 성공 응답을 반환한다. 😱 뼈져리게 Retry의 필요성을 느꼈다. 해당 기능을 개발하면서 비정상적인 응답이 왔을때 Retry, 예외 처리에 대한 테스트 코드를 작성하기 위해 응답 값 모킹이 필요했고, 이를 위해 WireMock을 사용하게 되었다. 작성한 테스트 및 고려한 사항들에 대해 공유하고자 한다. 본 글은 spring boot, gradle, java를 사용하고 http client는 feign, 테스트 프레임워크는 spock(groovy)를 사용한다. spring, spock 환..