본문 바로가기

IT/AWS27

반응형
AWS ALB 스티키 세션(Sticky Session) 동작 원리 및 적용 방법 안녕하세요AWS에서 애플리케이션을 운영하다 보면 한 번쯤은 마주치게 되는 기능, 바로 '스티키 세션(Sticky Session)'입니다. "로그인을 했는데 자꾸 풀려요!", "장바구니에 담은 물건이 사라졌어요!" 이런 문제를 해결해 주는 구원투수이자, 때로는 트래픽 불균형의 주범이 되기도 하는 양날의 검이죠. 오늘은 AWS ALB(Application Load Balancer)의 스티키 세션이 정확히 어떻게 동작하는지, 쿠키는 어떻게 생성되고 트래픽은 어떻게 흘러가는지 아주 깊이 있게 파헤쳐 보겠습니다. 1. 스티키 세션, 도대체 왜 필요한가요? 웹 서버는 기본적으로 '기억상실증(Stateless)' 환자입니다. 클라이언트가 A 서버에 "나 철수야"라고 말하고, 다음 요청을 B 서버에 보내면 B 서.. 2026. 1. 2.
AWS EC2에 AWS EKS 쿠버네티스 클러스터 엑세스 권한 제공 이번 글에서는 프라이빗 서브넷으로 구축된 AWS EKS 클러스터에 접근할 수 있는 권한을 제공하는 방법에 대해 알아볼 것이다. EC2 인스턴스에 AWS EKS 클러스터 엑세스 권한을 제공한 이유는, AWS EKS 쿠버네티스 클러스터를 프라이빗 서브넷으로 구축했을 때, 쿠버네티스 관리를 위한 EC2 인스턴스가 추가적으로 필요했다. 하지만 EC2 인스턴스는 쿠버네티스 클러스터 워커 노드가 아니기 때문에 클러스터 접근 및 관리가 불가능했다. 그래서 해당 EC2 인스턴스에 쿠버네티스 클러스터에 엑세스 할 수 있게 권한을 부여하게 되었다. 실습 순서는 다음과 같다. 1. AWS EKS 구축 2. EC2 인스턴스 생성 & IAM 계정 생성 3. AWS EKS 쿠버네티스 클러스터 접근권한 제공 1. AWS EKS 구.. 2020. 10. 3.
AWS SSM으로 Private Subnet EC2 접근하기 이번 글에서는 Amazon EC2 Systems Manager (SSM)를 활용하여 프라이빗 서브넷(Private Subnet)에 구축된 EC2 인스턴스에 접근해보도록 하겠다. 1. 왜 AWS SSM을 활용해서 접근해야 하는가? Private Subnet에 구축된 EC2 인스턴스는 퍼블릭 IP주소가 없고 프라이빗 IP주소만 가지고 있다. 그렇기 때문에 외부에서는 해당 EC2 인스턴스로 접근할 수가 없다. 프라이빗 IP주소만 가지고 있는 EC2 인스턴스에 접근하기 위해서는 1)바스티온 서버를 통해 접근하거나 2)AWS SSM 을 통해 접근 해야한다. 바스티온 서버를 통해 접근하는 방법은 프라이빗 서브넷 위의 EC2 인스턴스와 동일한 VPC의 퍼블릭 서브넷에 바스티온 서버를 구축한 후 SSH를 통해서 EC2.. 2020. 9. 28.
AWS EKS에 로그 트레이싱 구축(2)-kubernetes에 Jaeger 설치 지난 글에서 AWS EKS로 구축된 쿠버네티스 클러스터에 EFK 스택을 구성하였다. 이번 글에서는 AWS EKS로 구축된 쿠버네티스 클러스터에 Jaeger를 설치하여 분산 환경 로그 트레이싱을 구축해보도록 하겠다. Jaeger는 EC2 인스턴스에 별도로 구성하는것이 아닌, 쿠버네티스 클러스터 내에 구성할 것이다. 이 글의 실습을 진행하기 전에 다음과 같은 실습환경이 준비되어 있어야 한다. -º AWS EKS 구축(AWS EKS를 활용한 쿠버네티스 클러스터 구축 참고) - AWS EKS에 스프링부트 서비스 배포(AWS EKS에서 CodePipeline을 활용하여 스프링부트 서비스 배포하기 참고) - AWS EKS에 EFK 스택 구성(AWS EKS에 로그 트레이싱 환경 구축하기(1) - EFK 스택 구성하기.. 2020. 8. 23.
AWS EKS에 로그 트레이싱 구축(1)-kubernetes에 EFK 스택 설치 이번 글에서는 AWS EKS로 구축된 쿠버네티스 클러스터에 EFK 스택을 구성하고, Jaeger를 설치하여 분산 환경에서 로그 트레이싱 진행할 수 있도록 구축해 보겠다. 첫번째 장에서는 EFK 스택을 구성할 것이고, 그 다음 장에서는 Jaeger를 설치할 것이다. EFK스택은 EC2 인스턴스에 별도로 구성하는것이 아닌, 쿠버네티스 클러스터 내에 구성할 것이다. 이 글의 실습을 진행하기 전에 다음과 같은 실습 환경이 준비되어 있어야 한다. 1. AWS EKS 구축(AWS EKS를 활용한 쿠버네티스 클러스터 구축 참고) 2. AWS EKS에 스프링부트 서비스 배포(AWS EKS에서 CodePipeline을 활용하여 스프링부트 서비스 배포하기 참고) 이 글의 순서는 다음과 같이 진행된다. 1. 분산환경 로그 .. 2020. 8. 23.
AWS EKS에서 CodePipeline을 활용한 스프링부트 서비스 배포 이번 글에서는 AWS EKS에 CodePipeline(CodeCommit & CodeBuild)을 활용하여 스프링부트 서비스를 배포해보도록 하겠다. 이 글의 순서는 다음과 같다. 1. AWS CodeCommit 생성 2. AWS CodeBuild 생성 3. AWS CodePipeline 생성 4. 스프링부트 서비스 배포 추가로 실습하기 전에 AWS EKS가 이미 구축되어 있어야 한다. AWS EKS는 퍼블릭 서브넷과 프라이빗 서브넷을 각각 2개씩 가진 VPC위에서 동작하며, EC2 인스턴스는 프라이빗 서브넷에서만 구동되게끔 셋팅되어 있어야 한다(AWS EKS를 활용한 쿠버네티스 클러스터 구축 참고) 1. AWS CodeCommit 생성 우선 AWS CodeCommit을 생성해보자. CodeCommit을 .. 2020. 8. 22.
AWS EKS를 활용한 쿠버네티스 클러스터 구축 이번 글에서는 AWS EKS를 활용하여 쿠버네티스 클러스터를 구축해 볼 것이다. 사실 필자는 스터디 팀원들과 상용 오픈을 목표로 자체 프로젝트를 진행중인데, 돈을 많이 쓰지 않으면서 최대한 효율적으로 PaaS 환경을 구축하기 위해, AWS에 Kops를 활용해서 쿠버네티스 클러스터 구축/활용해 본 경험이 있다(마스터노드를 한개만 사용해도 되기 때문에 가격이 더 저렴했다. 물론 프로젝트가 어느정도 안정기에 도달하여 트래픽이 늘게 되면 AWS EKS를 도입할 생각이었다). 하지만 회사에서 진행하는 클라우드 교육 과제의 일환으로 AWS EKS로 쿠버네티스 클러스터를 구축하게 되어 이렇게 글을 남긴다. 이 글은 보는 사람이 최대한 이해하기 쉽도록 eksctl이 아닌 AWS Management Console을 활용.. 2020. 8. 6.
반응형