신입 개발자가 작성한 연구일지입니다. 이때 오해하고 있던 잘못된 정보가 포함되어 있습니다.

이제 서버를 AWS 에 올려 보도록 하고 싶다.
사실 3만명 수용이 프로젝트의 목표라 잠시 산으로 가는 것 같지만, 그래도 언젠가는 해봐야할것 같고, 이번주에 마침 AWS 에서 무료 라이브 강의를 제공하고, 지금 시간이 주어졌으니 공부 해 보는게 좋을 것같다!
나는 AWS 지식이 전무해서, 우선 강의부터 들어 보도록 해야겠다.
드디어 AWS 를 공부하다니 너무 설렌다.
우선 이론 지식을 찾으러 다니기로 했다.
https://www.youtube.com/watch?v=eRTUmgODZtg
AWS 에서 제공하는 강의가 있다기에 찾아보니,
AWS 에서 실시하는 무료 라이브 강의가 있었다.


당장 강의를 신청했다.
이론 강의 보는 링크
https://kr-resources.awscloud.com/aws-builders-korea-program
AWS Builders Korea Program | 세미나 동영상 및 자료
클라우드에 관심이 있으신 한국 고객분들을 위해 클라우드 기초부터 기본, 심화 및 특집 과정으로 이루어진 AWS Builders Korea Program! 발표 자료 및 동영상을 확인해보세요.
kr-resources.awscloud.com

이론 강의 내용
우선 컨테이너가 무엇인지부터 알아야 한다.
현재 회사와 이전 직장을 포함해서, 아직 회사에서는 컨테이너를 사용하는 것을 못 보았다. (내가 못 본게 아니라 회사에서 사용하지 않는다고 했음) 그래서 컨테이너 개념에 대해 이해하기 어려웠다.
컨테이너의 이름의 유래는 배에 컨테이너를 싣는 것에서 출발한다는데, 기존에는 엉망진창으로 배에 물건을 싣다가, 컨테이너라는 물건을 도입하면서 각 물건을 착착 싣어 올릴 수 있게 되었다고 한다.


이렇게 그림으로 생각해 보니 이해가 되는 것 같다.
컨테이너의 특징인 공간을 미리 할당받고, 차곡차곡, 독립적으로! 이런 키워드가 머리속에 자리잡았다. 이제 이해해 보자. 컨테이너랑, 프로그램에 필요한 리소스를 격리해서 할당한 것을 의미한다. 나는 모듈같은 개념으로 이해했다.
이렇게 각 프로그램에 필요한 os, 메모리, 네트워크 등을 분리해서 보관하는 기술을 컨테이너라 하는데, 이와 아주 유사한 기술이 있다. 바로 가상머신이다. 가상머신과 컨테이너는 비슷한 기능을 하는데, 컨테이너의 장점으로는 가상머신보다 빠르다는 것이 있다. 컨테이너는 프로세스로 띄워지기 때문이라고 한다. 가상머신은 hyper visor 로 guest os 를 작동시키는 것이라서 더 느리다고 한다. (자세히는 모르겠지만, 그냥 대충 이런 것 때문이라고 주워듣고 다음에 알아보자)
또 주의할 점으로는, 컨테이너는 네트워크도 격리하기 때문에 host 와 네트워크 포트가 다르다는 것이다. 따라서 포트포워딩을 해줘야 인터넷을 사용할 수 있다.

다음으로는 각종 언어에 대해서 개념을 알아보겠다.
컨테이너 오케스트레이션
점점 많은 호스트와 많은 컨테이너가 생기면 이를 관리하는 도구가 필요하다. 그러한 관리를 컨테이너 오케스트레이션이라고 한다.
컨테이너 오케스트레이션을 하는 도구로는 두 가지가 주어진다.

오른쪽 툴은 쿠버네티스를 활용할 수 있는 툴이라고 한다.
쿠버네티스는 또 무엇인지 모르겠지만, 컴퓨터를 컨트롤-데이터 플레인을 나누는 것을 보아하니 SDN 기술의 일종인 것 같다.
SDN 기술은 대학교 시절 자율모바일네트워크 과목에서 수강했었는데, 실제 물리적인 데이터와 그를 연결하는 라우팅 부분을 분리하여 물리적인 데이터는 각각의 컴퓨터에서 관리하고 네트워크를 관리하는 부분은 마치 각각 분리된것 처럼 보이지만 별도의 컴퓨터에서 라우팅을 디자인하는 형태를 말한다.


쿠버네티스
강의에서는 이렇게 소개한다. '쿠버네티스의 오브젝트는 하나의 의도를 담은 명세서입니다.'
...
무슨 말인지 이해가 되지 않는다.
파드
'배포의 가장 작은 단위이다. 하나 이상의 컨테이너의 집합을 말한다.'
이건 조금 감이 잡히는 것 같다. 여러 모듈(?컨테이너?기능?이미지?)이 결합되어 독립되었다고 구분지을 수 있는 딱 하나의 서비스(?)를 말하는 것 같다. 예를 들면 토스를 만들때 여러 파드를 만든다면, 결제 파드(리눅스, 결제서버, DB 등으로 이루어진), 은행거래확인파드, 메신저 파드 ... 이런 것들인것 같다.

