Cloud

· Cloud/AWS
클라우드 서비스를 이용하다보면 이벤트 발생에 맞춘 로직 수행이나 주기적인 자동화를 수행해야할 경우가 존재한다.예를 들어, 워크로드 상에 존재하는 작업들의 이벤트 기반 상호작용이나 매일 새벽에 하루동안의 로그들을 바탕으로 보고서를 작성하는 등의 작업이 있을 것이다. 이러한 작업을 위해 Eventbridge의 Rule과 Scheduler를 이용할 수 있다.이번에는 Eventbridge의 구성요소와 이들을 활용한 간단한 자동화를 구성해보도록 한다. Eventbridge이벤트를 Application 요소들과 연결할 수 있는 서버리스 '이벤트 버스' 서비스, 이전에는 Cloudwatch Events로 불렸고, 현재는 Eventbridge로 명칭이 변경되었다고 한다.S3, EC2와 같은 AWS 서비스들에서 발생하는..
· Cloud/AWS
여러 AWS 서비스에서는 사용자를 대신해서 작업을 실행하기 위해 IAM Role을 부여한다. 그 과정에서 AssumeRole과 PassRole을 자주 볼 수 있는데, 이 둘은 간혹 보면 햇갈리는 점이 있다.이번에는 이 둘이 각각 어떤 기능이고, 어떤 차이점이 존재하는 지 알아보도록 한다. AssumeRole한 IAM Role이 다른 Role의 권한을 일시적으로 가져와서 사용할 수 있도록 하는 기능AssumeRole은 IAM이 아닌 STS(Security Token Service)라는 서비스의 Action으로 분류된다. Assume Role을 통해 User/Role은 자신에게 부여된 권한을 넘어 다양한 추가 권한을 임시로 얻어서 누릴 수 있게 된다.더불어, AssumeRole은 동일한 계정 내의 Role ..
· Cloud/AWS
S3 버킷을 정적 호스팅용으로 사용하는 경우, 버킷을 퍼블릭으로 오픈 후, 퍼블릭하게 버킷으로 접근할 수 있도록 버킷 정책을 설정해주어야한다.그리고 이러한 정적 호스팅 페이지를 오리진으로 하는 Cloudfront 배포를 생성해 사용하고는 한다. 이렇게 생성된 Cloudfront 배포 URL을 타고 정적 호스팅 버킷으로 접근하는 로직을 타는 것이다.하지만, 이러한 설정에도 불구하고 여전히 정적 호스팅 버킷 URL을 통해서 직접 접근하는 것이 가능하다. 버킷 컨텐츠에 대한 직접 접근을 막기 위한 방법으로 Cloudfront의 OAI와 OAC가 존재한다. OAI(Origin Access Identity)Cloudfront를 통해서만 S3 오리진에 접근할 수 있도록 하는 설정정확히는 Cloudfront가 S3 ..
· Cloud/AWS
클라우드 환경에서 네트워크 구조를 구성할 때, VPC와 같은 가상 네트워크 서비스를 이용한다. 서비스 운영 범위가 방대해지거나 다른 리전 등의 네트워크 망과 통신을 해야하는 경우가 발생하게 된다. 이러한 상황에 AWS VPC의 VPC Peering과 Transit Gateway라는 솔루션을 이용할 수 있다.이번에는 VPC Peering과 Transit Gateway를 알아보고 간단한 활용 아키텍쳐를 구축해보도록 한다. VPC PeeringVPC의 프라이빗 IP주소를 사용해, 두 VPC 간에 트래픽을 라우팅할 수 있도록 일대일 연결한 네트워킹 구조 이러한 VPC Peering은 같은 리전, AZ의 VPC 뿐만 아니라, 다른 AZ, 리전, 계정의 VPC와 연결할 수 있다. 당연하게도 연결하려는 두 VPC의 ..
· Cloud/AWS
AWS RDS는 관계형 데이터베이스(RDBMS)를 쉽게 설정, 운영하게 하는 관리형 데이터베이스 서비스이다.RDS는 MySQL, PostgreSQL, Oracle 등의 다양한 DB엔진을 지원하고, 자동 백업, Auto-Scaling, Cloudwatchf를 통한 모니터링 등을 지원해 DB 관리에 드는 노력과 부담을 줄여준다. 이러한 RDS의 기능 중 Multi-AZ와 Read Replica는 DB의 가용성, 성능, 확장성을 크게 향상시킬 수 있는 요소이다.  이번에는 이러한 Multi-AZ와 Read Replica를 알아보고 직접 구성해보도록 한다. Multi-AZ2개 이상의 AZ(가용영역, Availability Zone)에 걸쳐 DB를 구축하는 아키텍쳐, DB의 가용성을 높인 구조로 볼 수 있다.Mu..
· Cloud/AWS
AWS VPC CNIAWS 환경에서 동작하는 Kubernetes 클러스터에 제공하는 CNI(Container Network Interface)로, node에 배치되는 pod들에도 VPC IP를 할당해 pod 간 통신을 구현하는 방법node와 pod가 동일한 네트워크 대역을 사용한다는 특징이 존재한다.  기존의 다른 kubernetes CNI들이 네트워크 오버레이와 같은 기술을 사용해 pod에 IP를 할당했다면, AWS VPC CNI는 node 내부의 pod 간 통신은 네트워크 브릿지를 통해서 이루어지고, node를 넘어서는 pod 간 통신은 오버레이 기술이 아닌 일반 VPC 통신이 이루어진다. (VPC Native) EKS는 기본적으로 VPC CNI를 사용하고, kOps로 클러스터를 만드는 경우 clus..
· Cloud/AWS
클라이언트로 하여금 파일을 업로드받거나, 그 파일을 워크로드를 거친 후 결과물을 다운로드받게 하고자 하는 경우 보통 S3 버킷을 하나 생성해서 파일을 관리한다. 그리고 그 버킷을 Public하게 오픈시켜 클라이언트들이 접근하게 만든다. 하지만 이렇게 단순히 Public하게 오픈시켜 모든 클라이언트로 하여금 파일을 업/다운로드하게 하는 것은 과연 안전한 방법일까?그리고 클라이언트의 파일을 우리의 백엔드 API를 통해서 S3로 업로드하면, 우리의 백엔드에도 파일을 받고 전송하는데에 대한 부하가 발생하게 된다. 이러한 문제를 위해 S3에서는 Presigned-URL이라는 기능을 지원한다.  Presigned-URL버킷에 대한 접근 권한이 있는 사용자를 통해 버킷의 특정 객체에 대한 접근을 허용하는 단기간성 U..
· Cloud
서버를 운영하게 되면 로그는 자연스럽게 발생한다. 이러한 로그들은 양도 많을 뿐더러 관리하는 서버의 수가 많아지면 그 내용들을 일일히 직접 확인하기란 어려울 따름이다. 그래서 로그 수집과 가시화 시스템을 구축하여 로그들을 모니터링하게 된다.  이번에는 Loki와 Promtail, Grafana를 이용해 로그를 모니터링하는 아키텍쳐를 구축해보도록 한다. Loki & PromtailLike Prometheus, but for logs  Loki는 오픈소스 타입의 로그 모니터링 도구로, 로그를 Label을 통해 그룹화해 처리한다. Prometheus가 Metric을 수집하는데에 목적을 두었다면, Loki는 로그를 수집하는데에 목적을 둔 도구로 볼 수 있다.로그 라인의 메타데이터(Label)를 인덱싱해, 그 L..
Omoknooni
'Cloud' 카테고리의 글 목록