[AWS] 고가용성 인프라 구축
DevOps/AWS2025. 5. 2. 15:01[AWS] 고가용성 인프라 구축

이 글은 인프런의 지식 공유자 박재성님의 강의를 듣고 개인적으로 정리하는 글임을 알립니다.가용성(Availability)이란 시스템이 서비스를 정상적으로 제공할 수 있는 가능성을 의미한다.서비스에 장애가 발생할 가능성이 극히 작은 시스템을 가용성이 높은(고가용성) 시스템이라고 말할 수 있다. 반대로 서비스가 다운되는 시간이 긴 시스템을 가용성이 낮은 시스템이라고 한다. 가용성을 높이기 위해서는 서비스 사용 불가능 시간을 최대한 발생시키지 않게 하고 설령 발생하더라도 그 시간을 짧게 만들어야 한다. 다운 타임을 줄이는 데 가장 중요한 설계 방법 중 하나가 시스템 이중화이다. 이 글에서 최종 구축하는 인프라 아키텍쳐는 아래와 같다.VPC에 가용 영역을 2개로 설정하고, 각 가용 영역에 퍼블릭, 프라이빗 ..

[AWS] VPC(Virtual Private Cloud)
DevOps/AWS2025. 4. 30. 21:20[AWS] VPC(Virtual Private Cloud)

이 글은 인프런의 지식 공유자 박재성님의 강의를 듣고 개인적으로 정리하는 글임을 알립니다.VPC의 개념VPC를 쓰는데 여러가지 이유가 있지만, 핵심적인 이유는 딱 한가지 보안 때문이다.VPC란 가상의 네트워크 공간을 의미한다. VPC를 활용하면 외부에서 직접 접근할 수 없는 독립적인 네트워크 환경을 구성할 수 있어서, 보안적으로 안전하게 리소스(EC2, RDS 등)를 사용할 수 있다. 예를 들어, EC2 인스턴스 2대가 있다고 가정하자. 그런데 1대의 인스턴스는 인터넷에 자유롭게 접근하면서 사용하고 싶고, 나머지 1대는 좀 더 안전하고 비공개로 사용하고 싶을 수 있다. 이럴 때 VPC를 활용하면 된다. VPC는 가상의 네트워크 공간이다.따라서 네트워크 공간의 크기를 정해야한다.AWS에서 EC2, RDS..

[AWS] AWS 글로벌 인프라
DevOps/AWS2025. 4. 30. 20:12[AWS] AWS 글로벌 인프라

IaaS, PaaS, SaaS, 온프레미스 온프레미스(On-Premise)모든 것을 직접 구축하고 운영하는 방식이다.서버, 네트워크, 운영체제, 애플리케이션까지 모두 내가 책임지고 관리해야 한다. IaaS (Infrastructure as a Service)인프라(서버, 스토리지, 네트워크, 가상화)만 빌려쓰는 방식이다.OS부터 애플리케이션까지는 내가 직접 설치하고 관리해야 한다.대표 예: AWS EC2, Azure VM, GCP Compute Engine PaaS (Platform as a Service)운영체제, 미들웨어, 런타임 환경까지 제공해주며, 개발자는 데이터와 애플리케이션만 올리면 되는 방식이다.대표 예: Heroku, AWS Elastic Beanstalk, Google App Engine..

[AWS + SpringBoot] 시간대 설정하기
DevOps/AWS2024. 9. 20. 11:53[AWS + SpringBoot] 시간대 설정하기

리전을 서울로 설정했더라도 EC2는 기본적으로 외국에 있기 때문에 날짜관련된 로직이 들어갔을 때 정상적으로 작동하지 않을 가능성이 있다. 아래의 두 가지 방법중 하나를 선택해서 이러한 문제를 해결할 수 있다. @PostConstruct를 이용해 타임존 변경애플리케이션 시작 시점에 명시적으로 JVM의 시간대를 설정할 수 있다. @SpringBootApplicationpublic class PromiseApplication { public static void main(String[] args) { SpringApplication.run(PromiseApplication.class, args); } @PostConstruct public void init() { // JVM의 기본 시간대를 Asia/Se..

[AWS] Mac 에서 터미널로 EC2 접속
DevOps/AWS2024. 9. 4. 03:42[AWS] Mac 에서 터미널로 EC2 접속

기본적인 접속 방법먼저 pem 파일의 위치로 이동해야한다. 이후 해당 파일에 권한을 부여한다.600이 아니라 400으로 권한을 줘도 상관없다.400 : 읽기 권한600 : 읽기 + 쓰기 권한 이제 접속하는일만 남았다.EC2의 퍼블릭 아이피는 AWS에서 확인할 수 있다.ssh -i 키페어이름.pem ec2-user@EC2퍼블릭아이피 ssh -i 키페어이름.pem ubuntu@EC2퍼블릭아이피 차이점은 Amazon Linux, CentOS의 경우 호스트 이름을 ec2-user이고, Ubuntu의 경우 호스트이름이 ubuntu이다.https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/managing-users.html Amazon EC2 Linux 인스턴스에서..

DevOps/AWS2024. 6. 30. 11:37[AWS, JPA, MySQL] Table doesn't exist

환경- Spring Boot 3.3.1- OS : Ubuntu 24.04 LTS (GNU/Linux 6.8.0-1008-aws x86_64) (프리티어)- DB : MySQL 8.X 문제 상황ubuntu:~/spring-ml-practice/build/libs$ sudo java -jar spring-ml-practice-0.0.1-SNAPSHOT.jar . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \( ( )\___ | '_ | '_| | '_ \/ _ | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / ..

DevOps/AWS2024. 6. 30. 11:11[Spring Boot, Linux] Error resolving template

환경- 스프링 부트 3.2.5-OS : Ubuntu 24.04 LTS (GNU/Linux 6.8.0-1008-aws x86_64) (프리티어) 문제 상황로컬 환경에서 타임리프를 사용한 스프링 부트 프로젝트를 실행할 때는 아무 이상 없이 html 템플릿 파일을 잘 찾아서 아무 문제를 느끼지 못했지만, 실제로 AWS를 통해서 배포할 때 문제가 발생했다.바로 Error resolving template 오류였다.이 오류를 해결하기 위해서 GPT와 몇 시간 동안 대화를 하고, 구글링에도 많은 시간을 쏟았다.결국 원인을 찾았지만, 그 원인은 조금 허무했다. 원인Thymeleaf에서 "Error resolving template" 오류가 발생하는 경우, 이는 일반적으로 템플릿을 찾거나 로드할 수 없음을 의미한다.하..

DevOps/AWS2024. 6. 30. 10:51[AWS EC2] 프리티어 인스턴스 사용시 Gradle build 시 무한 로딩 오류

환경-OS : Ubuntu 24.04 LTS (GNU/Linux 6.8.0-1008-aws x86_64) (프리티어)-인스턴스 유형 : t2.micro(1 GiB 메모리), (프리티어)-스토리지(ELB) : 1 x 30 GiB(gp3) 문제 상황./gradlew clean build위 명령어를 통해서 스프링부트 프로젝트를 빌드를 하는데 아무리 기다려도 완료가 되지 않았다. 원인스프링 부트 프로젝트를 빌드하는 과정에서는 많은 메모리를 필요로 하기 때문에, 메모리가 부족하면 빌드가 매우 느려지거나 아예 완료되지 않을 수 있다.t2가 메모리를 1GiB 만 제공하기 때문에 스프링 부트 프로젝트를 빌드하는데 실패한 것이었다. 해결 방법1. 인스턴스 유형을 업그레이드 하여 더 많은 메모리를 사용예를들어, 예를 들어..

image