목록클라우드서비스 (12)
주뇽's 저장소
S3와 CloudFront 캐시 무효화: Lambda와 Boto3를 활용한 두 가지 방법 🛠️AWS S3와 CloudFront는 웹 애플리케이션에서 정적 파일을 효율적으로 제공하기 위한 필수 도구이다. 특히, S3는 파일을 저장하고, CloudFront는 이러한 파일을 전 세계적으로 빠르게 제공할 수 있도록 돕는다. 하지만 웹 애플리케이션을 운영하면서 파일이 업데이트되었을 때 CloudFront의 캐시가 갱신되지 않는 문제가 발생할 수 있다. 이때 캐시 무효화를 통해 최신 파일을 사용자에게 즉시 제공할 수 있다.이번 글에서는 S3와 CloudFront를 사용하는 이유부터 왜 캐시 무효화가 중요한지를 설명하고, 이를 해결하는 두 가지 방법(Lambda와 Boto3)을 소개한다. 이 방법들을 통해 웹사이트..
AWS RDS에 PostgreSQL 설정 및 로컬 접속 가이드아마존 RDS를 이용하여 PostgreSQL을 설정하고 로컬에서 이를 접속하는 방법을 단계별로 설명한다. 이 가이드는 처음 설정하는 사람도 쉽게 따라할 수 있도록 구성했다.1. RDS에서 PostgreSQL 인스턴스 생성먼저, AWS Management Console에 로그인한 후 RDS 서비스로 이동한다. "데이터베이스 생성(Create Database)" 버튼을 클릭하고 다음 단계에 따라 PostgreSQL 인스턴스를 생성한다:데이터베이스 엔진 선택: PostgreSQL을 선택한다.DB 인스턴스 클래스, 스토리지, VPC 설정: 필요한 리소스와 네트워크 설정을 구성한다.관리자 계정 생성: 데이터베이스 관리자 계정의 이름과 비밀번호를 설정한다..
0. 사전 준비- AWS 액세스 키와 시크릿 키 발급- AWS CLI 설치1. 프로젝트 구조 설정먼저, 다음과 같은 디렉토리 구조를 설정한다:my-fastapi-app/├── app│ ├── controller│ │ ├── __init__.py│ │ └── NickController.py│ ├── dto│ │ ├── __init__.py│ │ ├── NicknameProfileRes.py│ │ ├── NicknameReq.py│ │ ├── NicknameRes.py│ │ └── ProfileImageReq.py│ ├── generation│ │ ├── __init__.py│ │ ├── makeNickname.py│ │ └── makeProfile.py│ ├── service│ │ ├── __init__...
이번 글에서는 리액트와 스프링부트 애플리케이션을 하나의 도커 컨테이너에 담아 AWS EC2에 배포하는 방법을 설명한다. 이 과정은 프론트엔드와 백엔드 애플리케이션을 빌드하고, 이를 하나의 도커 이미지로 만든 후 AWS EC2에 배포하는 단계로 진행한다. 프로젝트 구조프로젝트의 디렉토리 구조는 다음과 같다:/Myapp ├── Backend (스프링부트 애플리케이션) └── reactworkspace/Myapp (Vite + React 애플리케이션)1. 프론트엔드 애플리케이션 빌드먼저 프론트엔드 애플리케이션을 빌드한다. Vite를 사용하여 리액트 애플리케이션을 빌드하는 방법은 다음과 같다:cd 자신의 프론트 루트 폴더npm installnpm run build위 명령어가 성공적으로 실행되면 dist 디..
IaaS(Infrastructure as a Service)하드웨어, 네트워킹, 가상화(AWS의 경우 EC2)만 제공하고 나머지는 담당해야함ex) 리눅스 인스턴스에 파이썬 앱을 배포한다고 가정리눅스 설치 -> 파이썬 설치 -> 애플리케이션 설치OS 업데이트, 애플리케이션 런타임, 오토 스케일링, 로드밸런싱, 등등 직접 해야함PaaS(Platform as a Service)IaaS의 대안이 되며 클라우드가 제공하는 플랫폼을 사용하드웨어, 네트워킹, 가상화(AWS의 경우 EC2), OS, Application Runtime을 제공하고 Application만 담당파이썬 코드와 원하는 파이썬 버전을 실행OS, 파이썬 설치는 신경쓰지 않고 애플리에키션 코드만 담당OS 업데이트, 애플리케이션 런타임, 오토 스케일링..
AWS IAM : 인증과 권한 1. IAM (ID and Access) 그룹 생성 IAM 검색 후 클릭 사용자 그룹 -> 그룹 생성 -> 'Developers' 이름으로 생성 권한 정책 연결 -> AdministratorAccess 검색 후 체크-> 생성 2. IAM 유저 생성 사용자 -> 사용자 추가 -> parkJun_dev(자신의 사용자 이름) 권한부여 -> 항상 그룹에 사용자를 연결 -> Developers 체크 후 생성 3. IAM 유저 로그인 IAM 그룹 우측에 위치한 IAM Login URL을 통해 로그인 3. IAM 유저 로그인 IAM 그룹 우측에 위치한 IAM Login URL을 통해 로그인 클라우드 Regions and Zones 가정 : 런던 지역에 데이터 센터를 운영하고 거기서 애플..
도커 이미지 만들기 Hello 문구 출력 이미지 생성 1. 도커 파일 작성 도커 이미지를 만들기위한 설정 파일이며 컨테이너가 어떻게 행동해야 하는지에 대해 설정하는 파일 도커 파일 생성 순서 베이스 이미지를 명시해준다(파일 스냅샷) 추가적으로 필요한 파일을 다운로드 하기 위한 몇가지 명령어를 명시해준다.(파일 스냅샷) 컨테이너 시작시 실행 될 명령어를 명시해준다(컨테이너 시작 명령어) 도커 파일을 만들 폴더 생성 vscode를 사용하여 해당 폴더를 선택 dockerfile 파일 생성 코드 작성(기본 포멧) #-- 베이스 이미지를 명시 FROM baseImage #-- 추가적으로 필요한 파일들을 다운로드 RUN command #-- 컨테이너 시작시 실행될 명령어 CMD [ "executable" ] 2. ..
Redis를 이용하여 컨테이너 실행 Redis는 NoSQL 데이터 베이스 1. Redis 서버 실행 1번 터미널로 Redis 서버 실행 docker run redis 2. Redis 클라이언트 실행 2번 터미널로 Redis 클라이언트 실행 하지만 에러 발생 —# 독립된 컨테이너에서 서버가 실행중이므로 연결할 수 없다 —# 연결하기 위해서는 서버가 실행되는 컨테이너 안에서 클라이언트를 실행해야 함 3. 실행중인 컨테이너에 명령어를 사용하여 클라이언트 실행 ps 명령어를 통해 서버 ID 확인 docker ps exec 명령어를 이용해서 레디스 서버 안에서 클라이언트 cli 실행 이 때 그냥 실행하면 추가적인 명령어 실행이 불가능하다 추가적인 명령어 실행을 위해서 -it 플래그를 이용 docker exec -..