분류 전체보기 367

[Network] Forward proxy vs Reverse proxy

Proxy, Proxy 프로그램, Proxy 서버 Proxy는 자신을 '통해서' 다른 네트워크에 간접적으로 접속 할 수 있도록 '중계'해주는 컴퓨터 혹은 프로그램이다. 그리고 이러한 일을 하는 프로그램을 Proxy 프로그램이라 하며, Proxy 프로그램은 Proxy Server에서 작동한다. Proxy의 종류 Proxy에는 Forward Proxy와 Reverse Proxy가 있다. 1) Forward Proxy 일반적으로 사용하는 Proxy방식이며 클라이언트와 애플리케이션 서버 사이에 위치해서 클라이언트가 애플리케이션 서버로 서비스를 요청 할 때 내부망(아래 사진에서 남색으로 표시)에 위치한 Proxy Server에서 먼저 요청을 받고, Proxy Server가 타겟인 애플리케이션 서버로 요청을 전달한..

[Network] CDN(Contents Delivery Network) 이해하기

[CloudFront] CloudFront에 S3 버킷 배포하고 SSL Certificate설정에서 Amazon S3와 CloudFront로 정적 파일을 배포하는 과정에 대해서 정리하였었다. AWS CloudFront는 전 세계의 정적/동적 웹 콘텐츠, 비디오 스트림 및 API를 안전하게 대규모로 전송할 수 있는 콘텐츠 전송 네트워크(CDN) 서비스이라서, 이를 사용하기 위해서는 CDN과 Cache에 대한 개념을 알아야하고, 이 부분에 대해서 공부가 더 필요하기 때문에 공부 후에 따로 정리해보겠다 라고도 적어놓은 바가 있다. 이 중 CDN에 대해 공부하고 이해한 바를 정리해본다. 내가 만든 서비스를 호스팅해주는 서버는 한국에 있고, 내 서비스가 전세계적으로 제공되고 있다고 하자. 이 때 많은 양의 파일과..

[Network] DNS(Domain Name System) 이해하기

IP에 대한 것은 (아직 부족하지만) [Network]Router, IP, NAT, Port에 정리해 둔 적이 있다. 즉 IP는 두 대의 컴퓨터 각자의 '주소'를 통해 서로를 찾고 인터넷을 통해 '통신'을 하며 정보를 주고 받는다고 하자. 이때 '주소'에 해당하는게IP address. 그리고 host는 인터넷에 연결된 각각의 기기를 말한다. 그런데 어떤 컴퓨터에 통신을 위해 요청을 보낸다고 하자. 이때 IP가 뭔지 기억하기란? 굉장히 번거롭다. 93.184.216.34 이런걸 다 외운다고? 그럴 순 없지 그래서 필요한 것이 DNS(Domain Name System)이다. DNS는 우리가 흔히 보는 도메인 이름(예를 들어 www.google.com과 같은)을 IP주소로 변환하는 역할을 한다. DNS의 원리..

[DevOps] CI/CD

DevOps DevOps란 개발(Development)과 운영(Operation)의 합성어로, 개발과 운영을 하나로 합쳐서 일하는 철학, 도구, 환경, 문화 등의 조합을 나타낸다. 개발부터 배포까지 모든 단계에 자동화와 모니터링을 도입해서 더 짧은 개발 주기, 더 많은 배포 빈도, 안정적인 소프트웨어를 배포하자는 목표를 가지고 있다. 위의 설명을 보면 '자동화'와 '모니터링'이 필요한 것 같다. 그래서 데브옵스는 서버 구성, 배포, 테스트에 있는 반복작업을 최대한 자동화하여 배포 리소스를 줄이는 것이 시작이다. 데브옵스를 실천하는 방식은 여러가지가 있고, 그 중 One-Step 빌드와 배포가 있다. 빌드(Build)란 여러 개발자가 개발한 소스 코드 파일을 통합하고, 실제 동작 가능한 독립적인 S/W 변..

Dev/DevOps, Infra 2021.01.15

[Reinforcement Learning] Deep Q-network: Experience replay

+ 강화학습을 배우고 구현하고자 노력하는 중으로, 이해한 바를 남기고자 하는 노트 정리와 비슷한 것입니다. 따라서 정확하지 않은 내용이 있을 수 있습니다. 현재 참고하고 있는 논문) 은 해당 논문의 6. Conclusion and discussion에서 Future work로 "It will be interesting to explore methods that allow such agents to communicate, e.g. by sharing their learned knowledge."라고 언급하면서 후속 논문은 이에 대한 내용일 것이라 예상할 수 있다. 그리고 와 이다. 이것이 앞선 논문의 후속 논문으로 보이며 첫번째 논문의 코드(tensorpack사용)을 pytorch로 refactoring함..

[NGINX] EC2에 nginx 설치 및 세팅

