3. Cloud9 개발 환경 설정 및 실습 준비하기

원활한 진행을 위해서 AWS의 Cloud9이라는 웹기반의 IDE에서 실습을 진행합니다. 그 이유는 일관된 환경 안에서 실습을 진행함으로써 불필요한 예외 상황을 방지하기 위해서입니다. 그런데 현재(2018년 9월) 기준으로 Cloud9은 아시아 태평양 (싱가포르), 미국 동부 (버지니아 북부), 미국 동부 (오하이오), EU (아일랜드), 미국 서부 (오레곤) 리전에서만 사용할 수 있습니다. 가장 가까운 싱가포르 리전의 Cloud9 메인 페이지에 접속해 보겠습니다. 


3.1 Cloud9 환경 만들기

① 우측에 있는 [Create environment] 버튼을 클릭합니다.
② 생성할 인스턴스의 이름을 ‘petclinic-cloud9’이라고 입력합니다. 설명Description은 생략합니다.


그림 3-1



③ Environment type을 [Create a new instance for environment (EC2)]로 선택합니다. 새로운 인스턴스를 실행하고 거기에서 Cloud9 환경을 만들겠다는 의미입니다. Instance type은 [t2.micro]로 선택합니다. 나머지 설정은 모두 그대로 둡니다.


그림 3-2



④ Review 페이지를 확인하고 [Create environment] 버튼을 클릭합니다. 조금 기다리시면 Cloud9 개발 환경을 만날 수 있습니다.


그림 3-3



⑤ Cloud9 EC2 인스턴스에 대한 보안 그룹을 설정합니다. Cloud9 환경에서 서버를 띄우고 내 로컬에서 확인하기 위해서입니다. 백엔드 서버 앱의 경우는 9460 포트를 열고 프론트 앤드 개발 서버의 경우는 19460 포트를 열어둡니다. 22번 포트도 위치무관으로 엽니다. 브라우저에서 Cloud9에 접속할 때 필요한 설정입니다.


그림 3-4


이제 Cloud9의 개발환경 구축은 완료되었습니다.


3.2 필요한 도구 설치

다음은 필요한 도구들을 설치할 시간입니다. Cloud9 페이지 하단에 있는 터미널에서 주어진 명령어를 차례대로 실행합니다.

  • Git 설치 : Cloud9에 이미 설치되어 있습니다.
  • Docker 설치 : Cloud9에 이미 설치되어 있습니다.
  • Java 8 설치


Cloud9에는 Java 7이 기본적으로 설치되어 있습니다. 간단한 CLI 명령을 통해서 Java 8로 변경합니다.

# upgrade java8
sudo yum install -y java-1.8.0-openjdk-devel.x86_64
sudo /usr/sbin/alternatives --config java
2 
sudo yum remove -y java-1.7.0-openjdk
javac -version


  • aws cli 설치 : Cloud9에 이미 설치되어 있습니다.
  • ecs-cli 설치

sudo curl -o /usr/local/bin/ecs-cli https://s3.amazonaws.com/amazon-ecs-cli/ecs-cli-linux-amd64-latest
sudo chmod +x /usr/local/bin/ecs-cli
ecs-cli --version


  • jq 설치 : 터미널에서 aws cli를 사용하면 json 형식의 결과를 표준 출력으로 확인할 수 있습니다. jq는 json 형태의 표준 출력 결과를 이용하는 셸 스크립트를 작성하기 위해서 필요한 도구입니다.

sudo yum -y install jq


3.3 Git 설정 및 코드 내려받기

도구 설치를 완료했다면 git 설정을 하고 소스 코드를 내려받을 차례입니다.


Git 설정

다음 명령어를 Cloud9 터미널에서 차례대로 실행합니다. 자신의 깃허브 계정의 이름과 이메일로 변경하여 실행합니다.

git config --global user.name {your-github-name}
git config --global user.email {your-github-email}


저장소 포크

예제 코드가 저장되어 있는 Github의 저장소로 이동하여 자신의 계정으로 포크<sup>Fork</sup>를 합니다.


코드 내려받기

자신의 계정의 저장소에서 코드를 내려받습니다.

git clone https://github.com/{your-github-name}/petclinic-rest
git clone https://github.com/{your-github-name}/petclinic-front


3.4 테스트하기

Cloud9에서 각 서비스들을 실행해서 브라우저를 통해서 확인해보겠습니다. Cloud9에서 원격으로 실행한 것이므로 확인도 Cloud9의 공개 IP를 가지고 확인합니다.

cd petclinic-rest 
./mvnw spring-boot:run


위 명령어를 실행하여 백엔드 서비스를 실행합니다. 메이븐을 통해서 참조하고 있는 라이브러리를 모두 다운로드하기 때문에 5분 정도 소요됩니다. 한번 다운로드하고 나면 또 다운받지는 않기 때문에 그 이후에 다시 위 명령어로 실행할 경우 20초 정도 소요됩니다. Cloud9 EC2 인스턴스의 공개 IP에 9460 포트를 붙여서 브라우저를 통해서 확인해봅니다. 다음 주소를 참고하여 확인해보세요.

  • http://{cloud9-ec2-ip}:9460/actuator/health

cd ../petclinic-front
npm install
npm start


위 명령어를 실행하여 프론트엔드 서비스를 실행합니다. 아래 주소를 참고하여 브라우저에서 확인해보세요.

  • http://{cloud9-ec2-ip}:19460

이제 준비는 모두 끝났습니다. 실제로 ECS 인프라에 서비스를 배포해보겠습니다.