[AWS Cloud] 스파르타 코딩 6주 차 1번째 수업

안영우·2020년 11월 3일
0
post-thumbnail

✏️ 서론

이전까지는 프로젝트를 만들면서 코딩을 통해 서비스를 만드는 과정을 진행했다면,
이번과정은 누구나 나의 서비스를 이용할 수 있게 프로젝트를 배포하는 과정을 진행해보았다.
배포는 AWS cloud로 할 예정이다.


📍 과거의 나

이전 학부과정클라우드를 한번 사용해본적이 있다.
당시 스마트도어락작품을 만들었고, 도어락에 달려있던 초음파센서를 통해 센서의 거리가 짧아진다고 인식하면 자동으로 카메라모듈을 통해 도어락 앞에 사진을 찍고 자동으로 네이버 클라우드에 사진을 업로드하여 확인 할 수 있는 기능이었다.

그 이후로 나는 클라우드를 사용해본적이 거의 없었다.


📍 현재의 나

다시 현재로 돌아와, 현재 클라우드 기업의 대표적인 예를 들어보면,
Microsoft - Azure(애저), Amazon - AWS(Amazon Web Service), Google - Google Cloud Flatform, Naver - Navercloud 등등이 있다.

이 중 현업에서 현재 많이 사용하고 있다는 AWS 를 사용해보려고한다.
편하게 서버를 관리하기 위해서 항상 켜놓을 수 있는 컴퓨터인 EC2 사용권을 구매 할 예정이다.

튜터님께서 금융권에는 cloud를 사용하지않고 물리서버를 사용한다고 하셨다.(일부 금융권 제외)
물리서버를 사용하게되면, 관리소요가 많이생겨 힘들다고 하셨다.
(나도 부대에 있을때 상급부대로 넘어가는 작은 서버실을 관리 해야했기때문에 작게나마 공감할 수 있었다.)

클라우드의 장점은 여러가지 있지만 대표적으로 scale-up을 꼽을 수 있는데,
필요할때마다 클라우드의 크기를 늘려 해당트래픽을 감당 할 수 있다.


💡 잠깐 상식

우리가 접속하는 사이트(네이버, 구글 등)들은 주소가 www.naver.com, www.google.com으로 되어있다. 하지만 이는 IP주소(172.000.00)알파벳으로 보기 좋게 바꾼것인데, 이런 시스템을 DNS(Domain Name System)이라고 한다.

클라우드의 5가지 특징은 다음과 같다.
가. On-demand self-service: 컴퓨팅 자원을 요구하는 즉시 자동제공(인간의 개입 불필요)
나. Broad network Access: 어디서든 인터넷을 통한 자원접근
다. Resource pooling: 기업은 고객의 리소스위치에 신경 쓰지 않게끔 자원의 풀을 확보한다.
라. Rapid elasticity: 탄력적으로 자원을 줄이거나 늘릴 수 있음
* scale up and down
마. Measured service: 자원 사용량이 측정되고 쓴 만큼 지불함. 투명성, 리소스 모니터링, 제어 및 보고 가능
출처: 미국 국립표준연구소(NIST)


✏️ 본론

AWS에서 EC2서버를 구매하면 인스턴스를 통해 서버를 구축 할 수 있다. 서버를 구축하게 되면 IPv4 퍼블릭 IP가 주어지는데, 여기에 자신이 업로드 하고 싶은 파일을 업로드 하면된다.

요즘은 인스턴스(EC2)를 직접 만들지않고 docker를 만든다고한다.

docker의 정의는 다음과 같다.

Docker를 사용하면 코드를 더 빨리 전달하고, 애플리케이션 운영을 표준화하고, 코드를 원활하게 이동하고, 
리소스 사용률을 높여 비용을 절감할 수 있습니다. Docker를 사용하면 어디서나 안정적으로 실행할 수 있는 단일 객체를 확보하게 됩니다. 
Docker의 간단한 구문을 사용해 완벽하게 제어할 수 있습니다. 
폭넓게 도입되었다는 것은 Docker를 사용할 수 있는 도구 및 상용 애플리케이션의 에코시스템이 강력하다는 의미입니다.

출처: AWS/도커

쉽게 말하면, 가상머신이라고 생각하면 편하다. pythonvenv처럼 서버환경에서도 가상화면을 만들어 다른 서버의 환경설정과 얽히지 않게 해주는 기능이 docker라고 생각하면 편할 것이다.

보통, git코드를 사용하여 서버에 업로드하지만, 우리는 filezilla app을 통해 인스턴스에 파일을 업로드 할것이다.

이런식으로 편리하게 서버에 업로드 할 수 있다.
이를 이용해 flask 파일을 똑같이 서버에 업로드하고 실행하면 프로젝트를 구현 할 수 있다.


✏️ 결론

이번시간에는 AWS-cloud기능을 사용해봤다.
웹 구현을 하는데 있어 서비스를 만드는것도 물론 중요하지만,
궁극적으로, 서비스 배포를 해야 client가 사용 할 수 있기 때문에 단순히 지나칠 기능은 아니라고 생각했다.
다음 수업시간에도 열심히 배워 cloud에 대해 많이 알아가야겠다.
지금 진행하고 있는 프로젝트 지금뉴스!AWS에 올려 배포해보는 과정을 거쳐봐야겠다.

profile
YW_Tech

0개의 댓글