전체 글

어차피 이 세상은 아만보
ALB나 cloudfront를 이용하다 보면 HTTP/2를 지원하는 것을 확인할 수 있다. HTTP/2는 HTTP/1.1에 비해 빠르다는 것 정도만 알고 있다. 이 두 버전을 비교해보며 HTTP/2에서는 정확히 어떤 것들이 개선되었는 지를 비교해본다. HTTP/1.1 1997년에 릴리스된 프로토콜로 클라이언트와 웹 서버간의 정보를 교환하는 Layer 7의 프로토콜이다. HTTP/1.1에서는 기존 1.0과 비교해 아래 2가지 특징을 가진다. Persist Connection 기존 1.0 버전에서는 TCP 3way hand-shaking을 거쳐 HTTP Connection이 이루어졌다. 즉, 매 Connection을 생성할때마다 hand-shaking이 이루어지고, 큰 overhead로 작용되었다. (RTT..
· Cloud/AWS
최근에 AWS Skill builders 강의를 들었다. 아무래도 요새 AWS 측에서 밀고있는 주제가 App 현대화와 생성형 AI인 만큼 관련된 내용들이 강의로 나왔었는데, 그 중 흥미롭게 사용했었던 서비스중 하나를 가져왔다 Amazon Codewhisperer 생성형 AI기반의 코드 생성기, 주석으로 문장형 명령을 입력하면 AI가 그에 맞는 코드를 추천해주는 서비스이다. 아마존에서는 AI 코딩 동료라는 개념으로 이 서비스를 소개했다. 그리고 이 서비스는 개인 레벨의 계정에 한해서는 무료로 오픈했다고 하니, 부담없이 접근할 수 있는 장점도 있다. AI 코드 생성기 - Amazon CodeWhisperer - AWS CodeWhisperer는 사용자의 작업 방식에 꼭 맞습니다. Python, Java 및 ..
· Cloud/IaC
이번 글에서는 직접 간단한 인프라 아키텍쳐를 구성하고 코드를 작성해 Apply까지 진행해본다. 인스턴스 2개를 생성해 하나의 ALB로 묶은 아키텍쳐를 생성하보고자 한다. ALB 1개와 2쌍의 서브넷, 2개의 인스턴스로 구성된 아주 전형적인 ALB 아키텍쳐이다. 시작하기에 앞서, Terraform 실행을 위한 Credential을 생성해야한다. Terraform을 통해 다양한 리소스들을 관리하므로 AdministratorAccess 권한을 가진 사용자를 생성한다. 사용자 생성 후 액세스 키도 생성한다. 이렇게 생성한 Credential은 terraform 코드 내에 직접 넣을 수 있고, CLI config/credential 파일에 넣고 불러올 수도 있으며, 시스템 환경변수 식으로 설정해 불러올 수 있기도..
· Cloud/IaC
이번에는 Terraform에서 사용되는 기본 키워드를 몇 가지 알아보고, 직접 code를 작성해 인프라를 올려본다. 기본 키워드 Provider Terraform 템플릿으로 구성될 인프라의 타입으로, AWS / GCP / Azure와 같은 퍼블릭 클라우드 서비스 부터 SaaS 타입의 서비스까지 다양한 외부 서비스들을 Terraform과 연결해주는 기능 프로바이더는 configuration 단계에서 반드시 설정해주어야한다. 아래 링크에서 Terraform이 지원하는 Provider 목록을 확인할 수 있다. Terraform Registry registry.terraform.io Terraform은 이러한 Provider들의 API를 호출하는 식으로 실행된다. 아래 코드는 Provider를 AWS로 지정하는..
· Cloud/IaC
Public cloud가 발달함에 따라 많은 개인과 기업들이 운영 중인 서비스들을 클라우드로 전환하게 되었다. 클라우드로 전환하고 점차 서비스들이 확장되며, 사용중인 리소스들의 수가 증가하여 프로비저닝과 운영/관리가 복잡하고 어렵게되었다. 이에 따라, 클라우드 리소스를 코드 형식으로 관리하고자하는 움직임이 나타나고, 이번에 소개할 Terraform이 등장하게 되었다. Terraform terraform은 Hashicorp에서 개발한 오픈소스 인프라관리 도구로, 인프라의 구조를 코드로 작성해서 간단하게 구축하고 인프라의 형상을 관리할 수 있다. Terraform은 HCL(Hashicorp Configuration Language)라는 자체적인 설정 Language를 이용해 인프라 리소스들을 선언한다. 자체..
· Cloud/AWS
CDN Content Delivery/Distribution Network의 약자로, 서버의 컨텐츠를 빠르게 전송하기 위해 다수의 네트워크 노드들에 컨텐츠를 저장(캐싱)해두는 시스템 오리진 서버가 컨텐츠를 여러 네트워크 노드(CDN 서버)에 미리 저장해두고 클라이언트가 오리진 서버의 컨텐츠를 가져오는 상황에서, 접속하는 클라이언트의 가장 근처의 네트워크 노드에 저장된 컨텐츠를 가져오게된다. 이렇게 CDN 서버에 저장된 컨텐츠를 가져옴에 따라 오리진 서버로의 요청 수를 줄이게되어 서버의 부하를 줄일 수 있다. Cloudfront AWS에서 제공하는 CDN 서비스로, CDN 방식으로 운영되는 캐싱 기반 컨텐츠 전송 네트워크 서비스이다 전 세계에 위치한 Edge Location(엣지 로케이션)을 통해 웹 사이..
방화벽은 설정한 Rule에 따라 진입되는 패킷을 Pass할 것인지, Drop할 것인지 필터링해주는 유해한 트래픽을 차단하기위한 하드웨어 내지 서비스이다. 대부분의 방화벽은 정책 기반으로 트래픽을 필터링한다. 방화벽의 발전 과정이나 구조별 유형 등의 설명거리가 있지만, 여기서는 크게 다루지 않는다. 이번에 정리할 개념은 방화벽에서의 Stateful과 Stateless 유형이다. 이 둘을 각각 예시와 함께 비교하며 알아본다. Stateful / Stateless 외부 네트워크(클라이언트)에서 내부 네트워크(서버)로 접속하는 트래픽을 가정해보자. 클라이언트가 서버로 요청을 날리는 Request와 해당 Request에 대한 클라이언트로 날라가는 Response가 존재할 것이다. 웹 서버로 들어오는 트래픽이 방화..
· Cloud/AWS
Datadog으로 AWS 서비스에서 발생하는 로그 데이터들을 모니터링하기 위해서는 로그들을 Datadog으로 쏴주는 과정이 필요하다. 로그를 쏴주는 방법에는 크게 2가지가 존재한다. 먼저, Datadog에서 AWS integration을 통해 AWS 계정 내에 Log forwarder라는 Lambda 함수를 생성해 지속적으로 로그를 쏴주는 방법이 있다. AWS integration에 대한 설명은 이전 글에서 작성했으므로 여기서는 따로 설명하지 않는다. [Datadog] AWS integration부터 로그 수집까지 배경 클라우드 상에 운영중인 외부 서비스의 로그 모니터링을 진행하고자 했다. 모니터링 할 대상은 WAF 로그, ALB 로그, DNS Query 로그가 있었고, 추가로 해외 IP 접근 이력, 관..
Omoknooni
Memorize