레플리카셋
레플리카셋... 도 잘 이해되지 않는다.
레플리카 내부에 있는 컨테이너는 에러가 발생하여 문제가 생기면 레플리카셋이 자동으로 다시 셋팅을 한다고 한다.

전체 구조
전체 구조를 보니 레플리카셋이 조금 무엇인지 감이 잡힌다.

위 사진을 보았을 때, Deployment 와 ReplicaSet 은 같은 것을 포함하는것처럼 보인다. 그래서 Deployment 가 불필요해보일 수 있는데, 이 둘이 분리되어 있는 이유가 있다. 프로그램을 개발하다 보면 시간에 따라 새로운 버전을 제공해야 하는데, 레플리카셋은 업데이트가 불가능하다. 따라서 업데이트를 할 떄에는 새로운 레플리카셋을 만들어 Deployment 는 그대로 배포한다.
여기까지가 이론 공부이다.
사실 기본 단어만 숙지한 것 같고 어떻게 서버를 배포해야 하는지는 잘 모르겠다.
다음 일지에는 실습을 해보면 좋을 것 같다.
오늘의 일지 끝 !
목표
30000명이 동시에 접속할 수 있는 TCP 서버 만들기
30000명의 클라이언트는 전송 - 수신 - 전송 - 수신 을 반복한다.
30000명의 클라이언트를 켜 놓고, 다음날 서버가 에러 없이 살아 있는 것을 목표한다.
목표를 성취한 후에는 평균 응답 시간을 줄여보도록 하겠다.
프로젝트 Git Hub Repository 링크
https://github.com/MatorMirne/SocketCommunicate-TCP
'Side Project > 안양시장 프로젝트 - TCP 서버개발' 카테고리의 다른 글
(프로젝트 일시중지) 이제 로드밸런싱? 아니면 또 다른 기술? (1) | 2023.11.16 |
---|---|
[프로젝트 김필여 - 14일차] 대규모 동시접속 TCP C# 서버 제작기 (0) | 2023.11.07 |
[프로젝트 김필여 - 12일차] 대규모 동시접속 TCP C# 서버 제작기 (0) | 2023.11.02 |
[프로젝트 김필여 - 11일차] 대규모 동시접속 TCP C# 서버 제작기 (1) | 2023.10.30 |
[프로젝트 김필여 - 10일차] 대규모 동시접속 TCP C# 서버 제작기 (0) | 2023.10.13 |
신입 개발자가 작성한 연구일지입니다. 이때 오해하고 있던 잘못된 정보가 포함되어 있습니다.

이제 서버를 AWS 에 올려 보도록 하고 싶다.
사실 3만명 수용이 프로젝트의 목표라 잠시 산으로 가는 것 같지만, 그래도 언젠가는 해봐야할것 같고, 이번주에 마침 AWS 에서 무료 라이브 강의를 제공하고, 지금 시간이 주어졌으니 공부 해 보는게 좋을 것같다!
나는 AWS 지식이 전무해서, 우선 강의부터 들어 보도록 해야겠다.
드디어 AWS 를 공부하다니 너무 설렌다.
우선 이론 지식을 찾으러 다니기로 했다.
https://www.youtube.com/watch?v=eRTUmgODZtg
AWS 에서 제공하는 강의가 있다기에 찾아보니,
AWS 에서 실시하는 무료 라이브 강의가 있었다.


당장 강의를 신청했다.
이론 강의 보는 링크
https://kr-resources.awscloud.com/aws-builders-korea-program
AWS Builders Korea Program | 세미나 동영상 및 자료
클라우드에 관심이 있으신 한국 고객분들을 위해 클라우드 기초부터 기본, 심화 및 특집 과정으로 이루어진 AWS Builders Korea Program! 발표 자료 및 동영상을 확인해보세요.
kr-resources.awscloud.com

이론 강의 내용
우선 컨테이너가 무엇인지부터 알아야 한다.
현재 회사와 이전 직장을 포함해서, 아직 회사에서는 컨테이너를 사용하는 것을 못 보았다. (내가 못 본게 아니라 회사에서 사용하지 않는다고 했음) 그래서 컨테이너 개념에 대해 이해하기 어려웠다.
컨테이너의 이름의 유래는 배에 컨테이너를 싣는 것에서 출발한다는데, 기존에는 엉망진창으로 배에 물건을 싣다가, 컨테이너라는 물건을 도입하면서 각 물건을 착착 싣어 올릴 수 있게 되었다고 한다.


