본 프로젝트는 처음에는 aws에서 제공하는 무료 클라우드 컴퓨팅 서비스를 이용하려고 했다.
클라우드 컴퓨팅은 인터넷을 통해 컴퓨터 시스템, 서버, 데이터베이스, 네트워크, 소프트웨어 등의 컴퓨팅 리소스를 제공하고 사용하는 서비스이다. Iaas(가상 서버, 스토리지, 네트워크 등의 인프라를 제공합니다. 사용자는 이를 활용하여 필요한 플랫폼과 응용 프로그램을 구축) / Paas(응용 프로그램을 개발하고 실행하기 위한 플랫폼을 제공합니다. 사용자는 개발에 집중하고 나머지는 클라우드 공급자가 관리) / Saas(소프트웨어 애플리케이션을 인터넷을 통해 제공하며, 사용자는 웹 브라우저 등을 통해 액세스) 로 나뉘어져 있으며 유연한 개발과 배포를 가능하게 한다.
그러나 aws의 클라우드 컴퓨팅 서비스를 이용하여 linux 혹은 ubuntu 서버를 만드는 과정에서 많은 문제가 발생하였다.
그 문제는 tensorflow에 있다. tensorflow 모듈을 이용하여 AI 모델을 통해서 작업을 하는 과정은 꽤나 높은 사양을 요구하였다.
다음은 아마존의 T2 유형에 대한 정보들이다.
| 이름 | vCPU(가상 CPU) | RAM(GiB) | CPU 크레딧/시간 | 온디맨드 요금/시간* | 1년 약정 예약 인스턴스 실질 시간당* | 3년 약정 예약 인스턴스 실질 시간당* |
|---|---|---|---|---|---|---|
| t2.nano | 1 | 0.5 | 3 | 0.0058 USD | 0.003 USD | 0.002 USD |
| t2.micro | 1 | 1.0 | 6 | 0.0116 USD | 0.007 USD | 0.005 USD |
| t2.small | 1 | 2.0 | 12 | 0.023 USD | 0.014 USD | 0.009 USD |
| t2.medium | 2 | 4.0 | 24 | 0.0464 USD | 0.031 USD | 0.021 USD |
| t2.large | 2 | 8.0 | 36 | 0.0928 USD | 0.055 USD | 0.037 USD |
| t2.xlarge | 4 | 16.0 | 54 | 0.1856 USD | 0.110 USD | 0.074 USD |
| t2.2xlarge | 8 | 32.0 | 81 | 0.3712 USD | 0.219 USD | 0.148 USD |
무료로 제공하는 유형은 T2.micro인데, 이 서버의 사양으로는 tensorflow모듈의 설치조차 이루어지지 못하였다. 오류가 심하였기 때문에, aws-linux 방식의 서버를 제거하고 ubuntu 방식의 서버로 재설치를 진행하였다. 그러나 결국 같은 문제가 발생하였다.
그러다가 스텍오버플로우에서 pip install tensorflow-cpu를 설치하면 설치할 수 있다는 내용을 확인하였다. 그렇게 하여 tensorflow-cpu를 설치하는 것은 성공하였지만 본질적인 문제인 서버 사양에 대한 문제는 해결 할 수 없었다.
그렇게 해서 본 프로젝트에서 찾은 해결 방법은 서버 자체의 사양을 높이는 것이었다.
무료로 이용할 수 있는 서버들이 몇 가지가 있었는데, 그 중에서 우리는 구글 클라우드 플랫폼에서 제공하는 2달동안 무료 300달러 크래딧을 이용하여 어느정도 좋은 사양의 서버를 개설하여 사용하는 것을 선택하였다.