# TIL-20211108

# Daily

  • digitalOcean 이용기
  • docker로 CD 구축하기

# Content

  • DigitalOcean 이용기
    Cloud Computing을 사용해본 사람이라면, AWS, GOOGLE Cloud는 많이 사용해보거나 들어봤을 서비스이다.
    이와 비슷한 DigitalOcean이라는 Cloud computing 서비스가 있어 사용하게 되었다.

    회사에서 사용하는 서비스라 접근하기 어렵지 않았고, 문서는 비교적 정리가 잘되어 있고 규모가 아직 크지않아 작은 서비스를 만드는데는 어렵지 않았다.
    이를 이용해 개발용 서버를 만들고 운영하기로 했다.

    사용기는 다른 글을 통해 작성해보고, 오늘 블로깅에서는 장단점 정도를 간단하게 정리해보면 먼저,

    # 장점

    • 다른 서비스와 구조가 비슷하다. (learning curve)
    • 개발이 약해도 template이 잘 되어 있어 서버 구축이 쉽다

    # 단점

    • 프리티어 같은 맛보기 기능이 없다.
    • hosting에 기능이 집중되어 있어 다른 기능이 많지 않다.

    사실, 개발을 하는 상황에서 단순 web hosting을 구축하는게 아니라면 그렇게 좋은 서비스인지 아직 판단이 잘 되지 않는다. 현재는 보일러 플레이트를 통해 개발 서버를 띄우고 확인하는 정도만 사용할 예정이라 스펙에는 잘 맞는 서비스라고 생각된다. 하지만, 다른 Computing (aws, google cloud)등을 사용한다면, 꼭 바꿔야할 이유는 없는 것 같다.

  • Docker를 이용한 CD (Continuous Delivery) 구축 이번에 개발 서버를 올리기 위해서 별도의 docker를 이용해 구축하기로 했다. 도커를 사용하게 된 이유는,

    • github-actions과 연동이 잘 되어있어 reference가 풍부하다.
    • docker에 환경변수를 직접 심거나 이미지를 compose로 묶어 개발 환경 변화에 대처하기 쉽다.

    Docker를 간단하게 테스트정도로 사용해본적은 있지만 배포에 정식으로 적용하게 된건 이번이 처음이었다. Docker에서 이미지를 만들고 Github Actions을 build, deploy, test를 분리해서 진행하고

    workflow_call trigger를 설정해서 test가 완료되면 build를 자동으로 해두고, PR merge가 발생하면 build를 push하는 방식으로 구현하고 있다.

    오늘은 server에서 보일러 플레이트를 받아와 배포하는 과정까지 마무리되었고, 내일은 docker, action 스크립트를 구성할 예정이다.

# conclusion

Docker는 설정이 매우 많고 Dockerfile을 사용하는 방식도 다들 많이 달라서, 내가 필요한 곳에 활용해서 많이 사용해봐야 할 것 같다. multi build의 경우 굉장히 많은 기능을 구현할 수 있게 도와주기 때문에 이 부분을 중점적으로 사용해볼 예정이다. 아직 어떤데 쓸지는 못 정했지만..