Change AWS Elastic Beanstalk Runtime with CLI

AWS Elastic Beanstalk을 이용하여 서비스를 운영하고 있다면 Platform version을 업그레이드 해야 할 필요가 종종 있다. 내 경우에는 아래 3가지 경우가 종종의 구체적 예시에 해당한다.

  • 사용중인 Platform version이 Deprecated 될 예정이다.
  • 새로 작성한 코드가 특정 버전 이상에서만 동작한다.
  • 업그레이드로 성능 향상이 기대된다.

위의 3가지 경우 말고도 Platform version을 업그레이드 해야 할 필요는 많다. 그런데 가끔 변경하고자 하는 Platform version이 AWS Console에 표시되지 않을 때가 있으면 난감하다.

AWS Elastic Beanstalk의 Supported Platform에도 PHP 7.3이 명시되어 있고, 새로 환경을 생성하려고 하면 PHP 7.3을 선택 할 수 있지만, Upgrade Platform의 선택지는 PHP 7.3을 제공하지 않는다. 이 무슨 날벼락인가.

아래 순서로 Platform version 업그레이드를 진행하려고 계획 했으나 Clone environment 후 원하는 버전으로 업그레이드를 할 수 없는 상황이다.

1) Clone environment >   2) Upgrade Platform version >   3) Deploy New Package >   4) Test >   5) Swap Environments

Recap AWS re:Invent 2019

AWS re:Invent는 매년하는 행사라는게 믿기지 않을 정도로 굵직한 신기술들이 쏟아집니다.
세션들 둘러보며 관심있는 주제의 영상과 블로그를 찾아보고 맛보기 한 결과를 정리하는 글 입니다.

Amazon CodeGuru

Amazon CodeGuru는 크게 2가지를 제공합니다.

  1. Repository와 연동하여 Pull Request의 수정사항을 검토 후 피드백을 제공하는 Reviewer
  2. SDK와 Snippet을 코드에 추가하면 어플리케이션의 성능을 분석해주는 Profiler

AI의 가르침에 목말랐던 저는 이 중 Reviewer에 관심이 갔습니다.
공식 문서를 읽어보면 CodeGuru는 Open Source 프로젝트와 Amazon 프로젝트의 코드를 통해 학습시켰다고 합니다. 학습의 결과로 아래와 같은 결함을 찾고 피드백을 제공 할 수 있다고 합니다.

  1. Resource Leak을 찾을 수 있다.
  2. Race condition이 발생 할 수 있는 상황을 찾을 수 있다.
  3. 비효율적으로 작성된 코드를 찾아 낼 수 있다.
  4. AWS SDK / API를 사용하는 코드에 대해 Best Practice를 따르는지 확인 할 수 있다.

인간의 리뷰가 네이밍, 비즈니스 로직과 요구사항의 일치 여부 그리고 중복된 코드 등에 초점이 맞춰지는 것과 대비되는 부분입니다.
선행 학습은 여기까지 하고, 실제로 AI의 가르침을 받아봅시다.
AI의 가르침을 받기 위해서는 CodeGuru Console에서 저장소(Repository)를 연동 후 연동된 저장소에서 Pull Request를 생성하면 자동으로 CodeGuru의 Comments가 추가됩니다. (실제로 상당히 간단합니다)
Pull Request 생성 후 Comments가 추가되기 까지 5~10분 정도 소요됩니다. 국가번호까지 82를 쓰는 나라에서 결코 짧은 대기 시간이라고 생각되지는 않습니다.
아래 이미지가 CodeGuru 연동부터 피드백을 받기까지의 과정을 잘 설명해줍니다.

실제로 어떤 피드백을 제공하는지 궁금해서 Pull Request를 10개 정도 생성해봤는데, 그닥 의미있는 피드백을 제공 받지는 못했습니다. 아래 2개가 그나마 유익한 피드백이었습니다.

  • FileStream을 명시적으로 Close하지 않음
  • 인자로 전달되는 문자열이 특정 Character를 포함하지 않으면 IndexOutofBoundsException 발생 가능

아직은 좀 미흡하다는 생각이 많이 들었습니다. 지원하는 언어도 늘고 서울 리전도 지원하는 봄날에 써보는 것을 추천합니다.
현시점(2020/02)에 사용했을 때 느낀 유일한 장점은 ‘설정이 쉬움’이었습니다.

<장점>

  • 설정이 쉬움

<단점>

  • 언어와 지역의 제한이 심함. 언어는 Java만 지원하고, Region은 4곳만 지원한다.
  • $0.75/100 lines의 가격에 합당한 피드백을 제공하지 않음

<References>

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×