전체 글(13)
-
ECS를 활용한 CI&CD Architecture Diagram
Terraform으로 EcsCluster 배포: 테라폼으로 만들어진 인프라를 통해 백엔드 코드/프론트엔드 코드를 GitHub에 푸시하면 CI/CD가 진행됩니다. [GitHub Actions] name: Deploy to Amazon ECS //github actions을 어떤 푸시가 있을 때, 실행시킬지 on: push: tags: - v* env: AWS_REGION: ap-northeast-2 ECS_CLUSTER: final-test-ecs-cluster ECS_SERVICE: final-ecs-service ECS_TASK_DEFINITION: .aws/task-definition.json CONTAINER_NAME: final-test-api permissions: contents: read j..
2023.03.23 -
[AWS] ALB
LB 로드밸런싱은 하나의 인터넷 서비스가 발생하는 트래픽이 많을 때 여러 대의 서버가 분산 처리하여 서버의 로드율 증가, 부하량, 속도 저하 등을 고려하여 적절히 분산 처리하여 해결해주는 서비스입니다. 위의 그림처럼 사용자가 많아져 트래픽이 하나의 서버로 몰리지 않도록 적절하게 분배시켜주는 역할을 합니다. 로드밸런서의 종류 L2 Data link 계층을 사용, Mac주소 기반 부하 분산 L3 Network 계층을 사용, IP주소 기반 부하 분산 L4 Transport 계층을 사용, Port 기반 부하 분산 L7 Application 계층을 사용, 요청(URL) 기반 부하 분산 ALB (Application Load Balancer): ALB는 L7단의 로드 밸런서를 지원합니다. ALB는 HTTP/HTTP..
2023.03.23 -
[AWS] Cognito
AWS Cognito는 웹 및 모바일 앱에 대한 인증과 권한 부여 그리고 사용자 관리를 제공하고 기존의 아이디, 패스워드 방식 이외에도 Facebook, Amazon, Google 그리고 Apple과 같은 여러 회사의 소셜 로그인 기능을 제공하는 서비스 입니다. Cognito는 사용자 풀(user pool)과 자격 증명 풀(identity pool)으로 구성되어 있는데, 이 둘을 조합하거나 또는 각각 별개의 형태로 사용할 수 있고, 이들 각각의 역할은 다음과 같습니다. 사용자 풀 - 사용자의 가입과 로그인을 제공하는 사용자 저장소 자격 증명 풀 - 사용자 풀에 저장된 정보를 바탕으로 로그인 또는 회원가입에 성공한 사용자에게 AWS 인프라의 여러 서비스에 대한 권한을 부여할 수 있는 서비스 사용자 풀의 인..
2023.03.23 -
[AWS] Session Manager
AWS Session Manager는 Shell에 Access할 수 있는 새로운 옵션으로, 브라우저 기반 Interactive Shell과 CLI를 사용하여 Windows 및 Linux 인스턴스를 관리할 수 있다. 보안 액세스: 수동으로 인스턴스에 계정정보나 SSH키를 입력할 필요가 없고, 인바운드 포트(22번 ssh) 개방이 필요하지 않다. 우선 SSM을 사용하여 EC2 서버에 접근하는 것 자체가 기존 ssh pem key를 사용하는 방식보다 더 보안이 좋다고 할 수 있다. 그 이유는 pem key는 파일 형태로 존재하며, 해당 pem파일이 유실될 가능성이 있기 때문디다. 물론 ssh를 접근 방식을 key방식이 아닌 패스워드 방식으로 변경하여 설정할 수도 있지만 이 경우 유저관리와 패스워드 변경주기 등..
2023.03.23 -
[AWS] WAF + CloudFront
WAF: Web Application Firewall 웹 어플리케이션 방화벽은 웹의 비정상 트래픽을 탐지하고 차단하기 위한 방화벽이다. 고객이 정의한 조건에 따라 웹요청을 허용, 차단, 모니터링하는 규칙을 구성하여 공격으로부터 웹어플리케이션을 보호하는 웹어플리케이션 방화벽이다. 이러한 조건에는 IP주소, HTTP헤더, HTTP본문, URL문자열, SQL명령어 주입 및 교차 사이트 스크립팅이 포함됩니다. 어떤 다른 AWS리소스와 연동할 것인가 WAF는 Cloudfront, ALB, API Gateway, AppSync와 연동할 수 있다. 항상 어느곳에 연동하는 것이 보안 측면에서 더 나을지 고민해봐야한다. Cloudfront는 AWS에서 제공하는 Content Domain Network 서비스이다. 관점에..
2023.03.22 -
[AWS] CloudFront
CloudFront = Cache Server + CDN Cloudfront는 캐시 서버와 CDN 기능을 하는 AWS서비스이다. 기능1. Cache Server: 웹페이지를 php 또는 Node.js로 만들어서 서비스를 제공하고 있을 때, 사용자 요청이 들어오면 정적으로 html을 전송하는 것이 아니라, 일년의 작업을 하고 html을 생성하여 응답해주는 방식으로 동작한다. 이렇게 동적으로 html파일을 생성해서 서비스하는 방식은 정적파일을 바로 제공하는 것보다 더 많은 리소스를 사용하게 된다. 웹페이지가 자주 변경되지 않는 경우, 사용자의 요청이 들어올 때마다 같은 작업을 하는건 당연히 비효율적이다. 그래서 컨텐츠 한 번 전송하면 그 다음 요청시 같은 복잡한 과정을 거치지않고 저장된 결과를 서비스하는 방..
2023.03.22