728x90
from fastapi import FastAPI app = FastAPI(docs_url='/api/docs', openapi_url='/api/openapi.json') 목적 프로젝트를 진행하면서, FastAPI를 EKS 위에서 배포하여 사용하는 서비스 환경을 설계하였다. API Server를 ALB(L7)와 Route53을 통해 /api prefix로 노출시키고 정상적으로 웹서버에서 통신이 가능하게 세팅이 된 후, FastAPI의 편리한 Swagger 기능을 통해 간단한 Web UI를 제공받고자 하였다. Swagger의 기본 URL은 /docs 및 /redoc 인데, 사용하는 도메인 주소에서 API 서버는 /api 를 차지한다. 그렇다 보니, /docs 를 입력하면 당연히 웹서버의 페이지로 라우팅되..
본 포스팅은 Kubernetes Official Documents를 기반으로 한다. https://kubernetes.io/ko/docs/concepts/overview/working-with-objects/names/ 오브젝트 이름과 ID 클러스터의 각 오브젝트는 해당 유형의 리소스에 대하여 고유한 이름 을 가지고 있다. 또한, 모든 쿠버네티스 오브젝트는 전체 클러스터에 걸쳐 고유한 UID 를 가지고 있다. 예를 들어, 이름이 mya kubernetes.io # 오브젝트 이름과 ID 클러스터의 각 오브젝트는 해당 유형의 리소스에 대하여 고유한 이름을 가지고 있다. 또한, 모든 쿠버네티스 오브젝트는 전체 클러스터에 걸쳐 고유한 UID를 갖고 있다. 예를 들어 이름이 `myapp-1234`인 파드는 동일한..
이 글은 노션의 대안이라고 여겨지는 Obsidian 노트 앱을 사용하게된 계기 및 실제로 사용해본 경험을 일부 공유하고자 한다. 옵시디언의 사용법에 대해서는 더 뛰어난 분들의 포스팅와 영상을 참고하면 좋을 것 같다. 1. 메모 습관의 시작 및 혁신 - 노션(Notion) 요즘 대학생이 아니라 잘 모르겠지만, 본인은 대학교 3학년때 쯤 노션을 알게되었고, 조금씩 기존의 공부 방법을 전환하여, 현재는 손으로 풀어봐야하는 상황들을 제외하곤 모든 것을 문서로 남기는 습관을 가지게 되었다. 사실 많은 환경의 사람들을 접해보지 않은 편이라 동년배분들이 어떻게 공부하는지는 모르지만, 노션은 개인 사용자의 경우 무료로 사용이 가능하기 때문에, 대부분의 대학생들은 필수적으로 노션을 사용할 것이라 생각한다. 노션의 장점은..
본 포스팅은 Kubernetes Official Documents를 기반으로 한다. 쿠버네티스 오브젝트 관리 kubectl 커맨드라인 툴은 쿠버네티스 오브젝트를 생성하고 관리하기 위한 몇 가지 상이한 방법을 지원한다. 이 문서는 여러가지 접근법에 대한 개요를 제공한다. Kubectl로 오브젝트 관리하기에 대 kubernetes.io # Kubernets Object Management kubectl CLI 툴은 쿠버네티스 오브젝트를 생성하고 관리하기 위한 몇 가지 방법을 지원한다. 이 포스팅에서는 해당 방법에 대한 개요를 소개하고, 장단점을 살펴본다. kubectl로 오브젝트 관리하기에 대한 자세한 설명은 아래 글에서 확인이 가능하다. SIG CLI Documentation for Kubectl and ..
본 포스팅은 Kubernetes Official Documents를 기반으로 한다. 쿠버네티스 오브젝트 이해하기 이 페이지에서는 쿠버네티스 오브젝트가 쿠버네티스 API에서 어떻게 표현되고, 그 오브젝트를 어떻게 .yaml 형식으로 표현할 수 있는지에 대해 설명한다. 쿠버네티스 오브젝트 이해하기 쿠버네티 kubernetes.io 본 포스팅에서는 쿠버네티스 오브젝트가 쿠버네티스 API에서 어떻게 표현되고, 그 오브젝트를 어떻게 .yaml 형식으로 표현할 수 있는지에 대해 설명한다. # Kubernetes Object 이해하기 쿠버네티스 오브젝트는 쿠버네티스 시스템에서 영속성을 가지는 오브젝트이다. 쿠버네티스는 클러스터의 상태를 나타내기 위해 이 오브젝트를 사용한다. 구체적으로 말하면, 다음과 같이 기술이..
본 포스팅은 Kubernetes Official Documents을 기반으로 한다. 쿠버네티스 API 쿠버네티스 API를 사용하면 쿠버네티스 오브젝트들의 상태를 쿼리하고 조작할 수 있다. 쿠버네티스 컨트롤 플레인의 핵심은 API 서버와 그것이 노출하는 HTTP API이다. 사용자와 클러스터의 다른 kubernetes.io # Kubernets API 쿠버네티스의 컨트롤 플레인의 핵심은 API 서버이다. API 서버는 최종 사용자, 클러스터의 다른 부분 그리고 외부 컴포넌트가 서로 통신할 수 있도록 HTTP API를 제공한다. 쿠버네티스 API를 사용하면 쿠버네티스의 API Object(Pod, Namespace, Configmap) 그리고 Event를 Query하고 조작할 수 있다. 대부분의 작업은 ku..
서론 프로젝트에서 AWS 서비스 환경을 구성하는 도중, 사설 네트워크 환경(Private Subnet)에 Jenkins를 구성하도록 설계를 해놓고선, "어떻게 사설 네트워크에 존재하는 Jenkins Web UI 사용할 수 있지?" 라는 고민을 하게 되었다. 이를 Nginx Reverse Proxy을 사용하여 해결한 사례를 공유하고자 한다. 구성 환경 본인이 사용했던 환경 및 필요한 요소는 다음과 같다. AWS Pubic Subnet & Private Subent 각각 최소 하나씩 Internet Gateway & Nat Gateway 구성을 수행 Public Subnet의 Bastion Host(EC2) 공인 IP 보유해야함. Private Subnet의 EC2(GitOps Host) 공인 IP 없음 D..
블로그에 신경을 못 쓴지 대략 2달정도가 지난 것 같다.원래 이 글을 먼저 쓰면서 스스로에 대한 정리를 먼저 한 다음 시작해보려고 했는데, 시간적(마음적일수도) 여유가 나지 않아서 이제서야 글을 작성하게 된다. 지금까지 블로그를 놓게 되었던 변명(?)을 시작하면서 어떤 일상을 살았는지 공유하고, 느꼈던 점들 그리고 앞으로 나아가야할 점에 대해서 작성해볼 생각이다.계획적인 삶 - MBTI J지난 2달동안 본인은 누구에겐 "빡빡할수도", 혹은 "그정도가 뭘..." 일수 있지만, 일반적인 시각에선 열심히 살았다는 얘기를 들을 수 있게 살았던거 같다. 애초에 카카오 클라우드 스쿨을 시작하고 나서, "내 인생에서 가장 열심히 살았던 때"라고 스스로 말할 수 있을 만큼 부족하게 살진 않았다고 생각한다. 그렇게 살..
본 포스팅은 Kubernetes Official Documents을 기반으로 한다. 쿠버네티스 컴포넌트 쿠버네티스 클러스터는 컴퓨터 집합인 노드 컴포넌트와 컨트롤 플레인 컴포넌트로 구성된다. kubernetes.io 쿠버네티스를 배포하면 클러스터를 얻는다. 쿠버네티스 클러스터는 컨테이너화된 애플리케이션을 실행하는 Node 라고 하는 워커 머신의 집합(Data Plane). 모든 클러스터는 최소 한 개의 워커 노드를 가진다. 워커 노드는 애플리케이션의 구성 요소인 파드를 호스트한다. 컨트롤 플레인은 워커 노드와 클러스터 내 파드를 관리한다. 프로덕션 환경에서는 일반적으로 컨트롤 플레인이 복수로 존재하고, 클러스터는 일반적으로 여러 노드를 실행하므로 내결함성과 고가용성이 제공된다. 위는 쿠버네티스 클러스터 ..
# 0. 목적 테라폼의 Variable 모듈을 사용하여 어떤 식으로 변수화를 진행할 수 있을지를 확인하고, 확장을 해본다. Official AWS Provider를 사용하여 VPC & Public Subnet & Private Subnet을 순차적으로 올려보고, 변수화를 진행한다. 확장 가능성을 확인해본다. 여러개를 한번에 프로비저닝해본다. 코드 위주로 작성한다. 진행 환경 MacOS M1 terraform version: v1.5.7 aws provider: 5.17.0 AWS: 2.13.21 Python: 3.11.5 aws configure 미리 설정 후 진행(Access & Secret Key) # 1. Variable 선언 terraform { required_providers { aws = {..