AWS, Lambda + API Gateway 를 이용한 RESETful API 개발 #1
Cloud 서비스를 제공하는 업체 대부분은 Cloud 환경 구축에 주 목적을 On-Premise 환경 그대로 가상화(Virtualization) 하는데 주력했다. 이는 IDC 를 사용하고 있는 고객을 흡수 하기 위한 유일한 선택이었고, 그들(기존 IDC에서 서비스를 운영하는 업체)은 베어메탈 형태로서는...
Cloud 서비스를 제공하는 업체 대부분은 Cloud 환경 구축에 주 목적을 On-Premise 환경 그대로 가상화(Virtualization) 하는데 주력했다. 이는 IDC 를 사용하고 있는 고객을 흡수 하기 위한 유일한 선택이었고, 그들(기존 IDC에서 서비스를 운영하는 업체)은 베어메탈 형태로서는...
완벽한 개발은 존재할 수 없다. 그리고, 나도 모르게 내가 사용중인 미들웨어 어딘가에서 보안 문제가 생기는 경우가 부지기수다. WAF(Web Application Firewall)은 Web 서비스를 제공함에 있어서 필수불가결한 존재라 생각한다. 특히나, 다양한 매개변수를 주고 받는 서비스라면 더욱이....
Web Service 를 운영하다 보면 서버 장애 또는 점검 시 ‘공사중(작업중)’ 를 보여줘야 하는 경우가 있다. 일반적으로 Apache 나 Nginx 에서 특정 Error Code 에 Rewrite Rules 를 추가해 특정 페이지로 연결하는 형태가 주로...
앞선 글에서 LogStash 와 Fluentd 의 차이를 간단히 알아봤다. 이번엔 Fluentd 를 활용해 로그를 취합하고, 통계를 볼 수 있는 구조를 만들어보자. ElasticSearch, Fluentd, Kibana 조합으로 Nginx 의 Access Log 를 시각화 하는것이 목적이다. Fluentd...
얼마전 까지 로그를 수집하고 분석할 때 ELK Stack을 사용했다. 이중 L 은 LogStash를 의미했고, 다방면에서 로그를 수집할 때 매우 유용하게 사용해왔다. 개인적으로 AWS Aurora Slow-query 를 수집하고 분석할 때도 Fluentd를 사용하고 있다. LogStash 나...
MySQL 응용 프로그램을 개발한 개발자라면 빈번하게 요청되거나, 빠른 검색이 필요한 경우 인덱스(index) 지정이 필수라는걸 이미 알고 있을 것이다. 그 차이는 데이터 양이 많아질 수록 크게 차이가 나기 때문. 그렇다면 산술적으로 어느정도 차이가 있는걸까? MySQL의...
블로킹(Blocking) I/O 및 동기(Synchronous) I/O 블로킹 I/O(혹은 동기 I/O)는 I/O 작업 시 대상 파일의 디스크립터(Descriptor)가 준비되어 있지 않은 프로세스는 시스템 호출 응답 대기상태(차단 상태)가 된다. 즉, 그 동안 프로그램 처리를 진행할 수 없다. 아래는...
NGINX Plus 는 오픈소스로 공개 및 제공되는 Nginx에 엔터프라이즈 확장 기능을 추가한 고성능 서버로, application load balancing, health checks, advanced cache control, streaming media delivery, activity monitoring and on-the-fly reconfiguration. 같은 고급 기능이 포함되어...
CGI(Common Gateway Interface) 란? 정적(Static) 데이터 처리만 가능한 WEB 서버를 동적으로 처리하기 위해 사용자 요청에 따라 실행 가능한 외부 프로그램을 호출하고 처리 결과를 돌려줄 수 있는 인터페이스다. CGI 를 통해 입/출력이 가능하도록 만들어진 프로그램을...
Google Calendar 의 일정 정보(생성, 삭제, 시작)를 다른 메신저나 서비스로 전달하는 방법은 매우 다양하지만, 결과를 보여주고자 하는 환경에서 별도의 인터페이스를 제공하지 않는 경우 중간에 릴레이 역할을 하는 매개체(서버)가 반드시 필요하다. 그런 의미에서 자체적으로 연결을...