
- DNS : Domain Name System의 약자로 호스트의 도메인 이름을 네트워크주소(IP)로 변환해준다 (반대로도 가능). 사람이 이해하기 쉬운 도메인 이름을 숫자로 식별된 IP주소로 변환
IP주소:포트번호 → example.com:포트번호 이때 특정 프로토콜인경우(https) 특정 포트로지정(443) 따라서 포트번호 생략가능
- Load Balancer : 수평적 확장(개수를 늘려서 분산)을 해준다. 요청을 여러 서버에 분산시켜줘서 서버의 부담을 줄여준다.
*수직적확장 : 성능을 늘려서 처리 능력을 키우는
- Web App Servers : user 의 요청을 받아드려서 결과물을 다시 브라우저로 돌려준다. 이런 일들을 처리하기 위해 여러 back-end infrastructures(database, cache server, job queue, and others)를 사용한다. 두개 이상의 서버가 연결되기 위해서는 Load Balancer를 앞단에 붙인다
- DB : 데이터를 저장하고 조회하는 것을 가능하게 해준다.
- Caching Service : 유저가 요청한 정보는 Caching Service로 간다. 미래에 같은 요청이 더 빠르게 처리될 수 있다.
- 처리가 느리다
- 처리가 자주 일어난다
- 몇몇 요청에 대해서 같은 결과가 나온다
- Job Queue(Optional) : job queue와 job server로 이뤄져있다. 대부분의 웹서버가 방대한 양의 당장 중요하지는 않은 일들을 처리해야함. 따라서 수행되야할때 job queue로 보내져서 job server에서 스케줄에 맞게 수행된다.
- Full text search service(Optional) : 텍스트를 통해서 검색을 원할 때 방대한 양의 문서중 키워드 로 필요한 데이터를 검색 ( LIKE같은 명령어 대신에 사용) DBMS마다 제공, CONTAINS, MATCH, FULLTEXT...
- Services : Controller에 처리된 일을 넘기는 부분
- Data Warehouse : 스트리밍 데이터를 데이터 스토어와 분석 도구에 가장 손쉽게 로드할 수 있습니다(Amazon Kinesis Data Firehose) → Amazon S3, Amazon Redshift, Amazon OpenSearch Service, Kinesis Data Analytics, 일반 HTTP 엔드포인트 그리고 Datadog, New Relic, MongoDB, Splunk 같은 서비스 공급자로 로드

- DataWarehouse : DB의 성능으로는 비즈니스적 데이터 분석에 한계가 있기 때문에 대량으로 데이터를 처리하는 시스템 ( Amazon Redshift)

- CDN : 중앙 서버에서 개별사용자에게 컨텐츠를 전송하려면 시간이 오래 걸리기 때문에 사용자의 물리적 위치와 가까운 프록시 서버에 콘텐츠를 캐싱해서 빠르게 제공합니다