Backend/Network 10

AWS 특강 - Databases

지난 포스팅에서는 Storage에 대해 포스팅을 하였다.Storage 같은 경우, 단순히 데이터를 저장하는 것을 목표로, 실제로 쿼리를 짜지 못하고 체계적으로 데이터를 저장하지 못한다. 효율적인 검색 및 조작, 고성능 트랜잭션 처리 같은것을 위해프로젝트에서 Database 또한 구축해주는 것이 좋다. https://jerry-k.site/entry/AWS-%ED%8A%B9%EA%B0%95-Storage AWS 특강 - StorageAWS 강의 2부이다.  1부에서는 Network compute에 대해서 배웠다. 전반적으로 어떻게 서버를 만들어야 하는지 느낌정도는 온 것 같다. 그럼 이제 만든 서버에 데이터들을 저장해야하는데, 이때 사용jerry-k.site ✨ AWS의 완전 관리형 Database 서비스..

Backend/Network 2024.12.11

AWS 특강 - Storage

AWS 강의 2부이다.  1부에서는 Network compute에 대해서 배웠다. 전반적으로 어떻게 서버를 만들어야 하는지 느낌정도는 온 것 같다. 그럼 이제 만든 서버에 데이터들을 저장해야하는데, 이때 사용하는게 스토리지이다.  데이터 종류에 따라 사용되는 스토리지에도  여러가지 종류가 있다. 오늘 포스팅은 그 부분에 대해서 다룬다. 전의 포스팅을 보지 않았다면, 꼭 보는 것을 추천한다!  https://jerry-k.site/entry/AWS-%ED%8A%B9%EA%B0%95-NetworkCompute AWS 특강 - Network_Compute이번 AWS 특강에서 최종 목표는 아래와 같은 아키텍처를 완성하는 것이다.  실제 프로젝트에서도 이렇게 아키텍처를 만들 수 있으면 좋을 것 같다. (이번 AW..

Backend/Network 2024.12.11

AWS 특강 - Network_Compute

이번 AWS 특강에서 최종 목표는 아래와 같은 아키텍처를 완성하는 것이다.  실제 프로젝트에서도 이렇게 아키텍처를 만들 수 있으면 좋을 것 같다. (이번 AWS 8시간 특강은 위의 내용들을 진행 한 것이라고 보면 된다.)   ✨AWS VPCAmazon Virtual Private Cloud(Amazon VPC)AWS 클라우드 내에서 사용자가 정의한 논리적으로 격리된 가상 네트워크를 제공사용자는 네트워킹 환경을 완벽하게 제어IP 주소 범위 선택, 서브넷 생성, 라우팅 테이블 및 네트워크 게이트웨이 구성 등 인터넷에 액세스할 수 있는 퍼블릭 서브넷과 인터넷 액세스가 제한된 프라이빗 서브넷을 생성웹 서버와 데이터베이스 서버를 각각 배치 가능보안 그룹과 네트워크 액세스 제어 목록을 통해 각 서브넷의 AWS 리소..

Backend/Network 2024.12.11

네트워크 소켓 및 함수 정리 (CS:APP)

