빈스톡 설정시 주의해야 할, 또는 시행착오를 겪으면서 터득한 팁이라고 할 만한 것들을 간략히 정리해 본다.


java 플랫폼(톰캣플랫폼 아님) 설정시 서버포트 지정

  • 빈스톡의 플랫폼 설정을 java플랫폼으로 설정한 경우 NginX와 스프링부트의 내장톰캣간 통신포트는 5000번 포트로 통신하도록 설정되어 있다.

  • 따라서 빈스톡 구성 후 한경변수 설정을 통해 서버포트를 5000번으로 지정해 줘야 NginX를 통해 톰캣의 서블릿을 호출이 가능하다.

    • SERVER_PORT = 5000

  • 참고로 다른 속성값들은 빈스톡이 생성될 때 자동으로 지정된다.



빈스톡에서의 NginX 설정파일 추가

  • 빈스톡의 커스텀 환경설정은 대부분 ebextensions 를 통해 이루어진다.

  • Java SE 플랫폼에서 Reverse Proxy로 이용되는 nginx의 경우에는 설정 파일(.conf) 추가작업에 대해서 ebextensions 설정 파일(.config)을 작성할 필요 없이 nginx 설정 파일(.conf)을 어플리케이션 소스 번들의 .ebextensions/nginx/conf.d/ 디렉토리에 하면 배포 시 자동으로 nginx 설정에 포함된다.

빈스톡에서 StaticSource(정적리소스)의 설정

To improve performance, you can configure the proxy server to serve static files (for example, HTML or images) from a set of directories inside your web application. When the proxy server receives a request for a file under the specified path, it serves the file directly instead of routing the request to your application.

정적리소스를 위한 가상의 프록시서버 제공, 정적리소스의 요청에 대해서 프록시서버가 설정된 가상경로로 바로 서빙

빈스톡 > 구성 > 소프트웨어 에 Static Files 항목란이 없는 경우, 아래의 파일 추가하여 배포해야 함.

ebextentsion을 활용하는 방법도 있다.아래와 같이 config파일을 만들고 aws:elasticbeanstalk:container:java:staticfiles: 속성밑에 정적가상경로: 디렉토리 로 지정해주면 된다. ebextensions의 사용법은 별도로 찾아볼 것. (구글링하면 많이 나옴)

/.ebextensions/java-se-static-files.config`

option_settings:
aws:elasticbeanstalk:container:java:staticfiles:
  /html: statichtml
  /images: staticimages


빈스톡 - AMI 설정

  • 이슈 - 빈스톡 인스턴스의 재구성(오토스케일링 포함)시 인스턴스내 변경사항에 대한 적용여부

    • 빈스톡에서 연결된 EC2 인스턴스들의 강제 터미네이션 또는 빈스톡의 주요설정들의 변경시 빈스톡은 빈스톡 최초구성시 등록된 AMI로 ESC2 인스턴스를 재생성함.

    • 빈스톡 구성후 EC2 인스턴스내에 구성이 변경된 경우 - 폴더추가, 쉘스크립트 추가, chareset변경등의 임의의 서버작업- 서버가 터미네이션 되면 빈스톡이 EC2인스턴스를 이전의 AMI로 재 생성하게 됨. 변경사항 적용안됨

  • 해결방안

    • 빈스톡 구성후 터미널을 통한 EC2인스턴스의 임의의 변경작업을 원천적으로 금지한다. 가장 확실한 방법

      • 모든 서버, OS레벨의 변경작업에 대해서는 .ebextention 활용

    • 불가피하게 빈스톡으로 생성한 EC2 인스턴스의 변경작업이 발생한 경우, 반드시 AMI를 생성하고 빈스톡 설정의 인스턴스 유형항목에 가서 AMI ID를 생성한 AMI ID로 변경할것

    • 이렇게 변경해 놓으면 빈스톡이 인스턴스를 재생성할 때, 여기에 지정된 AMI를 가지고 인스턴스를 생성하게 되기 때문에 최신의 인스턴스로 올라오게 된다.


RDS (MySQL)구성시의 chareset지정

RDS구성을 하게 되면, 디폴트로 기본 언어셋이 Latin-1로 설정된다. 우리는 utf-8을 써야 하기 때문에 RDS의 파라메터 그룹을 통해 중요한 언어셋 속성값들을 찾아서 모두 utf-8로 변경해 주는 작업이 필요하다.

RDS 메뉴 중 인스턴스 속성으로 가서 세부정보파라메터 항목을 누르면 해당 RDS 인스턴스의 속성값들 정보를 가지고 있는 파라메터 그룹으로 이동한다.

이동한 후 검색항목에 character_set 키워드를 입력하고 검색하면 리스트업되는 속성값들을 모두 utf-8 로 변경하면 된다.

  • character_set_client : utf8

  • character_set_connection : utf8

  • character_set_database : utf8

  • character_set_filesystem : utf8

  • character_set_results : utf8

  • character_set_server : utf8


  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기