썸네일 [AWS] Nextjs cloudfront S3 배포 시 html 확장자 제거 (feat. lambda 함수 이용) 이번 글은 Nextjs로 AWS에 베포를 진행하는 과정 중 발생하였다. 처음에는 모든 페이지들이 정상적으로 작동하는 듯 싶었으나, 역시 그럴일이 없었다. Nextjs는 동적 라우팅 즉, Dynamic Loute를 지원한다. ex) www.~~~.com/products/1 위의 링크처럼 동적 라우팅이 있는 폴더 구조가 있다고 생각해보자. 결국 folder struct는 products 폴더 안에 [id].tsx와 같은 파일이 존재할것이다. 여기까지는 아주 좋다. 이제 문제는 지금부터다. AWS의 CloudFront를 이용하여 배포를 진행하였을 때 해당 동적 페이지로 들어가면 아무 페이지가 뜨지 않는다. 해결 방법은 .html 확장자를 명시적으로 넣어주는것이다. 하지만 매 페이지 요청 시 www.~~~.co..
썸네일 [Terraform]테라폼 모듈(module) 작성 방법 Terraform Module 작성 방법 module은 root module과 child module 로 나누어집니다. root module : terraform 커맨드가 실행 되고 있는 module child module : root module에서 리소스를 생성하기 위해 참조하고 있는 module block child module 작성 방법 먼저 파일구조입니다. 테라폼은 디렉토리에 있는 모든 *.tf 파일들을 읽습니다. 테라폼 컨벤션으로 보통 위 사진과 같이 정의합니다. versions.tf : provider / module 의 버전 의존성 variables.tf : variable 관련 outputs.tf : output 관련 main.tf : resources/data/module/local ..
썸네일 [Terraform]테라폼(terraform)state 관리(local,terraform cloud,s3) 이번 포스팅에서는 테라폼 상태(state)관리에 대해 알아보겠습니다. | 테라폼 상태(Terraform state)란? 테라폼 state 관리는 대표적으로 Local state 와 backend state로 나누어집니다. terraform init & terraform apply 명령어를 실행하면 다음과 같은 파일들이 생성됩니다. 다음과 같은 파일들은 local에서 관리됩니다. .terraform .terraform.lock.hcl terraform.tfstate .terraform.* 형태의 파일 : terraform init 명령어를 실행할 때 생성 terraform.tfstate: terraform apply 명령어 실행 후 생성 .terraform.lock.hcl은 잠금 파일이며 경쟁 상태에서 생..
썸네일 [AWS]로드밸런서(load balancer)란? 로드밸런서(Load Balancer)란? 로드 밸런서는 ELB(Elastic Load Balancer)라는 이름으로 밸런서를 제공합니다. 또한 서버가 죽지 않도록 알아서 관리해줍니다. 특징 - 트래픽 분산 - 자동 확장 - 인스턴스의 상태를 자동 감지해서 오류가 있는 시스템은 배제 - SSL 암호화 지원 - CloudWatch를 통해 모니터링
썸네일 [AWS]VPC Endpoint란?(feat.bastion(바스티온) 접속) | VPC Endpoint를 알아보겠습니다. VPC 밖(인터넷을 통해)에서 들어오는 트래픽에는 과금이 되기 때문에 비용을 줄이기 위해 AWS 네트워크 안에서 통신할 수 있도록 하는 것이 좋습니다. VPC Endpoint는 EC2 인스턴스를 VPC 외부 서비스(AWS서비스 중 S3 등)와 private한 연결을 하기 위해 사용됩니다. 즉, AWS 서비스를 전용 연결할 수 있도록 해주죠. 따라서 어떤 트래픽도 AWS 네트워크에서 벗어나지 않기 때문에 비용을 절약할 수 있습니다. 이 경우 퍼블릭으로 해당 서비스를 노출하지 않더라도 연동할 수 있습니다. IGW, VPN, NAT, proxy 등 사용할 일이 전혀 없죠. 위 그림과 같이 private subnet이 존재할 때, 이 서브넷과 S3를 연결하고 싶다면,..
썸네일 [AWS]AWS 네트워크 구조(feat.VPC,Subnet,NACL,Security Group,Router) VPC에 대해 알아보겠습니다. VPC 적용 전 VPC가 없다면 EC2 인스턴스들이 서로 거미줄처럼 연결되고 인터넷과 연결됩니다. 이 구조의 단점은 하나의 변경사항 OR 추가만 되도 모든 인스턴스를 수정해야하는 불상사하 펼쳐집니다. VPC 적용 후 보기만 해도 깔끔하죠? VPC를 적용하면 위 그림과 같이 VPC 별로 네트워크를 구성할 수 있고 각각의 VPC에 따라 다르게 네트워크 설정을 줄 수 있습니다. VPC를 구축하는 과정 네트워크에서 해당 VPC를 설정합니다. 계정을 만들고 EC2 생성을 하면 하나의 리전에서 만들어지는 기본 리소스는 7가지가 있습니다. | VPC(Virtual Private Cloud)란? - 2019년부터 모든 사용자들에게 VPC 적용이 강제적으로 부여됐기 때문에, 대부분의 서비..