Ruby on Jets로 배포된 모든 AWS Lambda 함수에 있어 공통적으로 계층(Layer)이 붙습니다. 그리고 이 계층들을 보면 공통적으로 하나의 파일을 가리키고 있습니다. 바로 Ruby on Jets에서 라이브러리 패키지로서 쓰이는 Gem입니다. Gem 같은 경우는 Jets(Rails) 프로젝트를 돌리는데에 있어 근본이자, 핵심입니다. Gem 없이는 일부 백엔드적 기능에 있어선 먹통이 발생될 수 있는 상황입니다. 즉, 계층(Layer)은 모든 Lambda 함수에 있어 공통적으로 필요한 패키지 파일을 언제든 재활용해서 쓸 수 있도록 하는 기능이라고 보면 됩니다. AWS 계층(Layer)의 시작 AWS 계층(Layer)은 2018년 말 AWS Re:Invent에서 발표된 기술입니다. 본래 AWS L..
사실 크롤링은 꼭 AWS Lambda가 아니더라도 AWS EC2 등 환경에서도 Rails를 통해 작업을 해낼 수 있습니다. 하지만 이번에 개인적인 프로젝트를 하면서 EC2서버에 크롤링을 돌리기에는 높은 스펙의 서버가 필요하고, 서버 유지 비용도 만만치 않을것이라고 여겨졌습니다. 그렇게 눈을 돌리게 된 것이 AWS Lamabda 였습니다. AWS Lamabda 환경에서 Selenium 크롤링이 이루어지게 하는 법에 대해 다뤄보겠습니다. (시작 전) Why AWS Lambda than EC2 ? 1. 서버비용 AWS EC2에서 크롤링을 돌리기 위해선 24시간 서버를 켜놔야 합니다. 하지만 시간=돈 입니다. 반면에 AWS Lambda 같은 경우는 일단 프리티어가 아니더라도 100만번 작업 내에서는 Lambda..
프로젝트를 진행함에 있어 과거에 진행했던 AWS Lambda 프로젝트를 정리해야 할 때가 있습니다. 하지만 단순히 AWS 서비스 사용 활용에 있어, Lambda만 있으면 좋겠는데 게이트웨이, Cloud Watch 등 다양한 서비스랑 연계되어 있다보니 섣불리 AWS Lambda와 관련된 서비스를 일일이 찾아내어 해지를 해내는 것도 어렵습니다. 하지만 Ruby on Jets에서는 이를 깔끔하게 해결해주는 명령어가 있습니다. 참고 AWS에 배포된 자료들만 삭제되지, Cloud9에 있는 Ruby on Jets 프로젝트는 삭제가 안됩니다. Jets Project 삭제하기 1. Cloud9에 아래 명령어를 입력해서 AWS에 올려져 있는 Ruby on Jets 관련 프로젝트를 날립니다. 저는 Production 상태..
AWS Lambda에서 스케쥴링 방식으로 자동으로 작업이 이루어지도록 해보겠습니다. Job 생성 1. Active Job 하나를 생성해보겠습니다. # jets g job [NAME] jets g job crawl 그럼 app/jobs/ 위치에 crawl_job.rb 파일이 생성된게 확인됩니다. 참고 이름을 잘못 지었을 경우, 다음 명령어를 통해 삭제하세요. # jets degenerate job [NAME] jets degenerate job crawl 2. app/jobs/crawl_job.rb 파일을 열람 시, 다음과 같은 내용으로 되어있습니다. class CrawlJob < ApplicationJob rate "10 hours" def dig puts "done digging" end end rat..
이번에는 Jets을 AWS Lambda에 배포해보겠습니다. 배포 전 간단 예시작업 1. 아주 간단하게 scaffold 하나를 만들어보겠습니다. jets g scaffold post title content:text 2. routes.rb 에서 메인 페이지를 posts#index 로 변경하겠습니다. ## config/routes.rb Jets.application.routes.draw do root "posts#index" resources :posts any "*catchall", to: "jets/public#show" end 3. Jets DB의 LOCAL DB가 아닌 다른 호스트에 있는 상태입니다. DB를 Remote Connect 하겠습니다. 참고 AWS Lambda에서는 Local DB 사용이 ..
이 전 시간에 Ruby on Jets를 설치를 해봤습니다. 그럼 이번에는 간단하게 Ruby on Jets 구조 소개 및 기본 몇 가지 명령어를 살펴보겠습니다. 앞으로 Jets를 하면서 해당 글에서 예제로 사용되는 명령어에 있어선 초반 인트로에 말했다 싶이 Ruby on Rails와 명령어가 아주 비슷합니다. Ruby on Jets 구성 Ruby on Jets는 대략적으로 다음과 같은 구성으로 되어있습니다. . ├── app │ ├── controllers │ ├── helpers │ ├── javascript │ ├── jobs │ ├── models │ └── views ├── bin ├── config ├── db ├── public └── spec 디렉터리 혹은 파일 특징 app/controller..
Ruby on Jets를 설치해보는 시간을 가져보겠습니다. Ruby on Jets는 AWS Cloud9 기반으로 설치를 해보겠습니다. MAC OS에 설치 및 설정 해당 글은 서두에 밝혔다 싶이 Cloud9을 기반으로 설치에 대한 설명이 이어집니다. MAC OS 환경 기반에서 설치 및 설정에 대한 과정은 Ruby on Jets : Mac OS에 Jets 설치 및 기본설정 글을 참고해주세요. 왜 AWS Cloud9 ? 1. 같은 AWS 서비스이다 보니, 번거로운 설정과정 없이 바로 AWS Lambda로 배포가 가능합니다. 2. Cloud형 IDE이다 보니 코드 편집이 편합니다. 3. (결정적인 선택 이유) Jets 개발자의 Tutorial 영상에서 시연을 함에 있어 AWS Cloud9 환경에서 보여줬습니다...
안녕하세요! 드디어 오랜 시간 스스로 Ruby on Jets을 익혀보고 처음으로 글을 쓰게 됩니다!! 이번 새로 소개드릴 내용은 Ruby on Jets 입니다! Ruby on Jets 같은 경우는 사실 과거에 Ruby on Rails 지식을 구글에 검색하면서 간간히 봐왔던 프레임워크이긴 했습니다. 하지만 과거에는 Ruby로 이루어진 '프레임워크' 라는 것 외에는 아는게 진짜 없었습니다! 그런데 이번에 AWS Lambda를 다뤄야 할 일이 있었는데, AWS Lambda 사용에 있어 활용할 수 있는 방안 중 하나가 Ruby on Jets 였습니다! Ruby on Jets Ruby on Jets는 AWS Lambda에 특화된 서버리스 웹프레임워크입니다. 당연히 Ruby 언어로 이루어진 언어이긴 한데, Jets..