목록전체 글 (34)
지석이의 일기

지난 시간엔 nginx 를 서버에 설치하는 방법을 포스팅 했다. 이번에는 도커를 통해 docker repositories에 존재하는 nginx 기능을 이미지로 가져와 바로 사용하는 과정을 포스팅 해보겠다. 1. docker 설치서버에 도커를 설치해주자.아래 명령어는 필자가 한번에 설치란 bush 명령어다.sudo yum install -y yum-utils device-mapper-persistent-data lvm2sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.reposudo yum install -y docker-ce docker-ce-cli containerd.io sudo systemctl ..

Google Cloud Platform(GCP)에서 서버를 호스팅하는 방법에 대해 알아보자. 최초 가입자의 경우 300$치의 호스팅 비용을 공짜로 사용할수있기에 서버 테스트 및 dev과정은 여기서 하기로 했다.1. GCP 계정 만들기먼저, GCP를 사용하기 위해서는 기본적으로 당연히 구글 아이디가 있어야한다.GCP 홈페이지에 접속.2. 프로젝트 생성GCP에 로그인한 후, 새로운 프로젝트를 생성. VM만들기를 선택해주면 된다.적당히 내가 필요한 사양의 서버를 할당받는다.3. VM 인스턴스 생성이제 가상 머신(VM) 인스턴스를 생성하자.왼쪽 메뉴에서 "Compute Engine" > "VM 인스턴스"로 이동"인스턴스 만들기" 버튼을 클릭.필요한 설정(이름, 지역, 머신 유형 등)을 입력.운영 체제로는 Ubu..

조용히 java 프로젝트 운영중 갑자기 로그인이 안된다는 소식을 듣게됨. 로그인 해보니 자꾸 로그인 페이지로 튕기는 현상이 발견. A페이지(로그인 페이지): 로그인정보 받음. B로 FORMSUBMIT함. B페이지: A정보를 기반으로 AUTH체크후 session.setAttribute("UserInfo", sessionMap); 함. 이후, 유저 페이지로 전환되어야 하는데, A페이지로 전환됨.당연히 유저페이지에서 유저 세션 체크 후 유저 세션이 없으니 A페이지로 전환되는 현상 확인. 세션이 유지 되지 않는 점을 확인. 그리하여 아래와 같은 원인 분석에 나섬1. session.setAttribute 이후 try catch 로 session 정보가 날아간걸까?==> 페이지 리다이렉션 직전에 session.g..

웹 개발을 하다 보면 프론트엔드와 백엔드 간의 통신에서 CORS(Cross-Origin Resource Sharing) 문제를 자주 마주하게 됨. 특히 Axios를 사용해 Spring Boot 서버와 통신할 때, CORS 설정이 올바르지 않으면 요청이 차단되곤 함.CORS란 무엇인가?CORS는 웹 브라우저에서 서로 다른 출처 간의 리소스 요청을 제어하는 보안 기능임. 기본적으로 브라우저는 다른 출처의 리소스에 대한 요청을 제한함으로써, 악의적인 사이트에서 사용자의 정보를 탈취하는 것을 방지함. 하지만 개발 중에는 이 제한이 불편할 수 있음.CORS 문제 발생 원인Axios를 통해 Spring Boot 서버에 요청을 보낼 때, Authorization과 같은 사용자 정의 헤더를 포함하면 브라우저는 프리플라..

cerbot renew 를 해놓은지 몇달이 지났는데, 잘되던 자동 업데이트가 고장이 났는지,,, 언제부터인지 작동이 되고 있지 않았다. 로그를 확인해보자.IMPORTANT NOTES: - The following errors were reported by the server: Domain: {나의도메인} Type: unauthorized Detail: {나의IP}.80: Invalid response from http://{나의도메인}/.well-known/acme-challenge/FI-192LHhyZ3ovzf6-wrqxfh-lN1dCGm1hTl8rFQaY0: 404 To fix these errors, please make sure that your domain name wa..

