전체 글 137

[keycloak 맛보기 #1] Keycloak 로컬에서 띄우고 Realm 개념 이해하기

개요Keycloak은 오픈소스(Apache License2.0) ID 및 엑세스 관리 솔루션이다.이것만 알고 일단 시작해보자 Keycloak 도커로 띄워보기Keycloak은 설치 매뉴얼이 정말 잘되어있다. 공식문서에 정말 자세히 잘 작성되어있어 문서에 따라 진행해보자.docker run -p 8080:8080 \ -e KEYCLOAK_ADMIN=admin \ -e KEYCLOAK_ADMIN_PASSWORD=admin \ quay.io/keycloak/keycloak:24.0.4 \ start-devdocker run 명령어를 통해 쉽게 keycloak을 띄울 수 있다. http://localhost:8080 에 접속하고 로그인해보자. (id..

🌱 Infra/KeyCloak 2024.11.23

인증 및 권한 프로토콜 OAuth 2.0, OpenID Connect, SAML 그리고 Zero Trust에 대하여

이 포스팅에서는 자세한 내용 보다는 개념맛보기👅 수준의 내용입니다.  📌 OAuth 2.0, OpenID Connect, SAML 간단 개념 정리 OAuth 2.0: 권한 부여에 중점을 둔 프로토콜OpenID Connect: OAuth 2.0을 확장하여 인증 레이어 추가SAML: 엔터프라이즈 환경에 적합한 XML 기반 인증 프로토콜 구분OAuth 2.0OpenID ConnectSAML목적권한 부여(Authorization)사용자 인증(Authentication)사용자 인증(Authentication)데이터 형식JSONJSONXML사용 사례API 인증, 모바일 앱소셜 로그인, API 인증모바일 앱, SPA, API 기반 서비스에 적합기업 SSO, 웹 애플리케이션 인증전통적인 웹 애플리케이션에 적합복잡성..

🌱 Infra/KeyCloak 2024.11.12

[모니터링의 새로운 미래 관측가능성 #5] 6장. 관측가능성의 표준, 오픈텔레메트리

📌 이 내용은 책 내용 메모입니다. 개인적인 생각과 경험 그리고 여러 잡담이 있으니, 책을 읽으며 의견을 나누고싶은분이 봐주시면 좋겠습니다. 6.1 오픈텔레메트리 소개 OpenTelemetry는 한마디로 정리하자면 로그, 메트릭, 추적을 한번에 수집하는 에이전트 역할을 한다고 말할 수 있다. 역사 OpenTelemetry는 Cloud Native Computing Foundation (CNCF) 프로젝트로, 이전의 두 프로젝트인 OpenTracing과 OpenCensus가 합병하여 만들어졌다. OpenTracing, OpenCensus는 코드를 계측하고 관측성 백엔드로 텔레메트리 데이터를 보내는 표준이 없었기 때문에 두 프로젝트의 핵심 기능을 통합하고 텔레메트리 데이터의 생성,수집,전송 방식을 표준화하는..

[모니터링의 새로운 미래 관측가능성 #4] 4장. 오픈소스 관측가능성, 그라파나

📌 이 내용은 책 내용 메모입니다. 개인적인 생각과 경험 그리고 여러 잡담이 있으니, 책을 읽으며 의견을 나누고싶은분이 봐주시면 좋겠습니다. 이번 4장에서는 그라파나 LGTM스택을 설치하고, 기반기술을 이해할 수 있도록 설명한다. 4.1 그라파나 관측가능성 4.1.1 목적과 범위 이 책에서 말하는 관측가능성은 LGTM Stack(Loki, Grafanam Tempo, Mimir)이다. 그 많은 툴 중에 LGTM Stack을 선정한 이유는 아래와 같다고 한다. 대중적이고 라이선스에 자유로운 오픈소스 지속적이고 장기적인 로드맵과 많은 커뮤니티 기술적으로 우수하고 클러스터 구상이 가능하며 많은 API 제공 생각해보면 ElastiSearch는 이제 더이상 오픈소스가 아니라 OpenSearch로 갈라선 반면에 L..

[모니터링의 새로운 미래 관측가능성 #3] 3장.관측가능성의 시작 프로메테우스

📌 이 내용은 책 내용 메모입니다. 개인적인 생각과 경험 그리고 여러 잡담이 있으니, 책을 읽으며 의견을 나누고싶은분이 봐주시면 좋겠습니다. 이번 3장에서는 프로메테우스에 대해 이야기 하고있다. 프로메테우스는 프로메테우스 자체를 잘 사용하기 위한 말 그대로의 생태계를 구축하고있다. 프로메테우스 생태계와 내부 원리를 이해하고있다면 문제가 발생했을 때 근본적인 해결책을 제시할 수 있기때문에 이해하는것이 매우 중요하다. 3.1 프로메테우스 바이너리 구성 프로메테우스는 2012년 시작되었고, 독립적으로 개발되고있는 오픈소스이다. 2016년에 Kubernetes에 이어 두 번째로 Cloud Native Computing Foundation에 가입했다. Prometheus는 클라우드 네이티브 환경에서 정말 중요한 ..

[모니터링의 새로운 미래 관측가능성 #2] 2장.관측가능성 기반 기술

📌 이 내용은 책 내용 메모입니다. 개인적인 생각과 경험 그리고 여러 잡담이 있으니, 책을 읽으며 의견을 나누고싶은분이 봐주시면 좋겠습니다. 2.1 트래픽 관리 2.1.1 SPOF (single point of failure) 클라우드는 멀티테넌트 환경이기때문에 우리가 알지 못하는 사이에 장애가 발생하고, 원인분석도 쉽지 않다. (저번에 겪은 cloudfront장애처럼..) 특히 네트워크는 SPOF 특징을 가지고 있고 그 영향도가 매우 크리티컬하다. 그렇기 때문에 관측가능성 뿐만 아니라 네트워크 트래픽을 수집하고 관리하여 사전에 탐지하고 예측하는것이 중요하다. 2.1.2 로드벨런서 클라우드 + 쿠버네티스의 조합으로 네트워크의 복잡도가 매우 크게 증가했다.😭😭😭😭 많이 사용되는 3가지 로드벨런서 유형을 소..

[Lambda] RDS 중지/ASG min값 0으로 수정

특정 기간동안 사용하지 않을 RDS/ASG/EC2를 중지 시켜주는 스크립트 stop-ec2-rds-during-vacation import boto3 region = 'ap-northeast-2' rds = boto3.client('rds') asg = boto3.client('autoscaling') ec2_r = boto3.resource('ec2') ec2 = boto3.client('ec2', region_name=region) instances = [] def lambda_handler(event, context): # RDS 인스턴스 중지 dbs = rds.describe_db_instances() for db in dbs['DBInstances']: if (db['StorageType'] =..

[ECS exec log ec2] 스크립트

ECS exec도 불편하고, 로그를 보는것도 불편하고 ec2 매번 찾아들어가는것도 귀찮고 힘들어서 스크립트를 만들었다.. 모두에게 도움이 되기를... 🥲 Step 1 ) ECS 서비스 설정 가장 먼저, enableExecuteCommand 가 활성화 되어있어야 한다. aws ecs update-service --cluster ${클러스터이름} --services ${서비스이름} --enable-execute-command true enableExecuteCommand 활성화 후에도 뭔가 오류가 발생한다면 이것을 실행해보자 (amazon-ecs-exec-checker) Step2) 로컬 PC에 awscli, Session Manager 설치 스크립트를 실행하기위해서는 awscli, session Manag..

ECS를 쓰면서 불편한점 (후기)

ECS를 사용하기로 결정했고, 구성한지 1달이 거의 다 되어간다. 그런데...... 생각지도 못하게 너무 불편한점이 많다. ㅠㅠ 직접 겪은 ECS의 불편한 점들을 나열해보려고 한다. 1. 관리툴 부족 ..... 오류 발생했을때, 얼른 들어가서 로그를 봐야하는데, 로그보기가 너무 어렵다.... 실시간으로 로그를 보려면 얼른 ec2 접속해서 봐야한다. 별도의 로그 솔루션을 사용하지 않기 때문에, 나는 그냥 cloudwatch logs에서 로그를 확인하거나 (불편), ec2에 직접 들어가서 docker logs로 로그를 확인하고 있다.(이것도 불편) k8s는 k9s로 엄청 간단하게 로그를 다 볼 수 있는데 말이다.. 이런 시대에 살고있는 우리에게 ecs는 너무나도 불편하다. 이름 깃헙레포 단점 copliot ..

AWS Codepipeline lambda 실행하기

Codepipeline에서 lambda를 실행하려면, Codepipelin에게 완료되었는지 여부를 알려줘야 한다. 아래 코드는 단독실행 task를 위한 샘플 코드이다. import urllib3 import json import boto3 import json import botocore.exceptions def lambda_handler(event, context): client = boto3.client("ecs", region_name="ap-northeast-2") waiter = client.get_waiter('tasks_stopped') code_pipeline = boto3.client('codepipeline') job_id = event['CodePipeline.job']['id'] ..

728x90