본문 바로가기

반응형

DevOps

(13)
[Istio] EKS에서 Okta와 AWS ALB, Istio를 활용하여 인증, 인가 처리하기 1. 개요 Application 단에서 Okta 인증 로직을 구현하는 것보다 AWS ALB 혹은 Istio를 통해 구현하게 된다면 로직을 상당히 줄일 수 있을 것이라 생각하였다. Okta + AWS ALB + Istio를 구현하기 위해서는 다음의 지식들이 필요하다. [Okta] - JWT / OIDC / OAuth2.0 / SAML - ClientID, ClientSecret - Endpoints (Userinfo, Ahthorize, Token, ..) - Org Authorization Server , Custom Authorization Server [AWS] - AWS Listener Authentication (OIDC) - x-amzn-oidc-accesstoken, x-amzn-oidc-id..
[Envoy] Envoy Proxy Architecture # 1. 개요 MSA(Micro Service Architecture)를 사용하는 기업이 많아지면서 MSA 서비스 네트워크 통신은 어떻게 처리할지 고민하게 되었고, HTTP , HTTP2 뿐만 아니라 gRPC, Kafka, MongoDB 등 여러 Protocol 간의 통신을 어떻게 효율적으로 처리할지, 분산 추적 및 헤더 등에 대한 관리는 어떻게 할지 고민하게 되었다. 이에 따라 L7 기능을 갖춘 Proxy의 필요성이 느껴지게 되었고 그 중 가장 널리 사용되고 있는 Envoy에 대해서 간단하게 설명하도록 하겠다. - L7과 L4는 아래의 차이점이 존재하며, 당연히 L4 레벨의 통신이 좀 더 빠를 수 밖에 없다. 하지만 좀 더 많은 정보를 기반으로 프록시 및 라우팅을 설정할 수 있는 것이 L7 계층이다. ..
[Terraform] Atlantis를 통한 Git 협업 #1 - Demo Git에서 Terraform으로 협업하기 위해서는 다양한 고려 사항이 필요하다. Terraform을 혼자 테스트를 하거나 소규모 인원이서 관리하는 경우 큰 무리는 없지만 다수가 Terraform 파일을 관리한다면 협업에 대한 고민을 하게 될 수 있음 실제 Production 리소스에 영향이 있기 때문에 함부로 Apply가 수행되어선 안되며 Local에서 Apply를 수행하는 방향보다는 Git에서 PR 진행 후 Plan 결과 혹은 개발계 수행 결과 문제 없을 경우 Apply가 수행되는 방향이 좋을 것을 보인다. 이러한 상황에서 고려해볼만한 Terraform Runner가 Atlantis이다. Atlantis는 Terraform Pull Request를 자동화해주는 오픈소스 솔루션으로, Github 혹은 G..
[Terraform] terraform state mv 명령어 알아보기 및 활용법 Terraform은 tfstate 파일 기반으로 동작한다. 1. main.tf에 정의된 인프라스트럭쳐 2. tfstate 파일에 정의된 인프라스트럭쳐 위 2가지를 대조한 뒤, terraform plan 명령어를 수행하면 tfstate에 정의된 인프라스트럭쳐와 main.tf에 정의한 인프라스트럭쳐를 맞추려고 한다. 예를 들어, 예전에 Terraform 코드로 생성한 IAM User가 아래와 같이 존재한다고 가정해보자. resource "aws_iam_user" "user1" { name = "user1" } resource "aws_iam_user" "user2" { name = "user2" } IAM User : user1, user2가 존재할 것이다. 이 상태에서 user1, user2를 유지하되 c..
[Ansible] 기본 개념 정리 Ansible은 Python Module 및 SSH를 사용하여 원격 호스트에 명령을 수행할 수 있도록 해주는 CM(Configuration Management) 도구이다. 별도의 Agent를 설치하지 않아도 되며 단순히 SSH 접속이 가능하면 편리하게 사용할 수 있다. (내부적으로 Python을 사용하게 되는데 대부분의 Linux에는 Python이 기본적으로 설치가 되어 있다.) 나는 Ansible을 사용하여 원격 Node에 명령어를 수행하기 전에 다음의 과정을 거친다. 1. ansible.cfg 파일 설정 및 확인 2. inventory 파일 생성 및 Group 변수, Host 변수 등 설정 3. ansible-inventory 명령어를 사용하여 정상적으로 호스트 및 그룹 등록이 완료되었는지 확인 4...

반응형