지난 시간에 S3와 Cloudfront 를 연계해서 Cloudfront 를 통해서만 이미지를 호출 할수 있도록 실습해 보았다. 그런데 Cloudfront 를 호출하면 호출 할수록 비용이 든다. URL만 누군가가 가져간다면 누구도 모르게 트래픽이 쌓일수도 있다는 것이다. 그러므로, Forntend 가 있는 서버만 ip 허용을 하여 frontend에서만 이미지를 호출 할수 있도록 해보자.AWS 콘솔에서 WAP 을 검색해서 IPSETS - CREATES IP SET으로 IP 모음집(?)을 생성 해주자 IP SET NAME => IP모음의 이름 설정DESCRIPTION => IP모음 설명CloudFront 를 사용해야하기때문에 Global을 선택.IP addresses 에 이미지 호출을 허용시킬 ip와 /32..

이전 시간에 S3를 이용해서 파일을 저장하는 방법을 확인했고, 그 파일을 바로 URL로 호출하는 것까지 확인을 했다. 그런데 왜 굳이 CloudFront 를 또 연계 해야하나? 한번 알아보자. CloudFront란 무엇인가? CloudFront는 AWS에서 제공하는 CDN(Content Delivery Network) 서비스야. 간단히 말해서 전 세계 여러 위치에 데이터를 복사해 두고, 사용자가 요청했을 때 가장 가까운 위치에서 데이터를 제공해서 빠르게 내용을 볼 수 있게 해주는 시스템이지. CloudFront 를 사용해야 하는 특징 4가지빠른 속도: 전 세계에 분포된 엣지 로케이션을 통해 사용자에게 데이터를 빠르게 전달해. 확장성: 트래픽이 많아도 자동으로 스케일링돼서 성능 문제 없이 서비스를 제공해..

낮은 사양의 서버를 호스팅하거나, 대량의 이미지 파일들을 저장할경우 cdn 을 사용하거나 다른 nas를 사용해서 파일을 저장한다. S3는 Amazon Simple Storage Service의 약자로, 웹에서 데이터를 저장하고 검색할 수 있는 무한한 저장 공간을 제공한다. S3 특징들 1. 무한한 저장 공간 너의 모든 데이터를 무한히 저장할수 있고,사용한 만큼만 비용을 지불한다. 2. 높은 내구성과 가용성 내가 올린 데이터를 여러 저장소에 저장하기에 물리적으로 문제가 생긴다해도 내 파일의 무결성을 보장한다. 3. 보안 데이터는 전송 중이나 저장 중일 때도 암호화된다. 4. 간편한 데이터 관리 데이터 라이프 사이클 관리, 자동 아카이빙 등 다양한 기능을 통해 데이터를 쉽게 관리할 수 있다. S3를 사용하기..

이번에 세미 프로젝트용으로 채팅을 구현하기로 했다. 서버는 Spring boot , 프론트는 React 로 구성했다. 채팅 기술스택은 websocket 을 사용하려고 한다. WebSocket의 기본 원리 WebSocket 프로토콜은 ws (또는 보안 연결을 위한 wss) 스키마를 사용하여 작동. 클라이언트(보통 웹 브라우저)는 WebSocket 객체를 생성하여 서버에 연결을 시도한다. 이 연결 과정은 HTTP 프로토콜을 사용하여 시작되며, Upgrade 헤더를 통해 WebSocket 연결로 전환. 연결 과정 핸드셰이크 요청: 클라이언트는 서버로 HTTP 요청. 이 요청에는 Upgrade: websocket과 Connection: Upgrade 헤더가 포함되어 WebSocket 연결로의 전환을 요청. 핸드..

이 저번에 react 프로젝트를 만드는 방법을 포스팅했었다. https://jisoekdays.tistory.com/24 이번에는 그 프로젝트를 서버에 올려서 다른 사람들도 접속할수있도록 구현을 하고 싶다. 현재 팀 사이드 프로젝트를 진행중이다. 그래서 msa 아키텍처를 다음과 같이 구성했다. 서버는 ec2 서버 2개를 받아서 FrontEnd 와 BackEnd 2개를 구현할 예정이다. 만일 AWS 서버 호스팅 방법에 대해서 궁금하면 https://jisoekdays.tistory.com/2 여기서 확인하자. React는 단순 정적 프로젝트로서, nginx에서 호출시킬 예정이다. 통상 S3 + CloudFront를 받아 배포시키지만, 나는 Web서버에 다른 기능들도 넣을 예정이라 ec2를 받아 위와 같이 ..