✨ getaddrinfo( )int getaddrinfo(const char *hostname, const char *port, const struct addrinfo *hints, struct addrinfo **result); hostname과 port로 소켓 주소를 얻음IPv4 / IPv6 모두를 지원hostname은 얻고자 하는 호스트 이름  (NULL은 로컬 호스트 주소)hints는 결과 리스트 필터링을 위한 옵션 result 는 결과 리스트의 헤드성공 시 0을 반환 / 실패 시 오류 코드 반 ✨ socket( )int socket(int domain, int type, int protocol);네트워크 통신에서 사용되는 소켓 생성domain은 통신에 사용될 주소 체계 ( AF_INET(IP..

Backend/Network 2024.10.29

네트워크 핵심 키워드 정리 (네트워크 계층,소켓,CGI,HTTP,Proxy 등등)

📌 파일 디스크립터 (file descriptor)프로세스가 파일이나 입출력 장치에 접근할 떄 사용하는 일종의 "핸들"(여기서 핸들은 실제 자원과 프로세스 간의 연결을 추상화한 정수 값) 1. 파일 열기open() open() 함수로 시스템 호출을 사용한다. 호출이 성공하면 운영체제는 파일 테이블에 새 항목을 추가하고,참조할 수 있는 파일 디스크립터(정수)를 반환한다.  예를들어 파일을 열때 파일 디스크립터로 3이라는 숫자를 반환 받으면,프로세스는 3을 사용해서 그 파일에 접근 (보통 0,1,2는 기본적으로 표준 입력, 출력, 오류에 할당되어 3부터 시작됨) 2. 파일 읽기와 쓰기파일 디스크립터를 이용해아래와 같은 시스템 호출을 통해 데이터를 읽거나 쓸 수 있다.read(fd, buffer, size)..

Backend/Network 2024.10.28

SFTP 파일 전송 (VS Code 플러그인으로 원격 서버 파일 전송)

✨SFTP 란 ? SFTP (Secure File Transfer Protocol)은 안전하게 파일을 전송하기 위한 프로토콜로,원격 서버와 클라이언트 간에 데이터를 암호화하여 안전한 파일 전송을 보장한다.(기본적으로 SSH (Secure Shell) 기반으로 동작) STFP는 데이터 전송 과정에 모든 명령어가 암호화되어 일반적인 FTP보다 안전하다. SSH 기반이라 SSH의 포트 (기본적으로 22번)를 통해 통신하고,파일 업로드, 다운로드, 권한 변경, 삭제, 이동 등의 작업도 가능하다. 보통 로컬 파일을 원격 서버에 업로드, 다운로드, 동기화에 사용된다. FileZilla 같은 GUI 기반의 SFTP 클라이언트를 사용해도 되는데,이번 포스팅에서는 VS Code의 플러그인의 사용에 대해 작성한다.   A..

Backend/Network 2024.10.03

AWS EC2 서버 세팅 및 배포 / 몽고DB 도메인 연결하기 (A~Z까지) feat. Flask서버, Filezilla,Studio 3T,Gabia

이번 포스팅에서 AWS 인스턴스를 만들고, Flask 서버 배포, 그리고 도메인을 사용한 배포 까지 정리 해볼 예정이다.  📌몽고 DB와 Studio 3T가 설치 되어 있다는 전제로 포스팅 AWS를 처음 사용하면 1년동안 프리티어를 무료 사용 가능하다. 내용이 엄청 기니까 ....잘 봐보자  📚 목차1. 인스턴스 만들기2. EC2 포트 열기3. git bash 설치4. 로컬 환경에서 AWS EC2 연결5. Filzilla로 AWS 관리하기6. 서버에 DB 세팅7. 서버 도메인에 연결하기  📘인스턴스 만들기 AWS에 회원가입을 했으면, EC2에 들어간다(EC2는 자주 쓰이니까 즐겨찾기하면 편하다.)   일단 먼저 국가를 서울로 바꾸고 ,아래 인스턴스 시작을 누르면 된다.   인스턴스의 이름을 입력해준..

Backend/Network 2024.07.27

OpenSSL 다운로드 및 자체 서명 HTTPS

🔍 OpenSSL를 설치하여 자체 서명 Flask로 열은 서버에서 JS를 통해 사용자의 카메라에 접근을 시도했는데,물리적 인터페이스에 접근하려면 HTTPS의 서버 URL이 필요했다 . HTTP는 HyperText Transfer Protocol을 의미하는 것으로,  서버와 클라이언트의 통신 프로토콜이다.해당 프로토콜을 통해 데이터를 일반 텍스트로 교환하는 방식인데, 이 과정에 제 3자의 데이터 탈취 및 오남용이 생길 수도 있다.  HTTPS는 HTTP에 Secure을 더한 것으로, CA(독립된 인증 기관)으로 부터 SSL / TLS 인증서를 요구한다.즉, 데이터 교환 전에 브라우저와 인증서를 공유하여 안정성을 확보한다. 하지만 CA로부터 인증서 받기는 쉽지 않는데, 이러한 점을 자체 서명으로 해결 할 ..

Backend/Network 2024.07.01

Flask로 서버 배포하기 (AWS EC2)

Flask 코드를 작성하고 실행하면, 로컬 IP주소가 터미널 창에 뜬다. 이 주소는 같은 IP인 사람만 접근 가능하고, 외부 IP는 접근이 불가능하다. flask 서버를 퍼블릭으로 배포하고 싶어서 이것저것 유튜브로 보며 찾아봤다. 솔직히 이해도 잘 안되고 어려웠던 것 같다. 그나마 가장 간단하게 퍼블릭 주소를 배포하는 것은 AWS에서 EC2 인스턴스를 실행하는 것 같다. 그래서 간단하게 서버를 만드는 방법을 포스팅해본다. (아래 서버 배포는 기본적으로 Flask로 작성된 코드가 있고 AWS 가입 됐다는 전제로 진행) - 인스턴스 생성 EC2 대시보드에 들어간 후, 인스턴스 시작 (주황 버튼)을 클릭한다. 이름은 아무렇게나 지어주고, Ubuntu 클릭하고, 프리티어 사용 인스턴스 유형은 t2.micro로 ..

Backend/Network 2024.03.25

Network,TCP/IP protocol 기본 개념 (컴퓨터 지식)

Network의 사전적 의미는 통신이 가능한 서로 연결된 장치의 모임이다. [네트워크의 구조] 1. Point-to-Point - 두 장치간의 전용 링크 ex) TV - 리모컨 2. Multipoint - 3개 이상의 특정 기기가 하나의 링크를 공유 [네트워크 범위] 1. PAN (Personal Area Network) - 개인 장치 네트워크 - 매우 제한적이고 짧은 영역 ex) 블루투스, 무선 키보드 2. LAN (Local Area Network) - 개인, 사무실, 학교 등에 있는 호스트 연결 - private 네트워크여서 외부 통제 불가능 - 컴퓨터 자원을 로컬 영역 네트워크에서 공유가능 - 관리자에게 권한이 많아 개인 정보 보호 기능 없음 ex ) 군대 또는 사무실 인트라넷 3. WAN (Wi..

Backend/Network 2023.10.24