개인 포트폴리오/TodoList

TodoList 프로젝트 - AWS 배포

roalwh 2023. 10. 19. 21:01

AWS 배포

  • 프리티어 1인스턴스 이므로 백엔드 배포는 개인서버에 진행하였으며 프론트 배포만 진행함

1. EC2 인스턴스 생성

  • free tier 우분투 22.04LTS 로 진행

  • SSH 접속용 키 생성 후 인스턴스 생성
  • pem 으로 생성 한다.

  • SSH 설정 및 프리티어 용량 최대치인 30 으로 설정뒤 인스턴스 생성 진행

  • 인스턴스 대시보드로 생성한 인스턴스가 실행중인지 확인한다.

2. SSH 접속

  • 키등록 후 다운로드 받은 pem 파일을 putty 접속을 위해 putty key 파일로 변경진행
  • puTTy key Generator 로 pem 을 ppk 로 변환한다.

  • key 파일을 putty에 등록 해준다
  • 등록 후 계정@주소 로 접속한다.

3. Nginx 설치

4. CORS 설정

  • 백엔드 WebMvcConfig 파일에 allowedOriginPatterns 허용할 주소 AWS 퍼플릭 주소를 넣어준다.
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
    private final long MAX_AGE_SECS = 3600;

    @Override
    public void addCorsMappings(CorsRegistry registry){
        // 모든 경로 매핑
        registry.addMapping("/**")
        // 허용주소
            .allowedOriginPatterns("http://ec2-43-202-189-205.ap-northeast-2.compute.amazonaws.com","http://localhost:3000","http://192.168.0.101:3000","http://roalwh.iptime.org:20103")
            // .allowedOriginPatterns("*")
            .allowedMethods("GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS")
            .allowedHeaders("*")
            .allowCredentials(true)
            .maxAge(MAX_AGE_SECS);
        }
}

5. 배포 파일 업로드

  • SFTP 를 이용하여 빌드파일 업로드 진행

6. Nginx 설정

  • Nginx 설정 경로 "/etc/nginx"
  • 실행 시 퍼미션 에러 방지를 위해 실행주체를 root 로 변경

  • sites-available 디렉터리에 todo.conf 생성

  • sites-available 디렉터리에 생성한 todo.conf 파일을 sites-enabled 디렉터리안에 링크 파일로 생성

  • Nginx 서비스 재시작 하여 테스트 진행

ec2-43-202-189-205.ap-northeast-2.compute.amazonaws.com

  • 회원가입, 로그인 , Todo 등록 등 기능 테스트 진행