포트 포워딩 대신에 ngrok 사용하기

만약에, 내 컴퓨터가 공유기로부터 192.168.0.2의 아이피를 가지고 서버에서 25565 포트를 열었다고 합시다. 이 때, 공유기가 1.2.3.4 아이피를 가지고 있을때, 외부에서 1.2.3.4:25565로 접근하는 사람들에게 공유기가 어디로 신호를 보내줘야 할 지 모르는 상태가 되는데, 포트 포워딩을 해줘야지만 192.168.0.2:25565로 신호를 보내주는 것입니다. 이러한 과정은 결국 공유기에 접속해서 설정을 해줘야 하는데, 공유기마다 설정도 제각각이고…

Continue reading 포트 포워딩 대신에 ngrok 사용하기

Docker로 손쉽게 Jupyter와 Spark 사용하기

이전에 윈도우(Windows) 10 환경에서 스파크(Spark)를 설치하는 방법에 대한 글을 작성한 적이 있었는데, 한 번 셋팅해놓고 잘 쓰다가 컴퓨터를 포맷한다거나 하면서 환경 구성이 바뀌면 여간 골치아픈 것이 아닙니다. 그래서 도커(Docker) 이미지를 이용해서 손쉽게 서버를 올렸다 내렸다 하면서 사용할 수 있는 환경 구축에 대해서 알아보고자 합니다. 도커 설치 아래의 주소로 가셔서 도커…

Continue reading Docker로 손쉽게 Jupyter와 Spark 사용하기

VS Code로 AWS SAM에 대한 Remote 컨테이너 개발 환경 구축하기

AWS SAM으로 서버리스 아키텍처를 개발, 관리 그리고 배포하고자 개발 환경을 구축하면서 좌충우돌 했던 많은 시도와 과정을 글로 정리해보고자 합니다. VS Code를 사용하게 된 이유는, Lambda 함수에서 Python을 사용하려고 하니까 별 다른 선택지가 없었기 때문입니다. AWS Toolkit 플러그인은 여러 IDE에 걸쳐서 존재하나, 일부 IDE에 대해서는 언어 제약이 있었습니다. 그런데, VS Code에서는…

Continue reading VS Code로 AWS SAM에 대한 Remote 컨테이너 개발 환경 구축하기

Spark에서 Window 함수의 다양한 이용

스파크(Spark)에서 데이터 프레임을 다루다 보면, 다양한 함수들이 요구됩니다. 기본 함수들은 직관적으로 새로운 값을 생성하는 것에 초점을 맞추고 있습니다. 그런데, 많은 경우에 데이터 비교를 위해서 현재 행을 이전 행과 비교하기를 원합니다. 혹은 특정 컬럼에 대해서 Partiton된 데이터를 구하고 싶기도 합니다. 이럴 때에 주로 사용하는 함수가 바로 Window 함수입니다. 스파크의 윈도우 함수는…

Continue reading Spark에서 Window 함수의 다양한 이용

Spark 작업 병렬로 처리하기

빅데이터 처리를 위해서 스파크(Spark)가 인기를 끈 이유는 대용량 데이터를 병렬로 처리할 수 있다는 것입니다. 그래서 스파크를 처음에 접했을 때는 모든 작업이 병렬로 처리된다는 생각을 하게 되고, 이 때문에 스파크는 항상 병렬 처리를 한다고 믿었습니다. 물론 이것은 사실입니다. 그런데, 아래와 같은 워크로드를 가지는 경우를 생각해 봅시다. 처음에는 하나의 노드에서만 처리하다가 중간에…

Continue reading Spark 작업 병렬로 처리하기

Oracle의 항상 무료 인스턴스 – 도전!

얼마 전에 오라클 클라우드에서 항상 무료 인스턴스를 무려 2개나 제공한다는 소식을 듣고, 언제 한 번 시도를 해봐야지 하고 있었습니다. 그리고 설 연휴를 이용하여 오라클 클라우드에 가입을 하고 항상 무료 인스턴스를 생성해볼 시간을 얻게 되었습니다. 홈페이지에 가보니까 정말로, 항상 무료 인스턴스를 2개나 제공한다고 되어 있습니다. 새로운 상시 무료서비스로 시간 제한 없이…

Continue reading Oracle의 항상 무료 인스턴스 – 도전!

Jupyter Lab에서 Spark 실행하기

스파크(Spark)로 개발을 하다보면 간단한 작업은 로컬에서 진행하고 싶은 경우가 있습니다. 겨우 이거 하나 하겠다고 스칼라(Scala)로 코드를 짜서 Jar를 만들고 스파크 클러스터에 작업을 제출하는 것은 너무나 불편하기만 합니다. 그래서 Jupyter Lab을 이용해서 간단한 스파크 코드를 작성하고 실행하는 과정을 소개하고자 합니다. 앞선 글에서 아나콘다를 이용해 Jupyter Lab은 설치를 했으므로 이 부분은 건너…

Continue reading Jupyter Lab에서 Spark 실행하기

윈도우에서 Jupyter Lab 설치하고 Boto3 사용하기

Python으로 간단한 코드를 돌려보려고 하는데, IDE를 통채로 설치해서 사용하자니 너무 큰 작업이 되는 것 같고, 매번 IDE를 통해서 실행하는 것도 귀찮고 해서 Jupyter Lab을 설치하기로 결정하였습니다. IPython 스타일의 Jupyter Notebook이 기본 셋팅이지만 저는 Lab의 형태를 더 선호해서 일단 Jupyter Notebook을 설치한 다음에 Lab으로 변경할 것입니다. 궁극적으로 이런 셋팅을 하는 이유는…

Continue reading 윈도우에서 Jupyter Lab 설치하고 Boto3 사용하기

EMR을 이용한 자동 Spark 배치 만들기

회사에서 많은 AWS 서비스를 사용해보면서 어느 날 번뜩 떠오른 아이디어가 있었습니다. 사실 전문가 분들은 이미 많이 사용하고 있는 것 같았지만 왠지 내가 대단한 발견이라도 한 것 같고 나름의 성취감도 있었지요. AWS의 EMR을 이용하여 Spark 배치 작업을 자동으로 실행하고 작업이 종료되면 EMR도 종료하여 비용 절감까지 가능한 아키텍처를 살펴볼까 합니다. 기본적으로 사용하게…

Continue reading EMR을 이용한 자동 Spark 배치 만들기

EC2로 워드프레스 이전하기

어제, 오랜 기간동안 고민하다가 갑자기 느낌이 확 와서 제 블로그를 시놀로지 NAS에서 아마존 EC2로 이전하였습니다. NAS 자체가 너무 느리기도 하고, 이사를 하면서 겪었던 많은 불편함을 해소하고자 결국 클라우드 환경을 선택하게 되었네요. 게다가 최근 클라우드 환경에서 많은 작업들을 하다 보니까 그 편리함에 눈을 뜨게 되었습니다. 처음에는 굉장히 거창한 시스템을 구축해볼까 하였으나,…

Continue reading EC2로 워드프레스 이전하기