멀티 클라우드(Multi-Cloud)는 문자를 그대로 해석했을 때, 여러 개의 클라우드 컴퓨팅 환경을 뜻한다. 보통 이런 경우, 대부분 규모가 큰 업체를 떠올리게 된다. 멀티 클라우드 전략이라는 말을 들었을 때 아마도 아마존(Amazon), 구글(Google), 마이크로소프트(Microsoft)를 떠올렸을 것이다. 레드햇(Redhat), 오라클(Oracle) 까지 생각해보면 클라우드 제공 업체들은 많다. 그러나 멀티 클라우드가 이러한 여러 업체를 두 개 이상 사용하는 것만을 의미하지는 않는다. 많이 이상하게 들리겠지만 AWS(Amazon Web Services)에서 EC2 인스턴스와 ECS 컨테이너(Container)를 복합적으로 사용하는 것도 멀티 클라우드라고 볼 수 있다. 클라우드라는 것은 서비스를 ..
지금은, 할야드(Halyard)를 이용해서 쉽고 간편하게, 사용자인증, 데크 및 게이트 노출을 처리하고 있다. 지금은 아래 설정 방법을 직접 할 필요는 없다. 할야드를 사용하면 알아서 적절한 위치에 관련 설정을 잘 적용해 주기 때문이다. 다음은 OAuth2 인증을 적용하는 예제를 보여준다. 공식적으로는 구글(Google), 깃헙(Github), 애저(Azure)를 지원하고 있지만, 다른 사용자정보 제공자(IdP, Identity Provider)도 사용할 수 있다. 그럴 경우에는 PROVIDER 부분에 OTHER라고 입력한다. 그 외 나머지 정보는 프로바이더에서 제공하는 URL을 알맞게 연결해주면 된다. CLIENT_ID=myClientId CLIENT_SECRET=myClientSecret PROVID..
스핀에커(Spinnaker)에서 AWS ECR(Elastic Container Registry)를 연결하기 위해서는 주기적으로 인증정보를 갱신해 주어야 하는 불편함이 있었다. 보안을 위해서 그렇게 해야 하는 것은 당연했지만, 사이드카(Side-car) 어플리케이션을 추가로 설치해서 주기적으로 실행해 주도록 처리하는 것은 번거로운 일이었다. 그러다가 2018년 9월 말에 AWS에서 이 문제를 해결하기 시작했다. 그래서 특별한 조치를 추가하지 않더라도 AWS CLI와 IAM 권한을 이용하여 ECR에 접근할 수 있도록 개선하였다. 1.11.3 이상에서 동작한다. 그 이하 버전에서는 오류가 발생한다.hal config provider docker-registry account add ecr-demo \ --ad..
스핀에커(Spinnaker)의 핵심 기능은 카나리 배포(Canary Deployment), 블루/그린 배포(Blue/Green Deployment)를 쉽게 지원한다는 것이다. 스핀에커에는 오르카(Orca)라는 마이크로서비스(Microservice)가 있으며, 배포를 포함한 전체 파이프라인을 관리하는 오케스트레이션(Orchestration) 기능을 담당한다. 그래서 흔히 지속적 전달(Continuous Delivery)도구를 이야기하면서 여전히 젠킨스(Jenkins)나 GitLab CI, Circle CI를 이야기한다. 그러나 그 어느 것도 오르카만큼 최신 배포 기술을 잘 지원하지 못한다. 만약 VM(Virtual Machine)환경 기반으로 블루/그린 배포를 하고 싶은 경우, 스핀에커를 제외한 다른 도구..
스핀에커(Spinnaker)의 권한관리를 위해 피아트 서비스(Fiat Service)가 추가되었다. 스핀에커가 처음에 공개되었을 때는 사용자 인증과 권환관리 기능이 없었다. 그러더니 게이트(Gate)에 OAuth2를 이용한 인증 기능이 추가되었고, 다음으로 피아트가 생기면서 GitHub, LDAP, SAML등의 기술을 활용하여 권한관리를 할 수 있는 기능이 추가되었다. 역할 제공자(Role Providers) 피아트는 역할(Role)을 직접 다루지 않는다. 대신 조직(Organization) 또는 그룹(Group)의 정보를 제공하는 외부 Solution과 연동하여 이 문제를 해결하다. 다시말해서 관리자는 역할 제공자(Role Provider) 중 한가지를 이용하여 조직과 그 속에 속한 사용자를 직접 관리..
스핀에커를 생성하고 관리할 수 있는 테라폼 모듈 프로젝트 저장소(https://github.com/Young-ook/terraform-aws-spinnaker) 에서 구체적인 내용을 확인할 수 있다. 스핀에커 테라폼 모듈 외에도 AWS 계정을 스핀에커에서 관리할 수 있도록 등록하는 방법, Amazon EKS 클러스터를 생성하고 스핀에커에서 관리할 수 있도록 등록하는 방법, 카오스 엔지니어링을 위한 카오스 몽키(Chaos Monkey) 연동방법 등 스핀에커 모범 사례 예제가 제공된다. Netflix 에서 2016년에 꽤 발칙한 소프트웨어(Software)를 공개했다. 스핀에커(Spinnaker, https://www.spinnaker.io) 라는 도구인데, 공개되자마자 많은 사람들의 관심을 받았다. 스핀에..
스핀에커(Spinnaker)에서는 파이프라인(Pipeline)을 코드(Code)로 관리할 수 있다. 그래픽 사용자환경에서 파이프라인을 편집할 수도 있고, 문서편집기를 이용해서 파이프라인을 편집한 후 바로 적용할 수도 있다. 스핀에커에서 사용하는 파이프라인 코드는 JSON으로 되어 있다. 스핀에커는 파이프라인을 변경하거나 편집하면 S3 또는 GCS에 보관한다. 만약 스핀에커가 사용하는 버켓(Bucket)에 버전기능이 켜져 있다면, 특별한 설정을 하지 않더라도 아래 그림과 같이 파이프라인 변경 이력을 확인할 수 있다. 아래 화면을 보기 위해서는 파이프라인 편집화면에서 파이프라인 액션(Pipeline Actions) 단추를 누르면 된다. 그러면 맨 아래에 파이프라인 변경내역을 볼 수 있는 단추가 생기는 데 이..
AWS를 사용하다보면 API 제한에 걸릴 수 있다. AWS의 서비스 품질을 안정화하기 위한 조치 중 하나이다. 스핀에커(Spinnaker)에서는 AWS에 생성한 자원의 상태를 알기 위해서 주기적으로 AWS API(Application Programming Interface)를 호출하는데, AWS 자원이 많아 지면 호출 수는 꽤 많아진다. 그렇게 되면 어느 순간 AWS에서 지정한 제한선에 도달하게 된다. 그러면 일부 인스턴스들의(Instances)의 현재상태를 알 수 없게된다. 이러한 문제를 해결하기 위해서 AWS의 제한을 늘려달라고 요청할 수 있다. 하지만 AWS에서 항상 높여 주는 것은 아니다. 여유가 되는 범위안에서 높여 줄 수 있다. 그래서 다른 한 편으로는 스핀에커의 설정을 변경하여 AWS를 호출..
스핀에커(Spinnaker)는 버전(Version)관리를 위해 BOM(Bill of Materials)을 적용하였다. BOM은 전통적인 제조사에서 주로 사용하는 말이며, 소프트웨어 쪽에서는 그렇게 친숙한 단어는 아니다. 삼성전자와 같은 제조사는 여러 협력업체에 발주한 부품을 조립하여 최종 제품을 생산한다. 예를들어, 휴대전화를 만들경우 화면은 어느 부품을 사용하고 배터리는 어느 부품을 조합에서 생산할 지 명세하는 것이다. 이럴 경우, 전체 그림을 그리는 설계도가 필요한데, 이 것을 BOM이라고 부른다. 스핀에커에 BOM을 적용한 후로는 각 마이크로서비스(Microservices) 단위의 버전을 따로 말하지 않고 큰 틀에서 지정한 단일 버전을 발표하고 있다. 그렇다고해서 기존에 지켜오던 버전이 사라진 것은..