반응형

Public Cloud 43

[AWS] - 이벤트 매칭 규칙

Amazon EventBridge 규칙 - 발생한 이벤트를 대상 서비스가 처리할 수 있도록 전달 - 다양한 대상에 동시에 전달이 가능함(API Gateway, CloudWatch Log, SQS, SNS). - 모드 - 이벤트 패턴: AWS의 이벤트 버스에서 특정 이벤트를 패턴 매칭하여 대상에 전달함. - 스케줄: Cron 이벤트를 활용해 특정 시간 or 주기마다 대상에게 전달함. 이벤트 패턴 매칭 - AWS 이벤트에 내용 중 필요한 내용을 선별하여 패턴으로 정의 - 이후 패턴에 매칭되는 이벤트를 대상으로 보냄 - JSON 형식 - 매칭하려는 이벤트 내용은 Array안에 넣어 매칭함. - 일반적으로 Source필드와 detail-type 필드를 매칭하여 이벤트 종류를 분리함. - detail 필드 안에 ..

Public Cloud/AWS 2023.01.17

[ AWS ]- 디커플링

긴밀한 결합 : 주체끼리 높은 의존성을 가져 변경이 어려움. ex) 우리 몸 느슨한 결합 : 주체끼리 낮은 의존성을 가져 쉽게 변경할 수 있고 유연함. ex) 전동 공구, 로봇 디커플링(확장성) 긴밀한 결합 --> 느슨한 결합 ==> 이벤트 큐를 더함 - 모듈들이 큐에서 나온 메세지를 구독하고 들음 - 다른 모듈이 추가되도 기존의 모듈들에 영향을 안끼침. - 기존 모듈이 수정되도 오류 안생김 SQS(Simple Queue Service) - 마이크로 서비스 ,분산 시스템 및 서버리스 애플리케이션을 쉽게 분리하고 확장할 수 있도록 지원하는 완전관리형 메세지 대기열 서비스 - AWS에서 제공하는 큐 서비스 - 다른 서비스에서 사용할 수 있도록 메세지를 잠시 저장하는 용도 - 하나의 메시지를 한번만 처리 SQ..

Public Cloud/AWS 2023.01.16

AWS - 이벤트 기반 아키텍처

명령(교통경찰): 생성 주체가 대상에 행동에 대한 관심을 가지고 회신을 기다림 이벤트(신호등): 명령이 아닌 관찰한 내용, 생성 주체는 대상의 행동에 관심이 없음 이벤트 구성요소 - 사건의 내용 - 사건의 발생 시간 및 주체 - 불변성(과거에 생성된 이벤트는 변경될 수 없음) Amazon EventBridge - 자체 애플리케이션, 통합 SaaS 애플리케이션 및 AWS 서비스에서 생성된 이벤트를 사용해 이벤트 기반 애플리케이션을 대규모로 손쉽게 구축할 수 있는 서버리스 이벤트 버스. - 여러 이벤트가 모이는 통로 - 외부(On-premise)에서 던진 이벤트도 처리가 가능 - ex) EC2가 시작되면 --> SNS, SQS, Lambda로 처리 AWS API call via CloudTrail - API..

Public Cloud/AWS 2023.01.16

Terraform이란

