본문 바로가기

전체 글14

AWS 컨테이너 서비스 3-Tier 구성 w/Terraform & CI/CD 파이프라인 구성하기 - (2) 데모 애플리케이션 개발 본격적인 아키텍쳐 구축에 앞서 간단한 방문자 기록 애플리케이션을 개발할 것이다.데모 애플리케이션 구조 개요프론트엔드 : React (정적 페이지) → S3 + CloudFront에 배포백엔드 : Springboot (REST API) → ECS / EKS 에 배포 백엔드 (Springboot) 애플리케이션 개발API/health : 헬스 체크/api/visit : POST 요청으로 이름 + 방문 시간 저장/api/visits : GET 요청으로 전체 방문기록 반환Spring Initializer 설정하기https://start.spring.io/현재 로컬 환경에 Java 21 버전이 설치되어있어 21버전으로 맞춰서 생성해줬다.코드 구조build.gradledependencies { ... // JP.. 2025. 6. 2.
AWS 네트워크 - VPC 간 연결(VPC Peering, Transit Gateway), 온프레미스-VPC 연결 (Direct Connect, Site-to-Site VPN) VPC 란 AWS에서 제공하는 가상 네트워크 서비스.하나의 VPC에 다양한 역할을 하는 시스템을 두면 VPC 내부의 통신 제어가 복잡해지므로, 일반적으로 몇개의 VPC 혹은 여러개의 AWS 계정에 나누어 시스템을 배치시킨다.VPC는 독립된 네트워크 공간으로, 다른 시스템들 사이에 임의로 통신을 수행할 수 없다. 따라서 VPC간 통신을 위해서는 VPC 피어링, AWS Transit Gateway 라는 별도의 서비스가 필요하다. VPC 간 연결VPC PeeringVPC 사이를 연결하는 기능을 제공한다.연결한 VPC는 각각의 VPC에 상대 VPC의 CIDR로의 라우팅을 설정해 상대 VPC의 가상 서버와 통신할 수 있다. 서로 다른 리전에 위치한 VPC간 피어링 설정 시에는 프라이빗 IP를 통해 통신 가능하다... 2025. 6. 1.
AWS 컨테이너 서비스 3-Tier 구성 w/Terraform & CI/CD 파이프라인 구성하기 - (1) 개요 및 상세 아키텍쳐 개요AWS 환경의 대표적인 컨테이너 서비스인 ECS와 EKS 기반의 3 -Tier 아키텍쳐를 구축하고 CI/CD 자동화 파이프라인을 구성해 각 환경을 비교해볼 예정이다.공통 구성요소Terraform 활용 IaC 기반 인프라 구성Spring Boot 애플리케이션은 JAR + Docker 방식으로 패키징내장 tomcat을 사용해서 별도의 WAS 없이 자체적으로 구동된다.CI/CD는 GitHub Actions, Jenkins, ArgoCD, CodeDeploy 등 상황에 맞게 구성Github 레파지토리 : 백엔드, 프론트엔드 프로젝트 및 Terraform 코드 저장소로 활용NAT : 프라이빗 서브넷에 위치한 리소스가 인터넷 접근이 필요할 때의 경로 상세 아키텍쳐1. AWS ECS + Fargate 기반 3-T.. 2025. 5. 30.
Ubuntu 22.04에서 awscli 설치 관련 이슈 문제상황ubuntu에서 awscli 설치하려고 하니 다음과 같은 에러가 발생했다.Ubuntu 22.04에서는 awscli가 apt 패키지로 제공되지 않는다.→ Ubuntu 24.04용 패키지(noble)는 제공되지 않는다는 의미“Candidate 없음” → 설치할 수 있는 버전이 없다는 것해결 방안pipx로 설치하기→ Ubuntu는 시스템의 Python 환경을 보호하기 위해 pip로 직접 시스템 전역에 설치하는 걸 금지하기때문에 pip보다는 pipx 권장됨# 파이썬 설치sudo apt update && sudo apt install python3.12-venv# 가상환경 디렉토리 생성 및 가상환경 활성화python3 -m venv venv && source venv/bin/activatepip insta.. 2025. 4. 15.
EC2에서 OpenVPN 서버 Docker container로 구축하기 OpenVPNOpenVPN은 가상 네트워크 인터페이스(TUN/TAP) 를 생성하여 사용자의 트래픽을 VPN 서버로 우회시키는 방식으로 작동한다.UDP 1194 포트를 기본 사용 (포트 변경 가능)클라이언트는 .ovpn 설정 파일을 통해 서버와 TLS 기반으로 통신사설망 자원(RDS, EC2 등)에 안전하게 접근 가능이전에는 AWS Marketplace에서 제공하는 OpenVPN 솔루션을 사용했지만, 사용자 수에 제한이 있고 새로운 방식으로 시도해보고자 이번에는 Docker 기반으로 구성했다.다만 ovpn 파일을 직접 관리해야 한다는 점에서 보안상 취약하다는 단점이 존재한다.하지만 현재 상황은.. 소수의 인원이 단기간 사용하는 목적이고 일정 기간 이후에는 VPN 서버를 삭제할 계획이기 때문에 나쁘지 않은 .. 2025. 4. 7.
EC2 Instance Connect Endpoint(EIC Endpoint)로 VSCode에서 원격 접속하기 AWS EC2 Instance Connect Endpoint를 사용하면 퍼블릭 IP 없이도 SSH 접속이 가능하며, IAM을 이용해 접속을 제어할 수 있다.하지만 일반적인 SSH 클라이언트(예: VS Code Remote-SSH)와는 호환되지 않아 추가적인 설정이 필요하다.따라서 EC2 내부에서 직접 SSH 키를 생성하여 로컬에서 SSH 접속을 위한 인증 수단으로 사용해야 한다.그러면 드는 의문은..EIC Endpoint를 사용하는 이유가 SSH 키 관리를 안 하려고 하는 건데, 결국 SSH 키를 직접 생성해서 관리해야 한다면 의미가 있는가? 라는 생각이 들게 된다.그래서 "EIC Endpoint를 사용하면서 SSH 키 관리 부담 줄이기”를 위해 찾아보니 다음과 같은 방법이 있었다.SSH 키를 AWS S.. 2025. 3. 20.