Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[chore] 프로젝트 인프라 구축 및 보안 개선: Terraform 설정 파일 및 민감 정보 관리 #126

Merged
merged 1 commit into from
Aug 7, 2024

Conversation

jlee38266
Copy link
Contributor

개요

  • 프로젝트의 인프라를 Terraform을 사용하여 구축하고, 보안을 강화하기 위한 몇 가지 중요한 변경 사항을 적용하였습니다.

PR 유형

어떤 변경 사항이 있나요?

  • 새로운 기능 추가
  • 버그 수정
  • CSS 등 사용자 UI 디자인 변경
  • 코드에 영향을 주지 않는 변경사항(오타 수정, 탭 사이즈 변경, 변수명 변경)
  • 코드 리팩토링
  • 주석 추가 및 수정
  • 문서 수정
  • 테스트 추가, 테스트 리팩토링
  • 빌드 부분 혹은 패키지 매니저 수정
  • 파일 혹은 폴더명 수정
  • 파일 혹은 폴더 삭제
  • 코드 중간 통합

PR Checklist

인프라 구축

  1. VPC 설정:

    • 두 개의 가용 영역(ap-northeast-2a, ap-northeast-2b)에 걸쳐 VPC를 설정하였습니다.
    • 퍼블릭 및 프라이빗 서브넷을 생성하여 네트워크 구조를 구성하였습니다.
    • NAT 게이트웨이를 설정하여 프라이빗 서브넷에서 인터넷으로의 접근을 가능하게 하였습니다.
  2. EC2 인스턴스:

    • 애플리케이션 서버를 위한 EC2 인스턴스를 Auto Scaling Group으로 설정하여 고가용성과 확장성을 보장하였습니다.
    • Bastion 호스트를 설정하여 외부에서의 SSH 접근을 중앙 집중화하고 보안을 강화하였습니다.
  3. Docker 설정:

    • EC2 인스턴스에 Docker를 설치하고, 필요한 애플리케이션 Docker 이미지를 자동으로 다운로드 및 실행하는 스크립트를 작성하였습니다.

보안 개선

  1. .gitignore 업데이트:

    • terraform.tfstateterraform.tfvars 파일을 .gitignore에 추가하여 민감한 정보가 버전 관리 시스템에 포함되지 않도록 하였습니다.
    • 이를 통해 인프라 상태와 변수 설정 파일에 포함된 민감한 정보(예: 비밀번호, 키 등)의 유출을 방지하였습니다.
  2. 환경 변수 사용:

    • 민감한 정보를 환경 변수로 관리하고, Terraform 설정 파일에서 이를 참조하도록 하여 코드베이스에 민감한 정보가 직접 포함되지 않도록 하였습니다.
  3. 네트워크 연결 대기 및 재시도 로직 추가:

    • Docker 설치 및 애플리케이션 배포 스크립트에 네트워크 연결 대기 및 재시도 로직을 추가하여 안정성을 높였습니다.

- private subnet에 ec2가 연결, bastion public ip와 ssh키를 통해 ec2 접속 가능
- user_data.sh 파일을 통해 docker 설치 및 image pull && docker run 설정
- .jar image 빌드 시 arm64도 추가
- terraform state, tfvars는 commit에서 제외

state, tfvars는 별도로 공유하겠습니다. S3 버킷에 도입은 상황에 따라 도입하겠습니다.
@jlee38266 jlee38266 added the enhancement New feature or request label Aug 7, 2024
@jlee38266 jlee38266 self-assigned this Aug 7, 2024
@jlee38266 jlee38266 marked this pull request as ready for review August 7, 2024 05:40
Copy link
Contributor

@t4e1 t4e1 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

확인했습니다.

Copy link
Contributor

@jhlee6515 jhlee6515 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

고생하셨습니다!

@jhlee6515 jhlee6515 merged commit cc6c3d0 into main Aug 7, 2024
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants