Rancher는 오픈소스 Kubernetes 멀티 클러스터 오케스트레이션 플랫폼입니다. 단 두 가지 과정만으로 사용 가능한데요, 첫 번째로 서버를 준비하고 Docker를 설치해둡니다. 서버는 우분투 16.04, 18.04를 권장합니다. 혹시 다른 OS를 사용 중이라면 여기를 참고하도록 합니다. 그리고 두 번째 과정은 아래와 같이 docker 명령어를 사용해서 rancher를 실행시킵니다. docker run -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher 실행하면 이미지를 다운로드 받고 rancher가 실행됩니다. 이제 localhost로 접속해보면 다음과 유사한 로그인 화면을 볼 수 있습니다. 최초 접근 시에는 계정을 생성하는 과정부터 ..
GCP를 사용하면서 가장 유용한 것 중에 하나가 GCP의 모든 기능을 터미널에서 사용할 수 있게 해주는 gcloud SDK인데요, 알리바바 클라우드에도 이러한 SDK가 존재합니다. aliyun이 바로 그겁니다. 이번 글에서는 aliyun을 빠르고 쉽게 설치하는 과정을 알아보도록 하겠습니다. 일단 MacOS 기준으로 아래와 같이 brew 명령어를 통해 설치가 가능합니다. AWS, GCP보다 이 부분은 굉장히 잘 되어 있네요. brew install aliyun-cli brew를 사용하는 게 아니라면 파일을 GitHub에서 직접 다운로드해서 사용할 수도 있습니다. 여기 링크에 접속해서 보면 Linux, MacOS, Windows 버전의 실행파일을 제공해줍니다. 파일을 다운로드 받으면 Linux, MacOS ..
알리바바 클라우드에 등록되어 있는 payment method( 카드 등 )는 삭제가 안됩니다. 보통 다른 클라우드처럼 결제계좌만 삭제할 수 있는 방법은 없고 account 삭제만 존재합니다. 이는 미결제 금액이 존재할 수 있기 때문인데요. 사실 계정을 삭제하려고 해도 이미 사용 중인 리소스가 있다면 그런 부분들을 해결해야 정상적으로 계정 삭제가 완료되니 참고하시면 되겠습니다. 계정 삭제는 보류하고 일단 결제계좌만 잠시 멈춰놓고 싶었는데 그럴수 없어서 극단적으로 탈퇴를 해야만 했네요. 참고 : https://www.alibabacloud.com/forum/read-1357
국내에서 유명한 메이저급 퍼블릭 클라우드에는 amazon에서 서비스하는 AWS, microsoft의 azure, 그리고 Google의 GCP 정도가 있겠는데요, 그래서 클라우드를 고민하고 이전하는 대부분 기업들의 선택지는 위 세 곳 중에 하나가 될 겁니다. 하지만 중국에 서비스하려면 중국의 네트워크 특수성 때문에 결국 알리바바 클라우드를 고려하지 않을 수가 없겠습니다. 우리는 언제 어떤 상황에서 알리바바 클라우드를 사용하게 될지 알 수 없는데요, 이번 글에서는 알리바바 클라우드를 가입하는 과정에 대해서 간단하게 알아보도록 합니다. 요약하면 회원가입 - 개인정보 입력 - 계좌 연동 세 단계로 이루어집니다. 그럼 시작해봅시다. 우선 알리바바 클라우드 페이지로 접속을 합니다. 아래와 같은 화면이 보일텐데 우측..
Google Cloud를 사용하다 보면 배포나 컴퓨팅 제어 등 여러 가지 이유로 터미널에서 gcloud SDK를 사용하게 됩니다. gcloud에 모든 명령어는 프로젝트 단위로 연결이 되기 때문에 개발/스테이징/상용과 같이 여러 개의 프로젝트를 동시에 사용하는 경우에는 터미널에서 프로젝트를 전환하며 명령어를 사용해야 하는데요, 이번 글에서는 새로운 프로젝트를 시작할 때 그 환경을 gcloud에 연결하는 방법과 전환에 대해서 알아보겠습니다. 일단 제 GCP 계정 안에는 다음과 같이 두 개의 프로젝트가 이미 등록되어 있는데 신규 프로젝트를 생성하는 부분부터 살펴보겠습니다. 우측 상단에 NEW PROJECT 버튼을 누르고 프로젝트 이름을 blog-project로 입력한 이후에 CREATE 버튼을 통해 신규 프로..
이번에는 GCLB( Google Cloud Load Balancer )에 대해서 살펴보는 시간을 갖겠습니다. 일반적으로 LB는 서비스로 유입되는 부하를 분산시키는 역할을 수행합니다. AWS, Google, Azure 퍼블릭 클라우드 3사 모두 해당 기능을 제공하지만 가격 등의 이유로 HAProxy 등을 가상 머신에 설치해서 LB 역할로 사용하기도 합니다. 하지만 이 경우에는 머신의 정해진 스펙 때문에 급격하게 증가하는 트래픽에 빠른 대응이 어렵다는 단점이 있겠습니다. 또한 조직의 누군가가 서버를 관리해야 하는 만큼 고가용성 보장이 어렵습니다. LB는 프러덕트 최전방에 있는 만큼 절대적으로 고가용성이 보장되어야 하는데요, 이런 서비스일수록 클라우드에서는 Managed service, 여기서는 GCLB를 사..
이번에는 GCP( Google Cloud Platporm )의 IaaS를 담당하는 Compute Engine의 인스턴스, 인스턴스 그룹, 인스턴스 템플릿, 이미지의 상관관계에 대해 알아보도록 하겠습니다. 이 과정이 끝나고 나면 GCLB( Google Cloud Load Balancer )까지 자연스럽게 연결이 될 겁니다. 하지만 LB에 대한 건 다음 글에서 살펴보도록 하고 이번 글은 인스턴스에 초점을 맞춰보겠습니다. # 미리 보기 아래 이미지를 떠올리면서 글을 읽으시면 도움이 됩니다. 결국 이미지로 인스턴스 템플릿을 만들고, 템플릿으로 그룹을 생성해서 Auto Scaling시에 사용한다는 건데 여기 인스턴스를 Source로 다시 이미지를 생성할 수 있다는 것이 골자입니다. 그럼 시작합니다. # 인스턴스 ..
aws cli를 사용하기 위해서 IAM( Identity and Access Management )에 사용자를 등록하고 액세스 키를 생성하는 과정에 대해서 알아보도록 합니다. 기본적으로 aws cli는 우리가 console.aws.amazone.com 로 브라우저에 접속해서 할 수 있는 대부분의 액션을 터미널에서 사용할 수 있게 해주는 일종의 sdk라고 생각해도 좋을 듯합니다. 우선 AWS에 접속해서 아래와 같이 IAM 페이지로 접근하도록 합시다. 좌측 메뉴중에 사용자를 선택하도록 합니다. 아래와 같이 사용자를 추가하거나 삭제할 수 있고 등록된 사용자가 있다면 리스트 형식으로 보여주는 UI가 제공됩니다. 여기서 사용자 추가를 선택하도록 합니다. 이제 사용자 정보를 입력하는 단계를 거치게 됩니다. 구분할 ..
GCP( Google Cloud Platform )에는 두 가지 타입의 인스턴스 그룹이 있습니다. 이번 글에서는 아래 두 가지 인스턴스 그룹에 대해서 이야기해보도록 하겠습니다. - New managed instances group ( MIG ) - New unmanaged instances group GCP 콘솔에서 인스턴스 그룹 메뉴의 위치는 Compute Engine에 VM instances 바로 밑에 있습니다. 여기서 Create instance group를 선택하면 아래와 같이 인스턴스 그룹을 생성하는 화면이 나옵니다. 인스턴스 그룹이 필요한 이유는 AWS와 마찬가지로 이종의 인스턴스 간 부하분산이 주된 이유가 될 텐데요. 일단 MIG( Managed Instances Group )에 대해서 살펴..
AMI( amazon machine image )를 CLI에서 아래와 같이 export 하려고 할 때 발생되는 에러입니다. 커맨드에 대한 공식문서는 여기에서 확인 할 수 있습니다. $ aws ec2 export-image --image-id ami-07512400xxxxx --disk-image-format VMDK \ --s3-export-location S3Bucket=my-export-bucket,S3Prefix=exports/ 에러내용 An error occurred (InvalidParameter) when calling the ExportImage operation: \ The service role vmimport provided does not exist or does not have su..
이전 편에서 데이터를 Google Cloud의 BigQuery에 담는 것 까지 진행을 했다. 사실 빅쿼리가 오버스펙이기는 하지만 쿼리 감각이 5년 전에서 멈춰있었기 때문에 이쯤에 개인 프로젝트로 쿼리 감을 되찾자는 것도 있었고, 빅쿼리를 통해 연동되는 GCP( Google Cloud Platform )의 여러 가지 부가적인 기능을 공부하자는 목적도 있었다. 아무튼, 지난시간까지 데이터를 적재하는 부분은 어느 정도 끝났기 때문에 데이터 모양새는 꽤 나쁘지 않게 쌓이고 있다. 현재는 대략 한 달치 이상의 데이터가 쌓이기를 기다리고 있는 시기인데 데이터가 충분히 쌓였을 때 다음 계획에 대해서 이것저것 생각해보고 있다. 사실 프로젝트의 목적은 "용인-> 강남 버스 출근 앉아가기"지만 이미 적은 데이터로도 앉을 ..
인터넷에 많고 많은 IntelliJ 단축키 글이 있지만 역시 하나씩 직접 사용하면서 정리해야 내것이 되는 듯 합니다. IntelliJ 를 사용하면서 익혀가고 있는 단축키를 아래와 같이 정리합니다. MacOS에서 Keymap은 Default for macOS를 기준으로 합니다. 아래에서 설명하는 기호는 다음과 같은 의미를 갖습니다. ⌘ : command ⌥ : option ⇧ : shift ⌃ : control 볼드체로 작성되어 있는 단축키는 인텔리제이로 개발하려고 할 때 제일 먼저 알아야 하는, 혹은 최소한으로 숙지하면 좋은 단축키 입니다. # Navigate # Edit - 계속 업데이트 진행 - 혹시 공유해주고 싶은 꿀 단축키는 답글 주시면 감사하겠습니다. :-)
이전 편에서 놓치고 있던 세 가지 부분에 대해서 이야기를 했었는데 데이터 중간점검을 하는 도중 이상한 점이 발견되었다. 특정 버스의 데이터가 제대로 수집되고 있지 않다던지, 아침 시간대에 대충 알고 있는 버스 빈 자리 숫자와 수집된 데이터에 확연한 오차가 발생하고 있었던 것이다. 다시 유심히 경기버스의 데이터를 살펴보니 수집되는 데이터에 index가 고정이 아니라는 사실을 알 수 있었다. 예를 들어 보면 수집되는 데이터를 나타내는 busArrivalInfo 배열에는 32개의 버스 데이터 정보가 있는데 이 배열 안에 내게 필요한 버스 정보들이 있는 위치가 가변이라는 것이다. 예를 들어 A라는 버스가 이른 아침에는 6번 index에 있었지만 어느 시간이 되면 7번 index로 바뀌어 있는 것이다. 데이터 안..
서비스에 도커를 도입하는 배경을 보면 MSA( Micro Service Architecture )로 부터 시작하기 때문에 사실 Container의 크기가 큰 것은 정상적인 경우가 아닙니다. 컨테이너에는 모듈이나 기능 단위를 동작하게 하는 최소한의 패키지만 포함되는 게 일반적인데 깡통 우분투를 만들어서 그 안에 온갖 서비스를 다 말아 넣는 경우는 어떤 경우가 있을까요? 쉽게 생각하면 MSA 이전의 모놀리식 아키텍처( Monolithic Architecture )를 이야기할 수 있겠습니다. 도커는 개발환경과 프러덕트 환경의 간극을 줄이는데 크게 일조하고 있는데 이게 MSA로 정교하게 나뉘어져 있는 서비스에만 국한된 이야기가 아닙니다. 모놀리식 서비스라고 하더라도 개발과 프러덕트 환경에 간극을 없게 할 수 있..
이번에는 프로젝트를 진행하면서 놓친 부분을 언급하고 끝내려고 한다. 프로젝트를 시작한 지 이제 일주일 정도 되었고 데이터는 쌓이고 있지만 매우 중요한 부분이기 때문에 누군가 나와 비슷한 계획으로 움직이려고 한다면 미리 생각해야 할 부분일 것이다. 첫 번째로 이야기하는 건 타깃 정류소의 위치다. 이 프로젝트의 핵심은 내가 타고자 하는 정류소의 데이터를 수집하고 수집된 데이터 안에서 버스의 빈자리를 확인하는 데 있다. 예를 들어 특정 시간대에 빈자리가 항상 5자리 있다고 생각해보면 나는 그 시간대에 버스를 타기 위해 움직이면 된다는 이야기다. 여기서 매우 중요한 부분이 간과되고 있는데 바로 그 정류소에서 대기하고 있는 사람의 수이다. 이미 여섯명이 기다리고 있다면 나는 그 정류소에 제때 도착해봐야 앉을 수 ..
요즘은 사이드 프로젝트 하나를 하더라도 기획자와 개발자 몇 명이 모여서 팀을 이루는 경우를 많이 보는데요, 프론트, 백엔드, 거기에 데이터 분석까지 하려고 하면 역시 클라우드를 사용하는 것만큼 유리한 게 없겠죠? 이번에는 GCP( Google Cloud Platform )에 사이드 프로젝트 팀원들을 초대하고 함께 개발할 수 있는 환경을 꾸리는 방법에 대해서 알아봅니다. 혹시 GCP에 가입되어 있지 않다면 여기 링크를 참고하셔서 가입하시면 되겠습니다. 우선 GCP에 접속해서 팀원들과 함께 진행할 프로젝트를 생성해야 하는데 아래 그림처럼 화면 상단에 프로젝트를 선택합니다. 버튼을 클릭하면 아래와 같이 프로젝트를 변경하거나 새 프로젝트를 생성 할 수 있는 팝업이 출력됩니다. GCP는 폴더라는 개념 하위에 프로..
(용인) 집 근처에서 아침에 강남가는 버스를 타면 시간대에 따라서 앉을 수 있는 확률이 많이 갈린다. 경험으로 이야기하자면, - 06시 30분 전후 : 대략 10번에 9번은 앉을 수 있음 (2층버스) - 08시 30분 전후 : 대략 10번에 8~9번 앉을 수 있음 (2층버스) - 09-10시 사이 : 앉을 수 있는 확률 극악 (1층버스) 쉽게 납득하기 어렵다. 아무래도 학생들이나 출근하는 사람수는 08시 30분쯤이 더 많을 것 같은데 오히려 09시-10시 사이가 버스에 앉기 훨-씬 어렵다. 그런데 특이한 점은 09시-10시 사이에는 2층 버스가 덜 운행되는 느낌. 버스회사에 문의해보니 08시 20분까지만 모든 배차가 2층버스로 이뤄지고 그 이후로는 2층버스의 비율이 점차 줄어든단다. 다시말해 타는 사람도..
Cloud SDK는 구글 클라우드 콘솔(웹 브라우저 화면)에서 행하는 거의 모든것들을 터미널에서 가능하게 해줍니다. 어쩌면 110% 이상 가능할지도 모르겠네요. 아직 콘솔에 붙지 않은 일부 알파 버전은 터미널에만 존재하는 경우도 있으니까요. 더욱이 GUI 버그도 무시할 수 없고, 스크립트로 파이프라인을 구성하는 등의 무언가를 하기 위해서는 SDK는 분명 필수 입니다. 특히 인스턴스에 SSH 접속 할 때는 굉장히 편합니다. 물론 아래처럼 콘솔에서 브라우저를 통해 접속도 가능하지만 다른건 둘째치고 반응속도가 너무 느려서 타이핑하는데 다소 불편함을 감수해야 합니다. 이런 불편함은 SDK를 통해 해결 가능한데요, SDK를 설치하고 인증과정부터 SSH접속까지 알아보도록 하겠습니다. SDK설치 과정은 여기 링크를 ..
Google I/O에서 소개된 TensorFlow의 새로운 내용이 잘 정리된 글을 발견하고 번역해봤습니다. 아래 글의 원본은 TensorFlow @ Google I/O'19 Recap 에서 확인 하실 수 있습니다. 혹시 번역에 문제가 있거나 기타 문의가 있다면 말씀해주세요. :-) Google I/O'19가 끝났습니다! 5월 7-9일에 I/O에서 AI와 머신러닝 세션이 13개 다뤄졌는데요, TensorFlow는 2.0, AI for Mobile과 IoT 디바이스, TensorFlow용 Swift, TensorFlow Extended(TFX), TensorFlow.js, TensorFlow Graphics 등의 세션에서 만나 보실 수 있습니다. 이번 글에는 모든 세션 리스트와 링크가 담겨있습니다. 녹화된 ..
서비스를 운영하면서 적당한 시점이 되면 인스턴스를 AMI( amazon machine image )를 생성하고 그때부터는 해당 이미지를 흔히 이야기하는 오토스케일링, 즉 인스턴스 확장으로 사용하게 됩니다. AWS의 경우에는 대부분의 기능들이 리전 단위로 묶여있는데 AMI도 예외는 아닙니다. 글로벌 서비스를 준비하면서 생성한 AMI를 다른 리전에서 사용할 수 없다면 큰 낭패겠죠? 해당 이미지가 왜 리전에 종속되는지 알 수는 없지만 글로벌 배포를 위해서는 AMI를 각 리전에 복사해서 사용해야 합니다. 리전에 종속된다는 사실을 알고 다른 리전으로 넘기기 위해서 AMI를 Export 하고 Import 해야 하는지까지 생각해봤었는데요, 다행히 복사 기능이 제공되어 간단하게 글로벌로 사용이 가능합니다. 우선 아래와..
- Total
- Today
- Yesterday