본문 바로가기

소프트웨어 이야기/인프라

[RUBY]루비로 AWS Athena 사용하기 Gemaws-sdk gem 안에 athena 서비스를 사용할 수 있는 함수도 포함되어 있다. 함수 사용하는 방법 처음에 aws-sdk를 사용할 때는, 아테나에 쿼리를 보내면 바로 결과값을 리턴해주는 기능이 있을거라고 기대했다.마치 jdbc를 사용하듯이 사용할 수 있을줄 알았다. 그런데 약간 개념이 달랐다.참고링크 : ATHENA RUBY SDK 사용법이렇게 클라이언트를 만들고client = Aws::Athena::..
[AWS]beanstalk ssh 접속 에러 - NotAuthorizedError 상황예전에 EB CLI 명령문으로 빈스톡 서버에 접속하려고 하는데 에러가 난 적이 있었다. 당시의 에러 로그는 아래와 같았다.  ebcli.objects.exceptions.NotAuthorizedError: Operation Denied. Signature expired: 20170626T164026Z is now earlier than 20170627T023518Z (20170627T024018Z - 5 min.)원인로컬 컴퓨..
[AWS]beanstalk에서 로그 확인하기 빈스톡 서버에서 애플리케이션, 웹 서버의 로그를 확인하려면 아래의 폴더 경로에 들어가서 확인하면 된다. 그리고 예전에 만들어졌던 로그 파일을 확인해보고 싶을 때는, s3에 들어가서 확인하면 된다 내가 찾고자 하는 서버의 로그가 있는 폴더 경로를 찾기가 좀 어려우니, 잘 추적해서 들어가야한다. beanstalk를 사용하면, 앱 / 웹 서버 로그 로테이션도 알아서 관리해준다. (굿뜨~)참고 문서 경로 : us..
[AWS]Athena 사용 팁 AWS Athena란?AWS Athena는 S3에 저장된 파일에 쿼리를 날리면, 데이터를 가져올 수 있게 해주는 AWS 서비스이다.구글의 빅쿼리랑 비슷한 서비스이다. AWS Athena를 왜 써야할까?인프라를 관리하지 않아도 된다대용량 로그파일을 분석하려면 이것저것 인프라 셋팅, 관리 등등이 필요하다.예를 들면, 스파크에 S3 로그 파일을 땡겨와서, 스파크 SQL을 날려서 데이터를 추출한다거나...이 경우, 데이터 분석을 위한 인프..
(Phusion Passenger) 패신저는 뭐하는애일까 패신저는 프로세스를 관리하는 역할을 한다. 그리고 HTTP Request를 라우팅처리해준다.패신저에서 프로세스란 개념은 무엇일까?레일즈 애플리케이션 인스턴스를 하나 실행시킨걸, 패신저의 프로세스로 보면 될 것 같다.레일즈 인스턴스를 하나 띄어놓는 것은 패신저가 프로세스를 하나 띄어놓는 것과 같다.그리고 레일즈 인스턴스를 하나 죽이는 것은, 패신저가 프로세스를 하나 죽이는 것과 같다.패신저의 프로세스 개념에서 알아둬야하는건 뭘까?각 프로세스의..
(Phusion Passenger) 코드 reload하기 서버에서 접속해서 디버깅용으로 직접 로그를 남겨서 볼 때, 수정된 코드를 반영하기 위해, 패신저를 보통 재시작해줬었다.그런데 패신저에서 코드를 Reload해주는 명령문이 따로 있었다. 패신저를 재시작해주는건 명령문을 치고, 몇초간 기다려야한다. 그런데 코드를 다시 읽어들이는 Reload는 이보다 더 빠르게 변경된 코드를 패신저에 반영할 수 있다. 단, config/application.rb에 있는 설정정보는 reload되지..
(Phusion Passenger) 패신저에서 트래픽을 어떻게 분산시켜줄까? 패신저의 Request LoadBalancingPushion Passenger는 프로세스를 관리하고, HTTP Request를 라우팅처리해준다.그리고 패신저는 성능 최적화를 위해 CPU 코어에 대한 처리를 분산시키거나, 응답시간을 최소화하기 위해 제일 놀고있는 프로세스에서 HTTP Request가 처리될 수 있게 해준다.이 포스팅은 루비온레일즈에 셋팅된 패신저에서 로드밸런싱 처리를 해주는 방법에 대한 내용을 담고 있다.루비온레일즈는 기본적으..
(Phusion Passenger) Rails + Nginx 최적화를 위한 설정값 지난주는 인프라에 이리치이고 저리치였던 주였다. ㅠㅠ 서버의 메모리 사용량에 이리치이고 저리치이면서 패신저의 프로세스 상태를 확인하고, 설정값들을 변경해줘야하는 상황들이 발생했다. 패신저란.. 레일즈애플리케이션과 웹서버를 연결해주는 중간다리쯤정도만 생각했었다. 그런데 이번주는 패신저에 대해서 더 잘 알아두면 좋을 것 같단 생각을 한 주였다. 이래저래.. 큰불들은 꺼졌지만, 까먹기전에 패신저에 대한 내용들을 찾아서 ..
[HTTP] HTTP 2의 탄생 배경과 특징 팀에서 HTTP 2에 대한 내용을 간단하게 ㅎㅎ 발표하기로 했다. 그래서 준비중이다.그런데 피피티로 쓰는 것 보다 글로 정리하는게 더 나을것 같아서, 에버노트 대신 블로그에 포스팅을 하려고 한다.( 결국 이 포스팅을 읽으면서 발표했다 ㅎㅎ )A.https://www.httpvshttps.com/이 사이트에 들어가면, HTTP 1과 HTTP2의 웹페이지 랜딩 속도를 비교해볼 수 있다.보면, HTTP2가 HTTP1보다 절반은 빠르다. ..
[AWS]Beanstalk이란 나는 1년정도 BeanStalk을 사용하고 있다. 처음에는 BeanStalk가 어떤 역할을 하는 서비스인지 궁금해서 찾아봤었는데, 이해가 잘 되지 않았었다. 그래서 내가 경험한 빈스톡에 대해서 정리해보고자 한다.BeanStalk이란?빈스톡은 Docker 컨테이너를 기반으로 애플리케이션을 쉽게 배포하고, 운영하고, 관리하는걸 도와주는 AWS 서비스다.별도의 서비스 사용료는 없고, 사용한 AWS 리소스 만큼 비용이 과금된다고 한다.&n..