피플펀드 웹서비스 성능개선기(+초기 스타트업의 개발방법론) 20171220Seomgi HanAWS위에 Django를 올려서 활용하고 있는 피플펀드의 서비스에서 성능개선을 위해 AWS CloudWatch, New Relic APM 등을 활용해 점검했던 포인트와 해결방법, 그리고 성과에 대해서 공유합니다.
Backup automation in KAKAO I Goo LeeThis document discusses strategies for automating remote database backups across multiple data centers. It recommends scheduling backups automatically after a queue time to use underutilized backup servers. The backup manager would select the target backup server based on its service zone, data center location, and available quota to balance load. It would also avoid using the same backup server consecutively and start backups at different times each day to improve reliability in case of failures.
MySQL 5.7 NF – JSON Datatype 활용I Goo LeeThis document discusses MySQL 5.7's JSON datatype. It introduces JSON and why it is useful for integrating relational and schemaless data. It covers creating JSON columns, inserting and selecting JSON data using functions like JSON_EXTRACT. It discusses indexing JSON columns using generated columns. Performance is addressed, showing JSON tables can be 40% larger with slower inserts and selects compared to equivalent relational tables without indexes. Options for stored vs virtual generated columns are presented.
Intro KaKao MRTE (MySQL Realtime Traffic Emulator)I Goo LeeThe document describes the process of opening a TCP connection between a client and MySQL database, including the initial handshake and response packets. It then explains how the MRTE-Collector works by using message queues to capture and parse MySQL packets from the source database, and replay them to the target database using multiple SQL player threads. The MRTE-Collector publishes messages to RabbitMQ queues which routes the messages to the proper queues subscribed by MRTE-Player.
MySQL Slow Query log Monitoring using Beats & ELKI Goo LeeThis document provides instructions for using Filebeat, Logstash, Elasticsearch, and Kibana to monitor MySQL slow query logs. It describes installing and configuring each component, with Filebeat installed on database servers to collect slow query logs, Logstash to parse and index the logs, Elasticsearch for storage, and Kibana for visualization and dashboards. Key steps include configuring Filebeat to ship logs to Logstash, using grok filters in Logstash to parse the log fields, outputting to Elasticsearch, and visualizing slow queries and creating sample dashboards in Kibana.
MySQL Audit using Percona audit plugin and ELKI Goo LeeThis document discusses setting up MySQL auditing using the Percona Audit Plugin and ELK (Elasticsearch, Logstash, Kibana). It describes installing and configuring the Percona Audit Plugin on MySQL servers to generate JSON audit logs. It then covers using Rsyslog or Filebeat to ship the logs to the Logstash server, and configuring Logstash to parse, enrich, and index the logs into Elasticsearch. Finally, it discusses visualizing the audit data with Kibana dashboards containing graphs and searching. The architecture involves MySQL servers generating logs, Logstash collecting and processing them, and Elasticsearch and Kibana providing search and analytics.
Backup automation in KAKAO I Goo LeeThis document discusses strategies for automating remote database backups across multiple data centers. It recommends scheduling backups automatically after a queue time to use underutilized backup servers. The backup manager would select the target backup server based on its service zone, data center location, and available quota to balance load. It would also avoid using the same backup server consecutively and start backups at different times each day to improve reliability in case of failures.
MySQL 5.7 NF – JSON Datatype 활용I Goo LeeThis document discusses MySQL 5.7's JSON datatype. It introduces JSON and why it is useful for integrating relational and schemaless data. It covers creating JSON columns, inserting and selecting JSON data using functions like JSON_EXTRACT. It discusses indexing JSON columns using generated columns. Performance is addressed, showing JSON tables can be 40% larger with slower inserts and selects compared to equivalent relational tables without indexes. Options for stored vs virtual generated columns are presented.
Intro KaKao MRTE (MySQL Realtime Traffic Emulator)I Goo LeeThe document describes the process of opening a TCP connection between a client and MySQL database, including the initial handshake and response packets. It then explains how the MRTE-Collector works by using message queues to capture and parse MySQL packets from the source database, and replay them to the target database using multiple SQL player threads. The MRTE-Collector publishes messages to RabbitMQ queues which routes the messages to the proper queues subscribed by MRTE-Player.
MySQL Slow Query log Monitoring using Beats & ELKI Goo LeeThis document provides instructions for using Filebeat, Logstash, Elasticsearch, and Kibana to monitor MySQL slow query logs. It describes installing and configuring each component, with Filebeat installed on database servers to collect slow query logs, Logstash to parse and index the logs, Elasticsearch for storage, and Kibana for visualization and dashboards. Key steps include configuring Filebeat to ship logs to Logstash, using grok filters in Logstash to parse the log fields, outputting to Elasticsearch, and visualizing slow queries and creating sample dashboards in Kibana.
MySQL Audit using Percona audit plugin and ELKI Goo LeeThis document discusses setting up MySQL auditing using the Percona Audit Plugin and ELK (Elasticsearch, Logstash, Kibana). It describes installing and configuring the Percona Audit Plugin on MySQL servers to generate JSON audit logs. It then covers using Rsyslog or Filebeat to ship the logs to the Logstash server, and configuring Logstash to parse, enrich, and index the logs into Elasticsearch. Finally, it discusses visualizing the audit data with Kibana dashboards containing graphs and searching. The architecture involves MySQL servers generating logs, Logstash collecting and processing them, and Elasticsearch and Kibana providing search and analytics.