본문 바로가기

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

[AWS]Athena 사용 팁 AWS Athena란?AWS Athena는 S3에 저장된 파일에 쿼리를 날리면, 데이터를 가져올 수 있게 해주는 AWS 서비스이다.구글의 빅쿼리랑 비슷한 서비스이다. AWS Athena를 왜 써야할까?인프라를 관리하지 않아도 된다대용량 로그파일을 분석하려면 이것저것 인프라 셋팅, 관리 등등이 필요하다.예를 들면, 스파크에 S3 로그 파일을 땡겨와서, 스파크 SQL을 날려서 데이터를 추출한다거나...이 경우, 데이터 분석을 위한 인프라를 셋팅해주고 관리해야한다. 그런데 아테나는 서버리스 서비스여서, 이러한 관리가 필요하지 않다. 비용 측면에서 이점이 있다분석을 위해 셋팅해놓은 인프라를 하루종일 꾸준히 쓰는게 아니라 특정한 시간대에만 사용한다거나,갑자기 분석해야하는 데이터가 급증할 경우,인프라가 펑펑 놀고 ..
(Phusion Passenger) 패신저는 뭐하는애일까 패신저는 프로세스를 관리하는 역할을 한다. 그리고 HTTP Request를 라우팅처리해준다. 패신저에서 프로세스란 개념은 무엇일까?레일즈 애플리케이션 인스턴스를 하나 실행시킨걸, 패신저의 프로세스로 보면 될 것 같다.레일즈 인스턴스를 하나 띄어놓는 것은 패신저가 프로세스를 하나 띄어놓는 것과 같다.그리고 레일즈 인스턴스를 하나 죽이는 것은, 패신저가 프로세스를 하나 죽이는 것과 같다. 패신저의 프로세스 개념에서 알아둬야하는건 뭘까?각 프로세스의 메모리는 다른 프로세스들과 분리된 영역이다. 프로세스 A에서 power_blogger='rails_blogger' 라고 변수를 할당해놔도, 프로세스 B에서는 power_blogger라는 변수를 가져다가 사용할 수 없다. 프로세스들끼리 데이터를 공유하려면 어떻게 해..
(Phusion Passenger) 코드 reload하기 서버에서 접속해서 디버깅용으로 직접 로그를 남겨서 볼 때, 수정된 코드를 반영하기 위해, 패신저를 보통 재시작해줬었다. 그런데 패신저에서 코드를 Reload해주는 명령문이 따로 있었다. 패신저를 재시작해주는건 명령문을 치고, 몇초간 기다려야한다. 그런데 코드를 다시 읽어들이는 Reload는 이보다 더 빠르게 변경된 코드를 패신저에 반영할 수 있다. 단, config/application.rb에 있는 설정정보는 reload되지않는다고 한다.cd /path-to-your-app $ bundle exec passenger-config restart-app /Users/phusion/testapp Restarting /Users/phusion/testapp/public (development)이 명령문을 치면,..
(Phusion Passenger) 패신저에서 트래픽을 어떻게 분산시켜줄까? 패신저의 Request LoadBalancing Pushion Passenger는 프로세스를 관리하고, HTTP Request를 라우팅처리해준다.그리고 패신저는 성능 최적화를 위해 CPU 코어에 대한 처리를 분산시키거나, 응답시간을 최소화하기 위해 제일 놀고있는 프로세스에서 HTTP Request가 처리될 수 있게 해준다. 이 포스팅은 루비온레일즈에 셋팅된 패신저에서 로드밸런싱 처리를 해주는 방법에 대한 내용을 담고 있다. 루비온레일즈는 기본적으로 한 번에 한 요청을 처리한다.그래서 패신저는 어플리케이션에서 여러 프로세스들이 작동될 수 있게 해주는 역할을 한다. ( 프로세스마다 어플리케이션의 인스턴스를 하나씩 띄우는 개념인 것같다. 개발환경에서 레일즈 앱을 하나 띄우는 것처럼, 패신저가 레일즈 앱을 알아..
(Phusion Passenger) Rails + Nginx 최적화를 위한 설정값 지난주는 인프라에 이리치이고 저리치였던 주였다. ㅠㅠ 서버의 메모리 사용량에 이리치이고 저리치이면서 패신저의 프로세스 상태를 확인하고, 설정값들을 변경해줘야하는 상황들이 발생했다. 패신저란.. 레일즈애플리케이션과 웹서버를 연결해주는 중간다리쯤정도만 생각했었다. 그런데 이번주는 패신저에 대해서 더 잘 알아두면 좋을 것 같단 생각을 한 주였다. 이래저래.. 큰불들은 꺼졌지만, 까먹기전에 패신저에 대한 내용들을 찾아서 정리해보고자 한다. 아 ㅎ ㅎ ! 이 포스팅의 내용은 루비 + 엔진엑스로 패신저 조합의 이야기이다. A. 패신저 프로세스 수 조절하기 이번주는 적당한 프로세스 수를 찾기 위해 이렇게 저렇게 설정해보고, 메모리에 치이고, 리퀘스트 큐에 치이는 한주였다. 패신저에서는 프로세스 수를 동적으로 생성할 ..
[HTTP] HTTP 2의 탄생 배경과 특징 팀에서 HTTP 2에 대한 내용을 간단하게 ㅎㅎ 발표하기로 했다. 그래서 준비중이다.그런데 피피티로 쓰는 것 보다 글로 정리하는게 더 나을것 같아서, 에버노트 대신 블로그에 포스팅을 하려고 한다.( 결국 이 포스팅을 읽으면서 발표했다 ㅎㅎ ) A.https://www.httpvshttps.com/이 사이트에 들어가면, HTTP 1과 HTTP2의 웹페이지 랜딩 속도를 비교해볼 수 있다.보면, HTTP2가 HTTP1보다 절반은 빠르다. HTTP2는 이전 버전에 비해, 속도 측면에서 큰 변화가 있었다. HTTP2는 보안 강화라는 특징도 갖고 있지만, 이번 시간에는 HTTP2가 웹페이지를 요청하고, 응답받을 때까지 기다려야하는 시간을 어떻게 단축했는지에 대한 내용에 집중에서 이야기하려고 한다. B. HTTP 2..
[Docker]완벽한 IT 인프라 구축을 위한 Docker 1-5 인프라에 대한 기초 지식온프레미스 : 시스템 구축에서 부터 운영까지 자사에 데이터센터를 두고 수행하는 형태를 의미한다. 1-5 인프라 구성관리에 대한 기초 지식 클라우드 시스템과 가상화 기술의 등장으로 이하여, 온프레미스에서는 구축하기 어려웠던 서버 / 네트워크을 이전보다 간단하게 구축할 수 있게 되었다. 이제는 인프라 변경이 필요할 때, 구축된 인프라를 파기하고, 새로 구축하는 것이 가능하게 되었다. 이전 처럼 인프라 변경 이력을 관리할 필요성이 줄어들었다. 이제는 현재 가동 중인 인프라 상태만 관리하면 되는 환경으로 변하고 있다. 이러한 인프라를 Immutable infrastructure (불변 인프라)라고 한다. infrastructure as code온프레미스 환경에서는 서버를 띄우려면 ..
[AWS]Beanstalk이란 나는 1년정도 BeanStalk을 사용하고 있다. 처음에는 BeanStalk가 어떤 역할을 하는 서비스인지 궁금해서 찾아봤었는데, 이해가 잘 되지 않았었다. 그래서 내가 경험한 빈스톡에 대해서 정리해보고자 한다. BeanStalk이란? 빈스톡은 Docker 컨테이너를 기반으로 애플리케이션을 쉽게 배포하고, 운영하고, 관리하는걸 도와주는 AWS 서비스다. 별도의 서비스 사용료는 없고, 사용한 AWS 리소스 만큼 비용이 과금된다고 한다. 특징 초기 세팅기본적으로 필요한 환경을 몇번의 클릭으로 서버 셋팅을 할 수 있다.- 예를 들면 원하는 루비 버전과 패신저를 설정하면, 인스턴스에 직접 들어가서 설치하지 않아도 빈스톡이 알아서 환경을 구성해준다. - 그런데 최신 버전의 언어를 지원하지 않는 경우도 있다. 이런..