/ DEVOPS

AWS 배포하기(2) - Elastic Beanstalk

DevOps 관련 포스팅

이 시리즈의
1편에서는, RDSMySQL DB를 등록하고
2편에서는, Elastic Beanstalk으로 JAR 파일을 배포하는 과정을 기록했습니다.
전체 소스 코드는 https://github.com/ohoraming/springboot-aws-deployment 이곳을 참고하시기 바랍니다.

2. Elastick Beanstalk

  1. Elastic beanstalk 선택 image

  2. Create Application 선택 image

  3. 웹 앱 생성(Create a web app) 폼 작성
    3-1. [애플리케이션 정보] - 애플리케이션 이름(Application name) 작성 image

    3-2. [플랫폼(Platform)] - Java 선택 image

    3-3. [애플리케이션 코드(Application code)] - 코드 업로드(Upload your code) 선택 image

    3-4. [소스 코드 오리진(Source code origin)] - 파일 선택(Choose file) 선택 image

    3-5. 이전에 생성한 JAR 파일 선택 image

    • 프로젝트 경로에서 target 디렉터리에 있음

    image

  4. 추가 옵션 구성(Configure more options) 선택 image

    4-1. [데이터베이스(Database)] - 편집(Edit) 선택 image

    4-2. [데이터베이스 설정] - 사용자 이름(Username)암호(Password) 입력 후 저장 image

  5. 앱 생성(Create app) 선택 image

    • 앱 생성 중
    • 필자의 경우, 이 과정이 10분 이상 걸렸다. 충분한 여유를 가지고 진행하는 것이 좋다. image
  6. 앱 생성 완료 및 링크 클릭 image

    • 정상적으로 첫 페이지가 로드됨 image
  7. 구현한 GET/POST/PUT/DELETE 작동 확인하기
    7-1. Postman으로 확인 image

    7-2. MySQL에서 Data 확인

    • MySQL Workbench를 이용하는 것이 편하다면 편한 방법을 이용하면 된다.
        mysql> select * from users;
        +----+----------------+------------+-----------+
        | id | email          | first_name | last_name |
        +----+----------------+------------+-----------+
        |  1 | ming@gmail.com | Ming       | Kim       |
        +----+----------------+------------+-----------+
        1 row in set (0.15 sec)
      

    7-3. Browser에서 확인

    • 연결된 주소에 이어서 get mapping 주소를 적어서 확인
    • 필자는 /api/users로 get mapping을 구성했음

    image

    • 소스코드 일부 참고
        @RestController
        @RequestMapping("/api/users")
        public class UserController {
      
            @Autowired
            private UserRepository userRepository;
      
            // get all users
            @GetMapping
            public List<User> getAllUsers() {
                    return this.userRepository.findAll();
            }
        }
      

    7-4. 같은 방법으로 PUTDELETE 요청을 추가로 확인하면 됨

두 편으로 구성된 AWS 배포 과정이 마무리되었습니다. 간단해 보이지만 AWS 설정 항목에 익숙하지 않아 생기는 실수로 몇 번의 시행착오를 겪었습니다. 과정을 꼼꼼하게 남기며 쉽게 기술하도록 노력했습니다. 같은 과정을 검색하시는 분들에게 미약하게나마 저의 글이 도움이 되었으면 좋겠습니다!

< 출처 >

‘Amazon RDS | Deploy Spring Boot + MySQL CRUD Application into Elastic Beanstalk | JavaTechie,’ 유튜브 비디오, 14:39, 게시자 ‘Java Techie,’ 2020년07월19일, https://youtu.be/Tbf7F42tcBw

‘Spring Boot AWS Deployment - Full Course,’ 유튜브 비디오, 1:03:19, 게시자 ‘Java Guides,’ 2021년05월01일, https://youtu.be/D1yOALZcMHs