본문 바로가기

전체 글

(68)
Docker가 REST API를 이용함을 확인해보자 "Docker가 REST API를 이용한다는 글은 많이 봤는데, 솔직히 난 잘 이해가 안돼. 사실인지 알아보고싶어!" 시작하며 docker machine과 docker swarm 등에 대해 공부하던 중 우연히 다시금 docker의 구조에 대해 다시 생각해볼 시간을 갖게 되었고, 이에 저번 글에서는 docker가 server-client 구조를 갖는다는 점을 이용해 client가 원격으로 docker을 이용할 수 있다는 내용을 알아보았습니다. 이번엔 docker의 server와 client가 REST API를 이용해 통신한다는 내용에 대해 알아보겠습니다. 구글에 docker rest api나 docker remote api 라는 키워드로 검색하면 몇 가지 글이 나오긴하지만, 이해를 명확히 돕는 눈에 보이는..
docker daemon 설정을 이용해 원격으로 docker 이용하기 시작하며 (이건 스킵하셔도됩니다. 거의 일기장 수준...) docker client와 docker daemon이 같은 machine에 존재하지 않더라도 docker client를 통해 원격으로 docker를 이용할 수 있다는 내용의 글입니다. 이 글을 읽으시는 분들은 docker에 대한 어느 정도 개념이 있다는 전제하에 글을 적습니다. Docker를 처음 접했던 건 2019년 봄. 경희대학교는 특이하게 데이터센터 프로그래밍이라는 과목을 통해 Docker와 Kubernetes 를 배울 기회가 주어집니다.(데이터센터 프로그래밍 소개 영상) 당시 컨테이너 관련한 내용은 전무했던 제게 Docker는 너무 재미있는 기술이었습니다. 하지만 많이 어려웠던 것도 사실이었습니다. Docker, Container을 비롯해..
CodePipeline과 CodeDeploy만으로 배포 자동화하기 (CodeBuild 없이) 시작하며 인터넷상의 CodePipeline 사용법에 대한 정보를 찾아보면 죄다 CodePipeline에 CodeBuild와 CodeDeploy를 묶어서 이용하는 방법을 알려준다. 하지만, 이제 막 배포 자동화 접하는 사람의 경우 사실 Build 과정은 필요가 없는 경우가 많을 것 같다. 예를 들어 test case가 완전하게 작성되지 않은 토이프로젝트라거나, 매번 test 할 필요는 없는. 즉 build 보다는 잦은 deploy에 초점을 맞추어 빠르게 deploy 하고싶은 경우들말이다. CodePipeline을 처음 이용해보면 은근 CodeBuild의 build 과정에서 많은 시간을 잡아먹는다. 이 중 대부분의 시간이 CI 서버를 Provisioning 하는 동안 소모된다. 즉 굳이 CI가 필요없는 단계..
AWS CodePipeLine, CodeBuild, CodeDeploy를 통해 EC2에 배포하기, AWS CI/CD 구축하기 - 2 서론 1편에서는 CodePipeline을 실제로 구축하기 이전에, 필요한 설정과 배포할 파일에 대해 다루었습니다. 이번 편에서는 드디어 실제로 CodePipeline을 생성하고 그에 필요한 CodeBuild와 CodeDeploy도 생성해보겠습니다. 앞서 말씀드렸듯이, CodePipeline 생성 중에 Codepipeline에서 쓰일 CodeBuild를 생성, 그리고 잠시 다른 창에서 CodeDeploy의 애플리케이션, 배포그룹을 생성한 뒤 CodePipeline의 생성을 마무리합니다. 이번 편은 그렇게 어렵지 않고, 길지 않고, 사진이 많으니 아마 따라오기 쉬우실 겁니다. 화이팅! CodePipeline 설정 시작 우측 하단의 "파이프라인 생성"을 클릭해줍니다. 굳이 따로 IAM Role을 생성하고, 설..
AWS CodePipeLine, CodeBuild, CodeDeploy를 통해 EC2에 배포하기, AWS CI/CD 구축하기 - 1 서론 이전 글들에서 CodeDeploy를 이용해 S3나 Github의 프로젝트를 EC2 Instance에 배포하는 과정을 다루었습니다. 여태까지는 직접 빌드한 파일을 S3에 업로드하거나, git commit ID를 배포생성을 통해 수동으로 전달해주어야했는데요. 이번에는 단순히 CodeDeploy만 이용하는 게 아니라 CodePipeLine을 통해 이러한 과정들을 완전히 자동화시켜 CI/CD Pipeline을 구축해볼 겁니다. ❗❗❗ 겹치는 내용이 많고 그리 간단한 작업이 아니기 때문에, CI/CD를 처음 접하시거나 CodeDeploy에 관한 개념이 안 잡히신 분들은 앞선 글들을 먼저 읽어보시기를 추천드립니다. 내용은 이렇습니다.Github Repository에 푸쉬한 이력을 자동으로 체크하여 새로 푸쉬될..
AWS CodeDeploy와 S3 이용해서 배포하기 서론 CI 툴을 이용해서나 빌드를 마친 파일이나 간단하게 테스트 해볼 파일을 S3와 CodeDeploy를 이용해 EC2 Instance로 자동배포하기 위한 글이다. 간단히 정리하자면 CodeDeploy를 통해 S3에 있는 데이터를 배포할 것이다. 배포할 목적지는 EC2 Instance CI는 안되니까 배포하고 싶은 파일을 .zip으로 압축하여 S3 Bucket에 업로드 해야함. 해야하는 작업 크게 해야하는 작업들은 아래와 같다. IAM Role 생성 EC2 Instance가 배포과정에서 사용할 IAM Role이 하나 필요하다. 자세한 내용은 아래서 언급. CodeDeploy가 배포과정에서 사용할 IAM Role이 하나 필요하다. IAM User와 aws cli는 필요 없음! EC2 Instance를 만들..
AWS CodeDeploy와 Gtithub 이용해 배포하기 서론 Github Repository에 빌드한 파일이나 그 외 서버로 배포하고 싶은 파일들이 있는 경우 CodeDeploy를 이용해 EC2 Instance로 자동배포를 하기위한 글이다. 간단히 정리하자면 CodeDeploy를 통해 무엇인가를 배포할 것임. 배포할 내용을 Github Repository에서 가져올 것임. EC2 Instance에 배포할 것임. CI는 안되니까 깃헙 푸쉬 후 Commit ID를 직접 복붙해야함. 몇가지 설정해줘야할 사항들이 있고, 이는 Github Repoistory와 S3 를 이용하는 경우가 서로 다르다. 며칠 간 삽질을 하면서 인터넷과 블로그에 간혹 잘못 설명된 글이나 헷갈리게 설명된 부분들을 본 것 같아서 정리해본다. 삽질을 하면서 발견한 새로운 내용도 있기 때문에 작동..
여태 뜻도 모르고 써온 RESTful 이란 단어에 대해. REST API란? 서론 맨날 REST, RESTful, API 하는데 도대체 뭐냐 서버-클라이언트 구조를 갖는 서비스를 구현할 때 항상 API 서버를 이용하는 architecture 를 사용했다. 사실 내가 병아리시절 알던 API는 REST API 밖에 없어서 REST API 인 줄 알고 썼는데, 돌이켜보면 완전히 RESTful 했던 것은 아니었던 것 같다. 왜냐하면 API를 구현했을 때 GET과 POST method만을 이용하기도 했었고, endpoint도 내 멋대로 지정하곤 했었다.(ex. /readMyItems, /foodByOwner 이런 식) 그리고 여전히 caching은 쉽지 않은 영역... 사실 Nexters라는 IT 동아리 면접 때 "RESTful이 뭐냐, REST API 가 뭐냐?" 라는 질문을 받았는데,..