배포 전략 비즈니스 환경 변화에 탄력있게 대응하기 위해 많은 기업들이 Agile, DevOps, MSA 등 다양한 기반 기술을 도입하고 있지만, 실상은 많은 시행착오를 겪고 있는 것도 사실이다. 서비스는 사용자 경험 향상을 위해 하루에도 수번에서 수십번 버전을 업그레이드하거나, 버그를 픽스하는 등 여러 경우에서 변화가 발생할 수 있다. 이때 사용자가 느끼지 못할 정도로 서비스의 중단 없이 배포를 진행해야 하는 경우가 있고, 때로는 다운타임을 가져가야 할 경우도 있다. 서비스를 제공하는 제공자 입장에서 어플리케이션의 새 버전을 성공적으로 릴리즈하기 위해 어플리케이션 특성과 리소스, 비용 등을 종합적으로 고려하여 다양한 배포 전략을 고민해야 한다. 각각의 배포 방식은 특징을 갖고 있고, 적합한 환경과 프로젝..
DR 개요 Public Cloud와 Hybrid Cloud의 확대는 최근 IT 판도를 돌려놓고 있다. 수 많은 기업들이 차세대 프로젝트와 함께 어플리케이션 현대화(Application Modernization)를 추구하고 있고, 이를 실현하기 위해 Cloud Native으로 전환을 시도하고 있다. Cloud Native Application은 확장성, 민첩성, 복원성, 유연성, 장애복구성 등을 제공하는 분산 트랜잭션/분산 컴퓨팅 환경에 맞게 어플리케이션을 설계 및 개발하는 방식을 의미하며, 이는 Legacy System과는 다른 요소들을 포함하고 있다. 그 중 하나가 바로 이번 포스팅의 주제인 클라우드 DR의 변화이다. Public Cloud는 DR이라는 개념을 Multi AZ(Availiable Zon..
개요 이번 포스팅은 AWS Code Series 파이프라인 구성 과정에 대해 알아보도록 하자. ① AWS EKS 환경에 MariaDB 구축 ② AWS Code Series 파이프라인 구축 AWS Code Series 파이프라인 구축 AWSCLI & AWS CodeCommit Eclipse AWS Toolkit & AWS CodeCommit 주요 Configuration File 확인 AWS CodeBuild AWS CodePipeline AWSCLI & AWS CodeCommit 먼저 AWS CodeCommit과의 통합을 위해 Windows 환경에 AWS Credential을 연결해야 한다. AWS Credential을 연결하는 방법은 Eclipse에서 직접 연결하는 방법과 Windows CLI에서 gi..
개요 이번 포스팅에서는 AWS EKS 환경에 배포되어 있는 어플리케이션과 연동하기 위해 MariaDB를 Kubernetes에 배포해 보자. ① AWS EKS 환경에 MariaDB 구축 ② AWS Code Series 파이프라인 구축 AWS EKS 환경에 MariaDB 구축 Amazon EFS CIS 드라이버 배포 및 테스트 Amazon EFS CIS 드라이버 설치 Amazon EFS CIS 드라이버 배포 Amazon EFS CSI 드라이버 테스트 AWS EKS에 MariaDB 설치 MariaDB 테스트 Amazon EFS CSI 드라이버 배포 및 테스트 CSI 드라이버의 서비스 계정이 AWS API를 호출할 수 있도록 허용하는 IAM ROLE을 생성한다. 1. GitHub에서 IAM 정책 문서 다운로드 ..
개요 클라우드 환경에서의 가용성 테스트는 레가시 환경과는 다르다. 직접 테스트를 수행하면서 알게된 Lessons learned을 통해 Kubernetes Node Failover에 대한 가용성 검증 과정에 대해 알아보자. Kubernetes가 관리하는 클러스터 내의 노드 장애 발생 시 어떻게 빠르게 인지하고 대응할 것인지 과정에 대해 검증해 보고, 최적 구성에 대해 알아보자. Kubernetes 노드 가용성 관련 구성 1) kubelet node-status-update-frequency : default 10s (api-server에 노드의 상태를 게시하는 주기) / recommand 4s node-status-report-frequency : default 5m (node-status-update-f..
개요 Pod는 Kubernetes의 최소 배포 단위이다. 어플리케이션은 Container로 구성되지만, Kubernetes에 배포하여 서비스하기 위해서는 Pod의 일부로 동작해야 한다. Kubernetes Object는 다음과 같은 종속성을 갖고 동작한다. Pod는 컨테이너 Spec을 포함하여 선언되며, 하나 이상의 컨테이너를 선언할 수 있다. 이때 각 컨테이너는 독립된 어플리케이션으로 구성되며, 독립된 Process로 기동된다. 이로 인해 가능하면 Pod 당 1개의 Container 구성을 권고하지만, 때로 Multi Container 구성이 필요한 경우가 있다. 지금부터 Multi Container를 설계하는 프로젝트에서 고려해야 할 사항에 대해 알아보자. Multi Container 설계 고려 사항..
개요 Cloud 환경은 복잡한 인프라로 구성되어 있어 그 일관성을 항상 유지하는 것은 어려운 일이다. 특히 확장성있게 증가하는 인프라 환경을 사람의 힘으로 관리하는 것은 민첩성과 안정성을 저해하는 요소가 된다. 이에 인프라를 코드로 관리하는 '코드형 인프라(IaC)'가 등장하게 되었고, 이를 통해 일관된 클라우드 인프라를 관리할 수 있게 되었다. 대표적인 IaC로는 Terraform이 있으며, AWS에는 CloudFormation이 있다. 이번 포스팅부터 Terraform 활용에 대해서는 별도 목차를 구분하여 작성하고자 한다. 그 첫 시간으로 Terraform을 사용하여 EC2 인스턴스를 생성하는 과정에 대해 알아보도록 하자. Terraform 설치 아래와 같이 yum package manager를 통해..
개요 Kubernetes는 수 많은 객체들의 집합으로 구성되어 있으며, 이는 확장성 가능하게 구성되어 클러스터 내 장애 상황을 식별하는 것은 굉장히 번거로운 일이라고 볼 수 있다. 이로 인해 Kubernetes 클러스터 내의 다양한 각도에서 모니터링할 수 있는 환경을 구성하는 것은 장애 발생으로 인한 가동 중지 시간을 줄이거나 피할 수 있다. 대표적인 장애 상황은 다음을 예로 들 수 있다. 노드 문제 : 실패 상태의 Docker 데몬/Kubelet, CNI 실패로 인한 할당되지 않은 IP 주소 등 포드 문제 : Health Check 실패, Running 상태가 아닌 포드 등 네임스페이스 문제 : Pod를 배치할 수 없는 Namespace DNS 확인 문제 : CoreDNS lookup 실패 네트워크 문..
개요 Kubernetes가 대세로 자리 잡은 이후 다양한 3rd Party 솔루션과의 연동이슈는 끊임없이 발생하고 있다. Container Orchestrator(CO)와의 단일화된 인터페이스를 제공하기 위해 CRI(Container Runtime Interface), CNI(Container Network Interface), CSI(Container Storage Interface)가 등장하고 발전해 오고 있다. CSI의 등장이전에는 특정 볼륨에 대한 연결 방식을 Kubernetes가 제공하는 방식으로 구현되었다. 하지만 새로운 볼륨 플러그인이 지속적으로 추가되고, 특히 특정 볼륨을 제공하는 솔루션의 버전 변화에 일일이 대응하기에는 어려움이 있었다. 또한 볼륨 스토리지와의 연결을 위해 SDK 코드가 ..
$HOME/.bashrc # .bashrc # User specific aliases and functions alias rm='rm -i' alias cp='cp -i' alias mv='mv -i' # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi source ~/eks/kube-ps1/kube-ps1.sh PS1='[\u@\h \W $(kube_ps1)]\$ ' KUBE_PS1_SYMBOL_ENABLE=false KUBE_PS1_SYMBOL_COLOR=null KUBE_PS1_CTX_COLOR=null KUBE_PS1_NS_COLOR=null source /usr/share/bash-completion/bash_comp..
- Total
- Today
- Yesterday
- apache
- k8s
- webtob
- Docker
- 아키텍처
- SA
- aa
- JEUS7
- 마이크로서비스 아키텍처
- MSA
- Da
- node.js
- kubernetes
- OpenStack
- aws
- 쿠버네티스
- TA
- nodejs
- JEUS6
- jeus
- 오픈스택
- JBoss
- openstack tenant
- API Gateway
- Architecture
- git
- SWA
- openstack token issue
- 마이크로서비스
- wildfly
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |