본문 바로가기

전체 글16

[BACK-END DEV] Optimized SNS application for Huge Traffic Handling by using Redis, SSE and Kafka TABLE OF CONTENTS 1. Planning project requirements백엔드의 개발 시작은 일단 Wireframe(화면기획서; 화면과 함께 기획자가 원하는 요구사항을 정리한것으로 서비스 전체 기능이 담김) & Storyboard를 받은 후 이 화면 기획서에서 어떤 기능의 API가 필요할지 분석해야 한다. 즉, 개발 협업 및 안정적인 방향의 코딩 지향 : 화면 기획서와 User Story Board를 분석한 기능 요구사항으로 필요한 API를 listup하여 작성한 Sequence Diagram으로 발생할 수 있는 모든 상황들을 Mocking하여 Controller단과 Service 단에서 발생할 수 있는 모든 Response Status와 Response Code를 담은 ErrorCod.. 2024. 6. 26.
[DEVOPS] Deployed 3-tier Web App on ECS Cluster by using AWS CodePipeline(Blue-green) TABLE OF CONTENTS 1. Provisioning ECS Cluster지금까지는 EC2라는 가성머신 위에 소스를 직접 배포하는 형태로 서비스를 배포해보았지만 이렇게 되면 소규모 서비스 밖에 구축을 하지 못하므로 이제는 이러한 소스를 Docker image로 만들어서 ECS Cluster에 Docker Container 형태로 배포를 하자. 이렇게 함으로서 규모가 큰 서비스까지 배포할 수 있게 된다Docker Registry는 AWS의 ECR을 사용하도록 하고, 개발 환경을 Local PC로 진행하는게 아니라 Cloud9(EC2 Runtime environment 제공; OpenVPN과 같은 바스챤 host 없이도 개발 진행을 가능하도록 하는 용도)을 사용하도록 하자. ECR Repository.. 2024. 6. 26.
[Cloud Architecture] 3. AWS ECS(Elastic Container Service) TABLE OF CONTENTS 1. What is ECS?ECS가 무엇이냐? 멀티 컨테이너를 오케스트레이션 하도록 하여 Container Cluster를 구성할 수 있게 한다. ECS Cluster 안에는 ECS Container instance가 존재하게 되는데 이것은 EC2 내부에 ECS Container Agent가 설치된 상태로 생성이 된 것이고, 이것은 자동으로 ASG로 묶여서 생성이 되게 되고, 이러한 ECS Container instance 안의 Container들은 Task로 실행이 되고, 이는 Task Definition이라고 하는 설정 값에 의해서 배포가 되게 되고 이러한 Task들은 Service에 의해서 생성이 되고, Service는 ELB와 연동을 해서 외부에서 접근이 가능하도록.. 2024. 6. 26.
[DEVOPS] Architected 3-tier Web App on IaaS by using Jenkins & Ansible CICD pipeline with logging, Backup and Monitoring/Alarming Solution TABLE OF CONTENTS 1. Making VPC아래의 2가지 아키텍쳐를 구현한다.위의 아키텍쳐에서 베스쳔 호스트로 OpenVPN용 EC2를 public subnet에 생성하도록 하자. VPC 생성 후 그 안에 Subnet을 생성한 후 routing table 만들어보기. 여기서 만들 아키텍쳐이다.AWS Console에서 vpc를 CIDR 10.1.0.0/16 대역으로 만들어주자.이후 VPC에서 Subnet을 6개를 생성해주자. 위의 subnet 이름에서 뒤에 붙은 알파벳(a, c)은 해당 Region의 AZ으로 ap-northeast-2a와 ap-northeast-2c 중에 하나를 선택하는 것이다.언제나 순서는 Region 선택 → VPC 생성(CIDR 대역 만들기) → Subnet 생성하면서 .. 2024. 6. 26.
[Cloud Architecture] 2. CDN with AWS CloudFormation TABLE OF CONTENTS 1. What is CDN and CloudFront?Cloudfront와 S3를 연동해서 기존에 Cloudfront에 Caching되어있던 것을 invalidation시킨 후 S3를 새롭게 Cloudfront의 Origin으로 둬서 이 S3에서 Contents를 가져와서 제시하도록 해보자일단 S3 Bucket(Public Access 허용)을 만들어두자. 그리고 이 S3 Bucket에 Static Contents(HCJ나 .jpg 같은 것처럼 브라우저에 그냥 바로 뿌려지는 것들)를 업로드 해주자. 그 후 Cloudfront를 생성해주고 Origin은 내가 만든 S3 Bucket으로 해주자. 그리고 Cloudfront에서만 이 S3 버킷에 액세스할 수 있도록 Origin .. 2024. 6. 26.
[Cloud Architecture] 1. Autoscaling Group TABLE OF CONTENTS 1. What is Auto Scaling Group?ASG(Autoscaling Group) ⇒ 사용자가 설정Launch template는 인스턴스를 생성할 때 NW 정보나 Instance Type, keypair, AMI Image 등을 미리 설정할 수 있는 것으로 ASG를 생성할 때 이러한 Launch template을 이용해서 손쉽게 동일한 EC2를 생성하도록 하여 편하게 ASG를 만들어준다.즉, Launch Template과 Golden AMI를 통해서 EC2 자체는 변하지 않고 새롭게 계속 찍어낼 수 있는 immutable infra(kettle 모델)을 구현할 수 있게 된다그리고 이러한 Launch template에 사용되는 Image를 Golden AMI(필.. 2024. 6. 26.