aws 7

AWS ECR -> ECS 배포(VPC, 서브넷, NAT, ASG, 로드밸런서 등 전부!) 기초

개요 Ref.)https://blog.doctor-cha.com/ecs-in-depth AWS ECS를 이용하여 애플리케이션을 배포하는 방법을 기록해둔다. 이전에 PROD 및 DEV 환경별로 구분하고, CI/CD를 통해 자동으로 배포되도록 하기 위해서 여러 과정들을 거쳤다. ECR로 Docker Image 옮기기 AWS Credential(AcceesKey, SecretKey), github Actions - ECR CI 설정하기 S3 이미지 업로드 구현, Profile 설정 및 불러오기, Swagger 이미지 업로드(multipart) 코틀린 logback 환경 분리, validated 검증, exception 처리, CD 적용 이 글에서 다룰 요소들 네트워크: VPC, 서브넷(서브네팅), 로드밸런서,..

Project/Poppin 2024.01.14

업무에 바로쓰는 aws입문: 2. CloudFront, DynamoDB, API Gateway, CodeCommit, CodeDeploy

7. CloudFront CloudFront의 개념과 특징 CloudFront는 S3 버킷의 파일을 이용하여 정적이거나 동적인 웹사이트를 운영하는데 사용되는 콘텐츠 전송 네트워크(Content Delivery Network, CDN) 웹 서비스이다. 앞서 S3만 이용하면 HTML, CSS 등을 기반으로 정적 웹사이트를 운영할 수 있다고 배웠으나, CloudFront를 사용하면 동적인 웹사이트 호스팅도 가능해진다. 또한 여기서 CDN은 보통 웹 페이지에 대한 요청을 분산 처리해주는 분산 네트워크 시스템(Distributed Network System)을 뜻한다. 오리진(Origin): 최초로 웹사이트가 호스팅 되는 곳 엣지 로케이션(Edge Location): 오리진에서 웹사이트의 데이터를 받아서 컨텐츠의..

Bravo My Life/Books 2023.10.03

업무에 바로쓰는 aws입문: 1. IAM, EC2, RDS, S3, CloudWatch, Lambda

1. Iam(Identity and Access Management) IAM은 다른 기능과 달리 지역(AWS 리전)별로 적용되는 것이 아니라 유니버셜하다 사용자의 액세스 유형은 2개이다 프로그래밍 방식 액세스 AWS management console access 사용자의 액세스, 비밀키 관리 각 사용자를 생성하면 제공되는 액세스키와 비밀키는 생성 시점에만 확인이 가능하다. 따라서 따로 보관하고 유출되지 않도록 관리해야한다. 루트 사용자에 대한 액세스키는 생성하지 않는 것을 권장한다. 그리고 보안 액세스 키를 잊어버린 경우, 삭제하고 다시 만들어야한다. (https://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/id_credentials_access-keys.htm..

Bravo My Life/Books 2023.09.09

[TIL] python csv writer StringIO, BytesIO for AWS boto3

문제상황 AWS boto3가 BytesIO로 저장 양식이 정해졌을 때를 상정해서, python의 csv를 import하여 csv 파일을 만들 때 BytesIO를 이용하여 바로 csv.writer를 생성하면 byte 데이터를 넣어줘도 에러가 난다. data = ["a", "b"] writer = csv.writer(io.BytesIO()) b_data = [str(ch).encode() for ch in data] writer.writerow(b_data) 원인 AWS boto3는 BytesIO로 입력을 받는데 csv는 writer로 StringIO만 받기 때문이다. 해결책 converting 과정을 추가한다. data = ["a", "b"] str_buffer = io.StringIO() writer =..

[TIL] AWS Lambda, CloudFormation, Gateway

람다 서비스 구조 AWS Lambda로 AWS에서 Function Resource를 만들어서 하나의 서비스를 처리하도록 만들 수 있다. 작은 서버와도 같아서, 기존 서비스와는 별개로 요청을 받고, 어떤 작업을 처리하고 응답을 내보낼 수 있는 구조이다. 람다는 내부 용량 제한이 있는데, 만약 이 용량 제한이 512MB라면 작업을 처리하기 위한 모든 파일을 포함하기에는 부족하다. 서버를 띄우기 위한 일부 코드와 파이썬 프로그램 등만 포함해도 512MB를 초과할 수 있다. 따라서 람다에 필요한 라이브러리 등의 코드들은 직접 포함하지 못하고 Layer라는 참조 정보만 포함하게 된다(단순하게 표현하자면 특정 라이브러리를 다운로드 받을 수 있는 URL). 실제 람다 실행 시에 Layer 정보를 참조로하여 다른 라이..

Django로 Pinterest 따라 만들기[3부 AWS] - 23. AWS EC2 생성, Docker 연결 및 Portainer 설치

1. AWS EC2 생성 및 접속 기존 강의에서 진행했던 VULTR 서버 대신 AWS 환경에서 EC2 서비스로 가상 서버를 구동한다. AWS에 회원가입을 하고 EC2에 접속하면 된다. 다만, EC2를 구동하는 동안 비용이 청구될 수 있으니 학습만 하고 EC2를 삭제하는 것이 좋다. 포트 AWS의 EC2의 포트는 막혀있는것이 기본값이다. 따라서 사용을 원하는 포트값을 열어주어야만 한다. 키 페어 aws는 ID/PW 방식 외 키페어 방식을 통해 보안 설정을 한다. 맨 먼저 키 페어를 생성해본다. OpenSSH 형식을 사용할 것이므로 .pem 형식으로 생성한다. 생성한 키는 다운로드해서 갖고 있어야한다. 다운로드 시에 반드시 사용자 키를 C:\Users\{사용자 이름} 디렉토리에 위치시켜야한다! 아니면 .pe..

2020/11/11 TIL : AWS/local 서버 생성, AWS DB 생성, 서버-DB 연결

11월 11일 1. Git Flow 파악 2. 서버 및 DB 생성, 연결 항목(시간순 정렬) 방법 정보 유의점 Git flow 확립 우측 그림 참조 -upstream의 Dev repo.를 default로 설정, -local에서 본인 repo.로 업로드 시, git push origin feature#00 입력 EC2 서버 생성 및 접속 - 생성 방법은 매뉴얼 참조 - 우측 '정보'란의 퍼블릭 DNS 주소를 터미널에 입력 AWS- EC2 - 인스턴스 - 인스턴스 이름 클릭 - 연결 - SSH 클라이언트 - 퍼블릭 DNS 주소 복사 -local PC에서 .ssh 폴더에 pem key 파일 존재 -터미널의 디렉토리 위치를 .ssh 폴더로 지정 후 명령어 입력 - 플랫폼을 Ubuntu로 만들어주어야 한다. 서버..