old/Cyber Security
APM: Apache, PHP, MySQL의 역할과 상호작용 이해하기
은색거북이
2023. 3. 31. 00:55
반응형
ARM(Apache, Php, MySql)
정의
웹 서비스를 구현하기 위해서는 웹서버, WAS, 데이터베이스가 필요하고, 주로 쓰였던 조합인 Apache, Php, MySql을 줄여서 부르는 말.
2023년 현재, 보통 웹 서버와 WAS를 합쳐서 구현함.
웹 서버Web Server
- 웹 브라우저와 같은 클라이언트로부터 HTTP 요청을 받아들이고, HTML 문서와 같은 웹 페이지를 반환하는 컴퓨터 프로그램
- 정적 웹 페이지Static web Pages를 처리Apache Server, Nginx, IIS(Windows 전용 Web 서버)등
- 웹 서버Web Server 예제
WAS (Web Application Server)
- DB 조회나 다양한 로직 처리를 요구하는 동적인 컨텐츠를 제공하기 위해 만들어진 컴퓨터 프로그램
- 웹 컨테이너(Web Container)” 혹은 “서블릿 컨테이너(Servlet Container)”라고도 불린다.
- 동적 웹 페이지 dynamic web page를 처리Tomcat, JBoss, Jeus, Web Sphere, JSP, php등
- WAS 예제
DB (Database)
- 데이터베이스란 여러 사람들이 공유하고 사용할 목적으로 통합 관리되는 데이터들의 모임
- DBMS(DataBase Management System)을 사용해서 관리MySQL, NoSQL, IDMS, MongoDB등
- DB 예제
웹서비스의 구성요소
웹서버: Apache
WAS: php
DB: MySQL
Apache
정의
Apache재단에서 만든 HTTP서버
장점
- 다양한 기능 지원
- 서버 구축이 쉬움
- 무료
단점
- 서버 자체가 좀 무거움
- Slow HTTP Header DoS(Slowloris) 공격에 취약점이 발견됨
php
정의
웹 서버를 제어하기 위한 용도로 쓰이는 스트립트 언어
특징
- 인터프리터 방식
- 비슷한 언어로는 ASP, JSP등이 있다.
- 문법이 C언어에 가까움
- stateless
장점
- 데이터베이스 연동이 쉬움
- 파일업로드, 메일 전송등의 기능은 자체적으로 지원
- 클래스 생성 및 상속이 가능하므로 코드를 모듈화 가능
- 속도가 빠름
단점
- 내장함수나 인자 이름 규칙에 일관성이 부족
- 오류와 예외처리가 일관되지 않음
MySQL
정의
Database Managment System (DBMS)의 하나
데이터베이스를 사용하는데 도움이 되는 도구의 집합.
특징
- C언어와 C++로 구성
- SQL에 기반
장점
- GPL 라이선스로 오픈 소스 = 무료
- OS 전환이 어렵지 않다
- 다른 DBMS에 비해서 작고 빠르다.
- 많은 정보를 사용할 수 있는 대규모 사용자 커뮤니티
단점
- 트랜잭션 지원이 완벽하지 않다
예를 들어, 어떤 데이터베이스 시스템에서는 네트워크 장애나 서버 문제 등으로 인해 트랜잭션 처리가 중단될 수 있습니다.
이 때, 일부 작업은 이미 완료되었지만, 나머지 작업이 중단되어 처리되지 않았기 때문에, 데이터베이스의 일관성(저장된 데이터가 정확하고 유효하다는 것을 보장)이 깨질 수 있습니다.
이러한 경우에는 데이터베이스 시스템에서 복구 기능을 제공하거나, 개발자가 해당 상황에 대처할 수 있는 코드를 작성하여 일관성을 유지하는 등의 조치가 필요합니다.
반응형