0. AWS ECR이란? Amazon ECR (Elastic Container Registry)는 AWS에서 제공하는 완전 관리형 Docker 컨테이너 이미지 저장소임 AWS 인프라와 긴밀하게 통합되어 있기에 ECS, EKS와의 통합 : ECR에 저장된 이미지는 ECS나 EKS에서 바로 가져다 쓸 수 있어 CI/CD 파이프라인과의 연동이 수월함=> EC2 인스턴스가 ECR에 접속해서 이미지를 push/pull 할 수도 있음IAM 기반 권한 제어 : 태그를 이용해 이미지 버전 관리를 할 수 있음보안 검사 기능 : 이미지에 보안 취약점이 있는지 자동으로 분석해주는 기능도 제공비용 효율성 : 저장 용량과 데이터 전송량에 따라 과금되며, 기본적으로는 사용한 만큼만 비용을 지불하면됨 다음과 같은 장점이 있음 =>..
AWS MFA에서 사용중인 패스키(디바이스)를 변경할 일이 생겨서 AWS MFA 변경 및 추가하는 방법을 공유합니다! 0. AWS MFA란? MFA (Multi-Factor Authentication)는 다단계 인증 방식으로, 사용자가 AWS에 로그인할 때 비밀번호 외에 추가적인 인증 수단을 요구하는 보안 기능임 위와 같이 2025년 6월 1일 기준 AWS에서는 총 3가지의 MFA 옵션이 존재함 AWS에서는 MFA는 보안권장사항인데 1. 계정 탈취 리스크 감소만약 누군가 비밀번호를 탈취하더라도, MFA 코드 없이는 접근 불가능하기에 계정을 탈튀당할 리스크가 줄어들고특히, 루트 계정은 모든 AWS 리소스에 대한 무제한 권한이 있어 보안 위협이 매우 크기에 필수적임2. AWS 보안 권장 사항에 포함됨..
프로젝트에서 AWS IAM을 사용해야 하는 이유 이번에 프로젝트를 진행하면서 AWS로 인프라를 구축하게 되었음 다른 글에서도 다뤘지만 AWS 루트 계정을 이용하는 것은 그렇게 좋은 방법이 아님(특히나 AWS 관련 작업을 하는 사람이 여러명인 경우) 보안 문제루트 계정은 모든 권한을 가지고 있어서 리스크가 너무 큼=> 이 부분에 대해서는 루트 계정은 MFA를 설정하고 초기 IAM 계정을 만든 후 사용하지 않는 것이 AWS Best Pracitce라고 함팀원들 각자 개별 계정을 가질 수 있음 (+ 유연한 권한 관리)IAM으로 각 팀원에게 개별 AWS 계정을 부여할 수 있고 IAM User, IAM Role을 사용하여 필요한 권한만 부여할 수 있음=> 조금 더 정확히는 하나의 AWS 계정이고 계정 내에서 개별..
개인적으로 찾아보며 정리한 내용이고 주관적인 생각이 들어있어오류 사항이나 더 좋은 피드백은 언제나 환영합니다..! 진행 중인 프로젝트에서 백엔드 서버는 아직 배포되지 않은 상태이고 백엔드팀 (2명) 모두 AWS로 인프라 구축을 진행해왔기에 AWS에 굉장히 익숙한 상황이라 자연스럽게 AWS로 전체 인프라를 구축하기로 예정되어 있는 상황이다현재는 사용자의 요청(사용자의 보이스)이 들어오면 인공지능 모델을 통해 보이스팩을 만들어 S3(스토리지)에 저장해주는 로직을 구현중에 있다그러던중 새로운 방식의 도입에 대해 고민해보게되는데... GCP Cloud Run 을 사용하자 GCP Cloud Run을 생각하게된 결론부터 말하자면 GPU 서버리스를 지원하기 때문이다. 서버리스를 사용하자 인프라 관리 부담 최소화 ..
국민대학교에서 "클라우드 컴퓨팅" 교과목을 진행하시는이경용 교수님의 강의 교안을 이용하여 수업 내용을 정리하였습니다 구동중인 서버에 문제 발생 시 해결 방안 => 가능한 모든 곳에서 자원의 시작, 종료, 설정을 자동화를 하는 것을 권장 수동으로 관리되는 자원들을 줄임으로 시스템의 안정성, 일관성, 효율성을 높이도록 해야함 DevOps Development : 서비스 개발 Operations : 서비스 운용 클라우드 서비스의 등장 및 웹 서비스 보편화에 따른 Development와 Operations의 경계 모호 웹 서비스의 빠른 개선 주기로 인한 간단한 릴리즈 사이클 필요=> 코드를 활용한 서비스 배포 보편화 (IaC) Infrastructure-as-Code (코드를 이용한 자원 관리) 서비..
국민대학교에서 "클라우드 컴퓨팅" 교과목을 진행하시는이경용 교수님의 강의 교안을 이용하여 수업 내용을 정리하였습니다 AWS High Availability (고가용성) Fault-tolerance와 Scalability 관점에서 살펴보자 고가용성 (High Availability)란? 서비스를 운용하는 사람이 관리를 하지 않아도 서비스가 동작하지 않는 시간을 최소화해서 사용자에게 예측된 성능을 제공해줄 수 있는 척도 고가용성의 구현 요소들 Fault tolerance 응용예제 자체에서 문제가 발생시에도 사용자에게 영향을 전파하지 않는 능력=> fault가 failure가 되지 않게백업 서버의 구동 등 Scalability 시스템의 디자인을 바꾸지 않고도 증가하는 요청을 처리할 수 있는 능력 사용자 ..
국민대학교에서 "클라우드 컴퓨팅" 교과목을 진행하시는이경용 교수님의 강의 교안을 이용하여 수업 내용을 정리하였습니다 Cloud Infrastructure 하나의 데이터센터에는 일반적으로 수천대의 서버가 장착되어 있음 데이터 센터 내에 서버는 랙으로 구성됨 => 같은 랙에서는 싱글 네트워크 스위치를 통해서 연결 => 여러 랙은 고성능 네트워크 스위치로 연결 AWS Infrastructure - Region & Availability Zone (AZ) Region 물리적 지리적 위치를 기준으로 구성된 자원 세트(미국 서부, 미국 동부, 아시아 서울, 아시아 일본 지역 등..) 하나의 Region은 최소 2개 이상의 Availability Zone으로 구성됨 Availability Zone 하나 또는 ..
프로젝트를 배포하던 중 AWS EC2에서 메모리 부족 현상으로 ssh 접속이 안되는 상황이 발생했다...(프리티어 사용중) 프리티어로 사용하게 되는 t2.micro 인스턴스 유형은 램이 1GB이기 때문에 메모리 부족현상이 일어날 수 있다! => swap file을 이용하여 swap memory 할당을 해보자!(현재 생성한 EC2는 ubuntu 환경임) EC2 램이 가득 찼기 때문에 실제 디스크의 용량을 이용하여 부족한 메모리를 대체할 공간을 swap memory 라고 함! => 보통 swap memory는 할당된 메모리의 2배를 추천하고 있다고 함! 스왑 메모리는 RAM을 대신하는 것이 아니라, RAM이 부족할 때 임시로 사용하는 비상 메커니즘으로 생각하는게 좋음=> 디스크에 저장된 스왑 메모리는 R..
EC2 인스턴스 생성 방법은 이전 포스팅을 참고해주세요!로컬에서 Docker 설정 Jar 파일 빌드하기 보통 빌드를 할 때 ./graldew clean build 를 많이 봤을텐데 이번에는 ./gradlew clean bootJar를 통해 Spring Boot 애플리케이션을 위한 실행 가능한 JAR파일만 생성했음 ./gradlew build는 bootJar를 포함하여 내부 동작이 더 길다반면, bootJar의 경우 단순히 프로젝트의 jar파일을 만드는 목적으로 빌드 속도가 빠르다(clean 작업은 build/ 와 같은 빌드 산출물 디렉토리를 삭제하여 이전 빌드 결과물을 모두 제거함) Dockerfile 생성하기# Dockerfile# jdk17 Image StartFROM openjdk:17# jar..
최근에 Co-Code라는 코딩 교육 플랫폼 프로젝트를 시작하면서 백엔드를 맡게 되었습니다!! 가장 먼저 하게된건 서버 배포하기... 바로 시작하겠습니다 가장 먼저 EC2부터 생성해보았다!(제 블로그 AWS에 인스턴스 생성 실습이 있으니 참고하시면 될 것 같습니다) => Ubuntu를 사용했음!! (+ 프리티어) 키페어도 만들어서 잘 보관해주고!! ssh -i "pem 파일 이름" ubuntu@ec2-"퍼블릭 ip 주소".ap-northeast-2.compute.amazonaws.com 이제 작업중인 환경에서 (저는 vscode를 사용하기 때문에 vscode 터미널을 이용했음) pem 파일 위치로 이동 후 위의 명령어를 입력하여 EC2 서버로 접속한다 그런데Permissions for 'key.pe..
'AWS 교과서' 책이 끝이 보이기 시작하네요.. 워드프레스 소개 지금까지 개별적인 AWS 서비스들을 학습해왔고 10장에서는 AWS 서비스를 활용하여 워드프레스(wordpress) 블로그를 구성하는데 여기서 워드프레스는 손쉽게 블로그, 웹 사이트, 쇼핑몰 등 웹 사이트를 제작할 수 있는 오픈 소스 플랫폼이다 웹 시스템 구성 요소 일반적으로 웹 시스템을 구성하려면 웹 서버, 웹 애플리케이션 서버, 데이터베이스 서버가 필요하다 웹 서버는 클라이언트 요청에 대해 정적, 동적 콘텐츠를 제공하며, 웹 애플리케이션 서버는 클라이언트 요청에 따라 동적 콘텐츠를 제공한다 그리고 데이터베이스 서버에서 데이터를 가져오거나 저장해서 활용한다 웹 사용자가 얼마 되지 않고 소규모일 때 웹 시스템을 하나의 서버에서 구성하여 서비..
이 장의 주제인 AWS 오토 스케일링 서비스를 살펴보기에 앞서, 먼저 스케일링은 무엇이고 어떤 종류로 분류되는지 이해해야 한다! 스케일링 스케일링이란 IT 측면에서 스케일링(scaling)이란 IT 자원을 확장하거나 축소하는 기능을 의미한다 IT 자원의 사용 요구는 항상 고정적이지 않고 특정 상황이나 이벤트에 따라 가변적이다 => 이렇게 IT 자원의 사용 요구가 가변적일수록 자원의 성능 및 수량을 확장하거나 축소하는 개념인 스케일링은 필수이다 (스케일링으로 IT 자원의 고가용성과 내결함성을 확보할 수 있음) 스케일링의 종류 스케일링 기법은 확장 및 축소 방향에 따라 수직 스케일링과 수평 스케일링으로 구분된다 수직 스케일링 수직 스케일링은 IT 자원의 용량을 확장, 축소하는 것으로 스케일 업(scale-u..