2019년 11월 GA 된 Cloud Run에 대한 이야기를 해볼까 합니다. GCP에는 이미 서버리스에 한축을 담당하는 Cloud Functions가 GA 되었음에도 여전히 부족한 게 사실입니다. 자체적으로는 꽤 쓸만할지 모르겠으나 타사의 서버리스를 사용해본 유저라면 여러 가지로 불편한 게 사실이죠. 더욱이 앞질러가고 있는 서비스(이를테면 AWS)를 흉내 내는 듯한 모양새는 어쩔 수 없는 후발주자의 모습이었습니다. - 관련 글 : Cloud Functions, 이래서 베타다 그러던중 Cloud Next 2019에서 Cloud Run이 소개되었고 서버리스의 새로운 장을 여는 느낌이었습니다. 컨테이너 기반으로 동작하기 때문에 이식성이 좋고 기존에 도커와 같은 툴에 익숙하다면 진입장벽이 한없이 낮습니다. Cl..
! 앱피움 소개, 설치 방법을 가이드하는 글이 아닌, 조직에 도입하면서 겪은 경험을 일기처럼 써 내려간 글입니다. 글 중간중간 가볍게 적은 내용에서 인사이트를 얻으실 수 있기를 바랍니다. 앱 테스트 자동화를 알아보다 보면 엷은 물줄기가 호수로 모이듯이 결국 앱피움(appium)이라는 오픈소스 테스트 자동화 프레임워크로 귀결된다. 이번에 QA 조직에서 테스트 자동화를 도입할 수 있도록 가까운 곳에서 지원하며 익힌 내용을 두서없이 기록해본다. 이미 인터넷에는 앱피움의 소개 글이나 설치 방법들을 어렵지 않게 찾아볼 수 있는데 정작 이것으로 무엇이 가능하고, 어떻게 활용되는지에 대한 글은 부족해 보인다. 아니, 어쩌면 이미 얕게 충분히 살펴본 사람들의 글이라서 지식의 저주[1]에 빠져 내용 전달이 부실하게 느껴..
패키지를 다운로드 받아서 npm install 시켰는데 아래와 같은 오류가 발생했다. $ npm install > fsevents@1.2.11 install /Users/jybaek/work/foo/client/node_modules/fsevents > node-gyp rebuild xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer direct..
Paypal 결제를 연동할 때 복수의 상품(장바구니)을 구매하는 경우에는 다음과 같이 item_list를 사용하면 된다. 아래 소스코드는 페이팔에서 제공하는 샘플 예제이다. curl -v -X POST https://api.sandbox.paypal.com/v1/payments/payment \ -H "Content-Type: application/json" \ -H "Authorization: Bearer Access-Token" \ -d '{ "intent": "sale", "payer": { "payment_method": "paypal" }, "transactions": [ { "amount": { "total": "30.11", "currency": "USD", "details": { "subt..
개인적으로 공부한 내용을 정리하고 있는 글입니다. 글에 잘못된 부분이 있다면 인상을 쓰기보다는 제가 상처받지 않도록 부드럽고 자유롭게 의견 부탁드립니다. :-) # 마스터, 노드, 파드(pod) 개념 잡기 쿠버네티스의 가장 큰 핵심 기능은 컨테이너 오케스트레이션이다. 여러 개의 컨테이너의 상태를 확인하고 관리한다는 의미인데 트래픽의 증가 처럼 리소스가 더 필요한 상황이 되면 컨테이너를 증설(일종의 스케일-아웃 / 수평 확장)하기도 하고, 비정상 상태에 빠진 컨테이너를 종료하거나 새로운 컨테이너를 생성하는 등의 역할을 수행한다는 개념이다. 오케스트라에서 지휘자가 단원들을 지휘 하듯이 말이다. 이렇게 컨테이너를 오케스트레이션 가능하게 만드는 첫 번째 개념이 컴포넌트 집합이라고 할 수 있겠는데 바로 "마스터 ..
데이터베이스 연결 도구로 그동안 Sequel Pro를 사용해오고 있었는데 프로그램이 죽어도 너~무 잘 죽습니다. 프로그램이 툭하면 멈추고 종료되는 현상 때문에 업무 때문에 마음 조급할 때는 한없이 스트레스를 받고는 했는데요, 아무튼 Mac 스럽게 깔끔한 GUI가 마음에 들어서 버텨보려고 했으나 이제 그 한계가 찾아온 듯해서 대안으로 DBeaver라는 툴을 사용하기로 했습니다. Sequel Pro의 경우에는 MySQL 서버만 연결할 수 있고 PostgreSQL 연결을 위해서는 다른 도구를 사용해야 했습니다. 예를 들면 PSequel 같은 도구를 말이죠. Sequel Pro와 상당히 유사한 UI 때문에 적응하는데 어려움은 없지만 MySQL과 PostgreSQL 두 종류의 데이터베이스를 사용하려면 클라이언트 ..
알리바바 클라우드 포럼 2019 "광군제 기적, 클라우드의 힘" 행사에 다녀왔습니다. 최근 알리바바 클라우드에 관심이 생기면서 콘퍼런스 개최 소식을 듣고 반가운 마음에 다녀올 수 있었는데 이번 행사는 11월 11일 광군제가 끝난 직후라 관련된 이야기를 들을 수 있어서 특히 알찬 시간이었습니다. 사실 클라우드 인프라에 대해 다뤄지는 내용은 다른 퍼블릭 클라우드(Public Cloud)의 일반적인 내용과 다를 게 없지만 대규모 트래픽을 감당해낸 실제 사례가 다뤄지니 이건 재미없을 수가 없는 내용이죠. 조금 늦게 도착한 행사장에는 여느 콘퍼런스처럼 부스가 마련되어 있었고 포토존도 있었는데 조금 늦게 도착해서 서둘러 행사장으로 들어가기 바빴습니다. 이미 행사의 열기가 후끈했는데요, 안내를 받고 편한 자리에 착석..
Maven은 아파치 오픈소스 프로젝트로, 중앙에서 프로젝트의 빌드, 리포팅, 문서 등의 정보를 관리할 수 있게 도와준다. 자바나 스프링 등으로 프로젝트를 개발하게 되면 빼놓고 이야기할 수 없는 도구가 메이븐인데 MacOS에 설치하는 과정에 대해서 다뤄보도록 한다. Maven의 설치 시작은 공식 홈페이지에서 시작된다. 여기 링크를 접속하면 다운로드 받을 수 있는 파일 목록이 확인되는데 대략 아래와 같다. Maven 설치를 소개하는 많은 글에서 Other mirrors를 선택해서 속도가 빨리 나오는 사이트를 선택하라고 하지만 굳이 그럴 필요 없다. 용량 자체가 10MB 남짓이라 미러 사이트 찾아보는 시간에 클릭했다면 진작 다운로드가 완료된다. 아무튼, 아래 빨간 박스로 표시한 곳에 있는 파일을 적당히 다운로..
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 - 계속 업데이트 진행 - 혹시 공유해주고 싶은 꿀 단축키는 답글 주시면 감사하겠습니다. :-)
- Total
- Today
- Yesterday