Terraform이란 : HCL 언어로 클라우드 리소스를 정의하고 이 내용을 테라폼 CLI 애플리케이션(terraform)으로 자신의 클라우드 계정에 실제로 반영할 수 있는 도구 HCL 언어란 - Hashicorp Configuration Language - 테라폼 코드를 작성하기 위한 언어 - Block: 테라폼 코드의 최소 단위 - Prefix: HCL 언어 블록을 나타냄 Provider "aws" { region = "ap-northeast-2" } --> 어떤 Provisioning을 할지를 나타냄 - Block 내용(Body)는 Argument로 구성됨- Argument는 Identifier(Argument이름), Expression(Argument 값)으로 나타냄 "" ""{ # block b..

Terraform - 중앙 집중식 비밀 저장소

중앙 집중식 비밀 저장소 : 테라폼 민강정보 위험을 최소화 - 중앙 집중식 비밀 저장소에 민감정보(ID/PW)를 저장 - 사용자는 필요할 때마다 민감정보를 조회 - --> 리소스에 접근 ID/PW 조회 data "aws_secretsmanager_secret_version" "creds" { secret_id = "t-study" } data block 참조 --> RDS 생성 resource "aws_db_instance" "myrds" { identifier_prefix = "t-sensitiveData" engine = "mysql" allocated_storage = 10 instance_class = "db.t2.micro" skip_final_snapshot = true db_name = "w..

Terraform - 민감정보 보안 / Provider Block / OIDC

Provider Block Provider Block에 인증정보를 하드코딩을 함. --> 테라폼 코드가 유출되면 admin 권한도 유출됨 provider "aws"{ region = "..." access_key = "access-key" secret_key = "secret-key" } 보완 방법 1. 환경변수 설정 $export AWS_ACCESS_KEY_ID="my-access-key" $export AWS_SECRET_ACCESS_KEY="my-secret-key" - 단점: 재부팅하거나 쉘을 바뀌면 환경변수를 재설정해야함. 2. 설정파일 $aws configure --> access key입력 Q. 태라폼이 다른 서비스(EC2 인스턴스 Github Action)에서 실행한다면? 위 방법으로 하면..

Terraform - for expression

Terraform - for expression : 반복을 이용해 일괄변환 작업 (expression 타입을 변환, 수정) - 대문자 변환 variable "fruits_set" { type = set(string) default = ["APPLE", "BANANA"] description = "fruit example" } ↓ variable "fruits_set" { type = set(string) default = ["apple", "banana"] description = "fruit example" } count for_each for expression 사용 목적 반복 조회 반복 조회 반복 변환 리턴 타입 [for item in 'expression': 변환작업] --> 리턴: tuple {..

Terraform - for_each 반복문

for_each : 반복을 할 때 인덱스가 아닌 each object로 접근하는 방법 - map, set만 for_each 사용 가능함 - for_each를 사용하려면 타입 변환이 필요함 list vs each object list variable "sample" { type = list(string) default = ["aaa", "bbb", "ccc"] } - IAM user 생성 resource "aws_iam_user" "count" { count = length(var.user_names) name = var.user_names[count.index] } - for_each를 이용해 IAM 생성할 경우 resource "aws_iam_user" "for_each_set" { for_each =..

[ AWS ] ENI / VPC flow

ENI(Elastic Network Interface) - VPC에서 가상 네트워크 카드를 나타내는 논리적 네트워킹 구성 요소 - 가상의 랜카드 - IP주소와 MAC주소를 보유 - ENI 하나 당 하나 이상 Private IP + 하나의 Public IP - EC2는 반드시 하나 이상의 ENI가 연결됨. - EC2 처음 생성할 때 Primary ENI가 생성되어 연결됨 - EC2는 하나 이상의 ENI 보유 가능 - 추가적인 ENI는 EC2와 같은 가용영역이면 다른 서브넷에도 설정이 가능함. - EC2의 서브넷 위치, 보안 그룹 등 외부와 관련된 연결은 ENI단위에서 결정됨. - EC2는 subnet에 안에 있는 것이 아닌 ENI만 subnet에 위치해서 통신한다. 다중 ENI 아키텍처 - 하나의 인스턴스..

Public Cloud/AWS 2023.01.12

[ AWS ] IAM

EC2에 권한 부여 IAM 자격 증명 등록 - IAM 사용자를 생성하고 IAM 자격증명을 발급받아서 EC2에 등록함. - 일일이 관리가 어렵고 바꾸기 힘듦 ex) EC2 100대 자격증명을 교체하기 어려움 IAM 역할 부여 - 권한이 부여된 IAM 역할을 만들고 EC2에 부여 - 내부적으로 지속적으로 자격증명을 변경할 수 있음. - 관리가 쉬움 - 높은 보안성 ex) IAM 사용자 + 개발자 Role => EC2 서버 프로비전 ex) IAM 사용자 + 경영지원 Role => 요금 조회 ex) AWS Lambda + S3 Access Role => S3 파일 데이터 불러오기 ex) EC2 + EC2 서비스 관리 Role => EC2 관련 조회, 설정 ex) IAM 사용자에게 S3 Full Access 역할..

Public Cloud/AWS 2023.01.11
반응형