목록분류 전체보기 (92)
개발일지
1. Network is unreachableCannot initiate the connection to deb.nodesource.com:443 (2606:4700:10::6816:41a). - connect (101: Network is unreachable)Cannot initiate the connection to ap-northeast-2.ec2.archive.ubuntu.com:80 (2406:da12:944:ae00:c128:62c8:e380:bcd6). - connect (101: Network is unreachable)원인: 외부 네트워크 차단 됨해결NAT Gateway 구성 여부 확인서브넷 라우팅 테이블에 IGW 연결 여부 확인EC2 보안 그룹 Outbound 허용 여부 확인 2. 4..
개요기존 프로젝트의 배포 전략을 Ansible→CodeDeploy 기반으로 변경하게 되었다. (이전 글 참고)CodeDeploy를 적용하기에 앞서, 실습 및 테스트를 하며 겪었던 시행착오를 기록해두고자 한다. 들어가기 앞서, CodeDeploy 배포 흐름을 간략히 표현하면 다음과 같다. 사전 준비CodeDeploy Blue/Green 배포(이하 B/G)를 위해 사전 구성해줘야하는 부분이 몇가지 있다. 실제 진행하면서 겪은 에러를 바탕으로 정리했다. 특히 권한 이슈로 몇번이나 재시도 했으니 꼼꼼히 살펴보자.. IAM 권한 설정IAM 권한은 AWS가 기본적으로 제공하는 managed에 기반했으며, 필요한 권한만 Inline Policy로 추가했다.EC2: IAM Role 부여 (생성 명: CodeDeplo..

목표로컬에서 Private 서브넷 EC2 안전하게 접속하기Private EC2에 git clone 받아 프로젝트 수동 배포하기 현 인프라 구조 파악현재 서버 구조는 다음과 같다. (이해를 위해 간소화했다.) 백엔드 서버는 Private Subnet에 존재하기때문에 외부에서의 접근이 불가능하다. 하지만 개발을 하다보면 해당 서버 내 로그 파일을 확인하거나 핫픽스 등 서버에 직접 접속해야하는 경우가 생긴다. 어떻게 접근할 수 있을까?이럴 때는 단순 SSH만으로는 접근이 불가하다. 로컬 PC와 Private EC2 사이를 연결해줄 중개자가 필요하다. 현재 고려한 방안은 크게 두 가지이다.Bastion Host구성이 간단하고 VSCode, Git과의 연동 편리보안 그룹 및 키 관리, 인스턴스 유지 등 관리 포인..

현 상황 및 문제 파악기존 배포는 Github Actions와 Ansible을 사용 중이었다. 당시에는 인프라 담당자가 따로 있었기때문에 문제없었지만 현재는 공백인 상태로 백엔드 개발만 하던 내가 인프라도 함께 담당하게 되었다. 그렇게 인프라 공부를 시작하게 되었고, 경험이 쌓일수록 현 배포 방식의 불안정하고 불편한 점들이 보이기 시작했다. 기존 배포 플로우현재 배포 흐름을 파악하기 위해 Github Actions부터 차근차근 살펴보았다.// workflowsname: 배포자동화on: push: branches: ["main"]jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name:..
현 상황현 서비스에는 host, tester, admin 총 세 타입의 유저가 존재한다.유저 역할마다 토큰 페이로드 정보가 다르고 역할 별로 다른 Guard를 사용하는 등. 일관성 없는 구조를 갖고 있다. 문제 파악 및 개선 방향해당 유저가 어떤 타입의 유저인지 알기 힘들다.역할 별로 JWT 가드를 분리할 만큼의 차이점이 없었다. 공통으로 관리하는게 효율적이라고 판단했다.admin+host, host+tester 등 다양한 권한 조합 필요하다. JWT 페이로드 개선하기기존export interface IHostJwtPayload { hostUuid: string; hostEmail: string;}export interface ITesterJwtPayload { testerUuid: number;..

문제 상황현재 vscode remote server를 사용해서 SSH 접속을 하고 있다. 종종 SSH 연결이 끊길 때가 있는데, 시간이 지나면 알아서 돌아오기도 하고 실제 인스턴스 자체에는 문제 없어 보였던 적이 많았다. 이 글을 작성하게 된 직접적인 원인은 SSH 접속해서 npm run start하기만 하면 OfflineError가 발생했다. 결론부터 말하자면 RAM 메모리 부족 때문에 나타나는 현상이었다. 이번 글에서는 OfflineError 원인을 찾기 위해 시도 했었던 과정들을 기록해보고자 한다.원인 파악1. 인스턴스 상태 확인대시보드 또는 aws-cli 사용$ aws ec2 describe-instance-status --instance-ids --region ap-northeast-2 인스턴..

6장. VPCAmazon VPC(Virtual Private Cloud) VPC란? AWS 전용 가상 네트워크 서비스로 AWS에서 제공되는 리소스만 설치 가능하다. VPC 구성 및 기능 기본적으로 Private한 네트워크, 외부와 통신하기 위해서는 인터넷, LAN 등이 필요하다. 네트워크/서브넷 범위, 라우팅 테이블, 게이트웨이 등 가상 네트워킹 환경 설정 가능 VPC 네트워크 특징 물리적인 라우터가 아닌 소프트웨어가 라우터 역할을 한다. → 라우팅 테이블 라우팅 테이블 하나에 서브넷 여러개 설정 가능 VPC 당 하나의 IGW 설정 가능, 명시적인 IP 주소가 부여 되지는 않는다. 서브넷 간의 통신은 라우터 없이 직접 통신할 수도 ..