이렇게 그림으로 생각해 보니 이해가 되는 것 같다.
컨테이너의 특징인 공간을 미리 할당받고, 차곡차곡, 독립적으로! 이런 키워드가 머리속에 자리잡았다. 이제 이해해 보자. 컨테이너랑, 프로그램에 필요한 리소스를 격리해서 할당한 것을 의미한다. 나는 모듈같은 개념으로 이해했다.
이렇게 각 프로그램에 필요한 os, 메모리, 네트워크 등을 분리해서 보관하는 기술을 컨테이너라 하는데, 이와 아주 유사한 기술이 있다. 바로 가상머신이다. 가상머신과 컨테이너는 비슷한 기능을 하는데, 컨테이너의 장점으로는 가상머신보다 빠르다는 것이 있다. 컨테이너는 프로세스로 띄워지기 때문이라고 한다. 가상머신은 hyper visor 로 guest os 를 작동시키는 것이라서 더 느리다고 한다. (자세히는 모르겠지만, 그냥 대충 이런 것 때문이라고 주워듣고 다음에 알아보자)
또 주의할 점으로는, 컨테이너는 네트워크도 격리하기 때문에 host 와 네트워크 포트가 다르다는 것이다. 따라서 포트포워딩을 해줘야 인터넷을 사용할 수 있다.

다음으로는 각종 언어에 대해서 개념을 알아보겠다.
컨테이너 오케스트레이션
점점 많은 호스트와 많은 컨테이너가 생기면 이를 관리하는 도구가 필요하다. 그러한 관리를 컨테이너 오케스트레이션이라고 한다.
컨테이너 오케스트레이션을 하는 도구로는 두 가지가 주어진다.

오른쪽 툴은 쿠버네티스를 활용할 수 있는 툴이라고 한다.
쿠버네티스는 또 무엇인지 모르겠지만, 컴퓨터를 컨트롤-데이터 플레인을 나누는 것을 보아하니 SDN 기술의 일종인 것 같다.
SDN 기술은 대학교 시절 자율모바일네트워크 과목에서 수강했었는데, 실제 물리적인 데이터와 그를 연결하는 라우팅 부분을 분리하여 물리적인 데이터는 각각의 컴퓨터에서 관리하고 네트워크를 관리하는 부분은 마치 각각 분리된것 처럼 보이지만 별도의 컴퓨터에서 라우팅을 디자인하는 형태를 말한다.


쿠버네티스
강의에서는 이렇게 소개한다. '쿠버네티스의 오브젝트는 하나의 의도를 담은 명세서입니다.'
...
무슨 말인지 이해가 되지 않는다.
파드
'배포의 가장 작은 단위이다. 하나 이상의 컨테이너의 집합을 말한다.'
이건 조금 감이 잡히는 것 같다. 여러 모듈(?컨테이너?기능?이미지?)이 결합되어 독립되었다고 구분지을 수 있는 딱 하나의 서비스(?)를 말하는 것 같다. 예를 들면 토스를 만들때 여러 파드를 만든다면, 결제 파드(리눅스, 결제서버, DB 등으로 이루어진), 은행거래확인파드, 메신저 파드 ... 이런 것들인것 같다.

레플리카셋
레플리카셋... 도 잘 이해되지 않는다.
레플리카 내부에 있는 컨테이너는 에러가 발생하여 문제가 생기면 레플리카셋이 자동으로 다시 셋팅을 한다고 한다.

전체 구조
전체 구조를 보니 레플리카셋이 조금 무엇인지 감이 잡힌다.

위 사진을 보았을 때, Deployment 와 ReplicaSet 은 같은 것을 포함하는것처럼 보인다. 그래서 Deployment 가 불필요해보일 수 있는데, 이 둘이 분리되어 있는 이유가 있다. 프로그램을 개발하다 보면 시간에 따라 새로운 버전을 제공해야 하는데, 레플리카셋은 업데이트가 불가능하다. 따라서 업데이트를 할 떄에는 새로운 레플리카셋을 만들어 Deployment 는 그대로 배포한다.
여기까지가 이론 공부이다.
사실 기본 단어만 숙지한 것 같고 어떻게 서버를 배포해야 하는지는 잘 모르겠다.
다음 일지에는 실습을 해보면 좋을 것 같다.
오늘의 일지 끝 !
목표
30000명이 동시에 접속할 수 있는 TCP 서버 만들기
30000명의 클라이언트는 전송 - 수신 - 전송 - 수신 을 반복한다.
30000명의 클라이언트를 켜 놓고, 다음날 서버가 에러 없이 살아 있는 것을 목표한다.
목표를 성취한 후에는 평균 응답 시간을 줄여보도록 하겠다.
프로젝트 Git Hub Repository 링크
https://github.com/MatorMirne/SocketCommunicate-TCP
'Side Project > 안양시장 프로젝트 - TCP 서버개발' 카테고리의 다른 글
(프로젝트 일시중지) 이제 로드밸런싱? 아니면 또 다른 기술? (1) | 2023.11.16 |
---|---|
[프로젝트 김필여 - 14일차] 대규모 동시접속 TCP C# 서버 제작기 (0) | 2023.11.07 |
[프로젝트 김필여 - 12일차] 대규모 동시접속 TCP C# 서버 제작기 (0) | 2023.11.02 |
[프로젝트 김필여 - 11일차] 대규모 동시접속 TCP C# 서버 제작기 (1) | 2023.10.30 |
[프로젝트 김필여 - 10일차] 대규모 동시접속 TCP C# 서버 제작기 (0) | 2023.10.13 |