첫 번째 프로젝트로 진행한 SAFU 웹 서비스 을 배포하기 위해 서버 구축을 하려하며, '서버 단위의 로드 밸런서' 아키텍쳐 중 애플리케이션 서버가 (일단은)하나인 아래의 구성으로 진행하고자 한다. 순서는 1. EC2 배포 및 inbound 설정 2. ACM 에서 SSL 인증서 발급 3. ELB 생성 및 리스너 세팅 4. Route53의 도메인과 ELB의 인스턴스 DNS 연결 5. EC2에 nginx 설치 및 세팅 으로 진행 될 것이다. 이번에는 5. EC2에 nginx 설치 및 세팅 에 대해 정리해보고자 한다. NGINX란 서버 인스턴스에는 클라이언트의 요청을 처리해주는 서버 소프트웨어가 필요하다. 서버 소프트웨어는 크게 웹 서버와 웹 애플리케이션 서버(WAP; Web Application Server..

Dev/DevOps, Infra 2021.01.15

[Network] 네트워크 기본 용어

AWS 배포를 하면서 가장 많이 드는 생각은 '네트워크 공부 좀 해야겠다..' 였다. 이제는 원리를 파악하고 깊이 고민해야하는 단계인 것 같다. 천천히 해보자 1. 가정에서 하는 랜 구성을 통해 살펴보는 Router, IP 두 대의 컴퓨터가 인터넷을 통해 '통신'을 하며 정보를 주고 받는다고 하자. 이때 '주소'에 해당하는게 IP address. 인터넷 사용은 1. 통신사와 계약해서 회선을 받는다. 2. 이 회선을 꼽는 순간 ip가 부여된다. 그런데 그 회선을 하나의 노트북에'만' 꼽는건.. 요즘 별로 없을 것이다,. 왜 ? 스마트폰, 노트북 2~3대 모두 인터넷을 사용하고 싶으니까! 그럼 인터넷을 사용하려면? Ip address가 필요하다고 앞서 간단히 살펴보았다. 그럼 인터넷 회선을 2~3개 또 계약..

[RDS] 데이터베이스 서버 생성과 접속

첫 번째 프로젝트로 진행한 SAFU 웹 서비스 을 배포하기 위해 서버 구축을 하려하며, '서버 단위의 로드 밸런서' 아키텍쳐 중 애플리케이션 서버가 (일단은)하나인 아래의 구성으로 진행하고자 한다. [EC2] AWS를 이용한 서버 환경 이해 및 구축에 정리해둔 를 보면 단일서버의 여러 단점으로 인해 애플리케이션과 데이터베이스 서버를 분리하는 구조가 나왔다. 그리고 서버 단위의 로드 밸런서는 이런 구조로 되어 있다. 여기서 RDS로 데이터베이스 서버를 만들어보고자 한다. 1. Amazon RDS(Relational Database Services) Amazon RDS는 클라우드에서 관계형 데이터베이스를 간편하게 설정, 운영, 확장 할 수 있는 서비스이다. 이는 매우 비싸다. (프리티어는 RDS 단일 AZ(..

Dev/DevOps, Infra 2021.01.13

12. SAFU 웹 서비스 README

SELECT ALL FROM USERS 📝 최근 비전공자들의 움직임이 심상치 않습니다! 개발자가 되기위해서 부트캠프를 찾는 분들이 많아지고 있는데요, 아무것도 모르는 비전공자의 입장에서 어떤 부트캠프가 좋고 나에게 맞는 곳인지 어떻게 알 수 있을까요? 이미 부트캠프를 경험한 선배들의 솔직한 후기가 절실한 지금! *"당신에게 가장 잘 맞는 부트캠프는 어디일까요?"* Development Stack 👷 🔧 🔨 JavaScript, React, React-Hooks, React-Select, React-Router, CSS JavaScript, Node.js, Express, MySQL, Sequelize DevOps AWS - EC2, ELB, Route53, S3, CloudFront, AWS Certif..

11. SAFU 웹 서비스 배포 완성기

AWS 공부와 병행하여 배포를 진행하였기때문에 AWS 카테고리에 정리 및 저장해 놓았습니다. 여기에는 링크를 순서대로 삽입하는 것으로 대신하겠습니다. Server Side 1. [EC2] AWS를 이용한 서버 환경 이해 및 구축 2. [ACM] 도메인 주소 생성 및 AWS Certification 3. [ELB] Elastic Load Balancer 생성 및 세팅 4. [Route 53] Route53의 도메인과 DNS 연결 5. [NGINX] EC2에 nginx 설치 및 세팅 Database 1. [RDS] 데이터베이스 서버 생성과 접속 Client Side 1. [ACM] 도메인 주소 생성 및 AWS Certification 2. [S3] S3를 이용한 정적 웹 사이트 호스팅 3. [CloudFro..