DEVOPS

패스트캠퍼스 챌린지 최종 후기

뇌장하드 2021. 12. 7. 23:41

 

그디어 한달동안 챌린지가 끝나고 최종후기를 적는다.

한달이라는 시간이 길고 짧을수도 있지만 약간은 길게 지나간거 같다. 이제 완전 겨울이라서 집도 안나가고 혼자 개발 공부를 하는 중인데 앞으로 더 열심히 해야할것만 같다 너무 많은 기술이 남아있어서 좀더 열심히 해야겠다

 

패스트캠퍼스의 강의를 들으면서 처음 보는 부분이 많았다 이렇게 완전 구체적인 부분은 아니지만 추상적으로 웹 서버의 작동원리와 배포를 하는 방식 그리고 네트워크에 대한 전반적인 부분을 배울수 있어서 좋은 기회인거 같았다. 이번기회로 좀더 많은 지식을 습득하고 좀더 공부를 해야하는 구나라는 것을 느끼고 있다. 다만 강의가 N차에 걸쳐서 오픈이 되는데 오픈 되는 날짜가 미루어 지는 점이 조금 아쉬웠다. 다음에는 좀더 완벽하게 운영을 했으면 좋을거 같았다. 

강의를 하면서 모르는 부분을 질문을 하고 싶었는데 질문이 가능한 강사님이 있고 안되는 강사님이 있어서 조금 운영 시스템이 통합적으로 QnA가 관리가 되었으면 좋았을거 같다. 

 

한달동안 배운 부분을 리마인드를 해보려고 한다.

 

1.  WSL 2란?

WSL 2는 Linux용 Windows 하위 시스템 아키텍처의 새로운 버전으로, Linux용 Windows 하위 시스템이 Windows에서 ELF64 Linux 이진 파일을 실행할 수 있게 해줍니다. WSL 2의 주 목표는 파일 시스템 성능을 높이고전체 시스템 호출 호환성을 추가하는 것입니다.

이 새 아키텍처는 이러한 Linux 이진 파일이 Windows 및 컴퓨터의 하드웨어와 상호 작용하는 방식을 변경하되, WSL 1(현재 널리 사용 가능한 버전)과 동일한 사용자 환경을 제공합니다.

개별 Linux 배포는 WSL 1 또는 WSL 2 아키텍처를 사용하여 실행할 수 있습니다. 언제든지 각 배포를 업그레이드하거나 다운그레이드할 수 있으며 WSL 1 및 WSL 2 배포를 함께 실행할 수 있습니다. WSL 2는 실제 Linux 커널을 실행하는 이점을 제공하는 완전히 새로운 아키텍처를 사용합니다.

 

2. AWS가 제공하는 서비스 

-컴퓨팅 서비스

    AWS EC2(elastic) :앞에 실습에서했던 EC2이다 EC2서비스는 원하는 사양및 용량을 원하는대로 설정을 하면                                          컴퓨터 를  새로산것과 같은 서비스를 제공해준다.

    AWS Lightsail : 이것은 EC2와 비슷한데 프라이빗한 서버를 제공한다.

    AWS Auto Scaling : 이 기술은 만약 내가 대박을 친 웹이 있으면 용량을 더 늘리고 쪽박을 친서비스는 용량을 줄이는 것처럼 유동적으로 서버를 조절 할수 있는 서비스이다.

    AWS Workspaces : 이 서비스는 기업에서 중요한 문서를 보관해주는 서비스 이다.

 

-네트워킹 서비스 

AWS Route 53 : 숫자로 구성된 아이피를 도메인과 연결을 시켜주는 서비스입니다.

AWS VPC : 가상 네트워크를 클라우드내에 생성을 해줍니다.

AWS Direct Connect : AWS에 직접 연결하고 퍼블릭 인터넷을 우회하여 애플리케이션 성능을 개선하는 서비스 입니다.

AWS ELB : Elastic Load Balancing(ELB)은 하나 이상의 AZ에 있는 여러 대상 및 가상 어플라이언스에서 들어오는 애플리케이션 트래픽을 자동으로 분산을 해줍니다.

AZ: 가용영역이라고 합니다.

 

-스토리지/데이터베이스 서비스

AWS S3: 어느 파일도 저장하는 스토리지 서비스이다.

AWS RDS : 가상 SQL 데이터베이스 서비스

AWS DynamoDB : 가상 NoSQL 데이터베이스 서비스

AWS ElastiCache : Amazon ElastiCache는 유연한 실시간 사용 사례를 지원하는 완전관리형 인 메모리 캐싱 서비스입니다.

 

3. 네트워크의 원리

현재 우리가 편하게 쓰는 인터넷은 사실 오랜 역사와 생각보다 복잡하게 구성이 되어있습니다.
일단 인터넷을 알기 전에 우리는 TCP/IP가 먼지에 대해서 알아야 합니다.

TCP/IP란?

TCP/IP가 나타난 이유는 먼저 컴퓨터간의 통신을 위해서입니다.
TCP/IP는 컴퓨터와 컴퓨터간의 지역네트워크(LAN) 광역네트워크(WAN)에서 원할한 통신을 가능하도록 하기위한 통신규약으로 정의할 수 있습니다. 최초는 ARPANET(최초의 컴퓨터)로 시작이 되었으며 미국방위통신청에서 컴퓨터간의 통신을 위해서 TCP/IP를 사용하도록 한것이 그 시초가 되었습니다.

기본적인 역사는 이렇습니다. 자 이젠 왜 컴퓨터간의 통신을 위해서 TCP/IP 선택한 이유는 TCP/IP의 개방성에 그 정답이있습니다. 즉 하드웨어, 운영체제, 접속매체에 관계없이 동작할수있다는 점 때문에 인터넷 통신을 위한 핵심으로 선택이 되었습니다. 그리고 이름에서도 TCP/IP의 2개의 프로토콜이 이루어져 있습니다. 그 이유는 IP기반에 TCP가 사용되서 이렇게 불리어집니다. 쉽게 말해 IP 프로토콜위에 TCP 프로토콜이 놓이게된겁니다.

IP - 네트워크 상에서 컴퓨터는 고유한 주소가 있습니다. 컴퓨터의 주소는 인터넷에 접속할때 컴퓨터 각각에 부여받습니다. 집 주소나 전화 번호 처럼 말이죠, 이 주소는 총 4바이트로 이루어져있습니다.
예를 들어서 192.168.2.1 이런식으로요 만약 내 컴퓨터의 IP주소가 궁금하다면 윈도우라면 cmd에서 ipconfig 유닉스 계열이면 ifconfig로 치면 주소가 나옵니다.

TCP - 저번 글에 클라이언트와 서버 이야기 나왔죠? 그렇게 데이터를 주고 받을수있는게 TCP 때문이죠 즉 클라이언트와 서버간에 데이터를 신뢰성있게 전달하기 위해 만들어진 프로토콜입니다. 그리고 TCP는 근거리 통신망(LAN), 원거리 통신망(WAN), 인트라넷, 인터넷 등 컴퓨터에서 실행되는 프로그램 간에 일련의 데이터를 안정적으로 순서대로 에러없이 데이터를 교환할 수 있게합니다.

기본적인 IP와 TCP에 대한 정보입니다. 종류는 많지만 일단 인터넷을 알기 위해서는 정도만 알면됩니다.

본격적으로 인터넷이란 각 컴퓨터들간의 TCP/IP 통신 프로토콜을 이용해서 서로 데이터를 주고 받도록한 네트워크를 말합니다. 또는 네트워크의 네트워크를 구현하여 모든 컴퓨터를 하나의 통신망 안에 연결하고자 하는 의도엣 인터넷이라고도 합니다.

 

IP란? 

IP 주소는 컴퓨터 네트워크에서 장치들이 서로를 인식하고 통신을 하기 위해서 사용하는 특수한 번호이다. 만약 서버가 들어가지 않으면 IP가 안전하지 않다고 한다. 네트워크에 연결된 장치가 라우터이든 일반 서버이든, 모든 기계는 이 특수한 번호를 가지고 있어야 한다. 이 번호를 이용하여 발신자를 대신하여 메시지가 전송되고 수신자를 향하여 예정된 목적지로 전달된다. IP 주소를 줄여서 IP라고 부르기도 하나 IP는 인터넷 규약 자체를 가리키는 말이기 때문에 엄밀하게는 구별해야 한다. IP 와 IP 주소는 다른 개념이다.

IP 주소는 5036이나 5047, 인터넷에서만 사용되는 전화번호라고 생각할 수 있다. 한편, 이런 번호는 사람이 외우기 어렵기 때문에, 전화번호부와 같은 역할을 하는 서비스가 필요하다. DNS가 이런 역할을 하며 이런 서비스를 "도메인 이름 분석" (domain name resolution) 혹은 "이름 분석" (name resolution)이라고 한다.

오늘날 주로 사용되고 있는 IP 주소는 IP 버전 4(IPv4) 주소이나 이 주소가 부족해짐에 따라 길이를 늘린 IP 버전 6(IPv6) 주소가 점점 널리 사용되는 추세이다. 수사를 할때도 아이피추적을 자주한다.

 

4.VPC 란? 

 

Virtual Private Cloud(VPC)는 사용자의 AWS 계정 전용 가상 네트워크입니다. VPC는 AWS 클라우드에서 다른 가상 네트워크와 논리적으로 분리되어 있습니다. Amazon EC2 인스턴스 같은 AWS 리소스를 VPC에서 실행할 수 있습니다. IP 주소 범위와 VPC 범위를 설정하고 서브넷을 추가하고 보안 그룹을 연결한 다음 라우팅 테이블을 구성합니다.

서브넷은 VPC의 IP 주소 범위입니다. 지정된 서브넷으로 AWS 리소스를 시작할 수 있습니다. 인터넷에 연결되어야 하는 리소스에는 퍼블릭 서브넷을 사용하고, 인터넷에 연결되지 않는 리소스에는 프라이빗 서브넷을 사용하십시오.

각 서브넷에서 AWS 리소스를 보호하기 위해 보안 그룹 및 네트워크 액세스 제어 목록(ACL)을 포함한 다중 보안 계층을 사용할 수 있습니다.

IPv6 CIDR 블록을 VPC에 연결하고 IPv6 주소를 VPC의 인스턴스에 할당할 수도 있습니다.

 5. NACL과 Security Group의 차이점 

NACL (Network ACL)

VPC에서 무료로 NACL 기능을 제공하고 있으며 사용자가 직접 정책을 설정하여 유입되는 트래픽을 제어한다.

 

NACL의 특징은 다음과 같다

 

- 서브넷 단위로 적용

- NACL이 설정된 서브넷 안의 모든 인스턴스에 적용

- 1개의 VPC에 NACL 최대 200개 까지 생성 가능

- 1개의 NACL에 인바운드 20개, 아웃바운드 20개 등록 가능

- NACL은 여러개의 서브넷에 적용 가능

- 서브넷은 하나의 NACL만 적용 가능

- 규칙 번호가 낮은것부터 우선 적용

- Stateless 성질 (요청 정보를 따로 저장하지 않기 때문에 응답하는 트래픽에 대한 필터링을 설정해야함)

 

Security Group (보안그룹)

인스턴스에 대한 인바운드/아웃바운드 트래픽을 제어하는 방화벽 역할을 한다.

NACL과 가장 큰 차이점을 본다면 NACL은 네트워크 방화벽이고, Security Group은 인스턴스 방화벽이다.

 

 

Security Group의 특징은 다음과같다.

 

- 인스턴스 단위로 적용

- 특정 그룹을 지정시에만 인스턴스에 적용

- 1개의 VPC에 SG 최대 2500개 까지 생성 가능

- 1개의 SG에 인바운드 60개, 아웃바운드 60개 등록 가능

- Stateful 성질 (요청 정보를 저장하여 응답하는 트래픽 제어를 하지 않음)

 

6. VPC EndPoint란? 

AWS를 벗어나지 않고 EC2 인스턴스를 VPC 외부서비스와 프라이빗 하게 연결하기 위해서 사용됩니다. 이 경우 퍼블릭으로 해당 서비스를 노출하지 않더라도 연동할 수 있습니다. 즉, IGW, VPN, NAT, 프로시 등을 사용할 필요없이 연결할 수 있습니다. 여기서 외부 서비스란 AWS의 서비스를 뜻합니다.

예를 들어 VPC에 있는 EC2(프라이빗 서브넷)가 존재하고 S3가 존재한다면 EC2와 S3를 연동할때 퍼블릭으로 열지 않아도 됩니다. VPC 엔드포인트를 활용하여 연결할 수 있습니다.

 

특징
- 인터넷을 통해 통과할 필요가 없습니다.
- 동일한 리전에 있어야 합니다.
- 가용성이 뛰어나고 중복적이고 수평적으로 확장됩니다.

 

7. 로드밸런서란?

 

서버에 가해지는 트래픽을 여러대의 서버에게 균등하게 분산시켜주는 역할을 하는 것이 로드 밸런서입니다.

서버가 하나일 때 트래픽이 적으면 서버는 무사히 응답을 해줄 것입니다. 하지만 트래픽이 서버 한개로는 감당할 수 없는 양이 되는 순간 서버는 다운될 것이고, 서비스 또한 작동을 멈출 것입니다.

이러한 문제를 해결하기 위해서는 크게 두 가지 방법이 있는데요.

서버의 인스턴스 성능을 올리는 스케일-업(Scale-up)  서버를 여러대로 나눠서 트래픽을 처리하는 스케일-아웃(Scale-out) 방식이 있습니다. 오늘 포스팅하는 이 로드 밸런서는 바로 스케일-아웃 방식입니다.

그리고 로드 밸런서는 지속적으로  IP주소가 바뀌기 떄문에 도메인 기반으로 사용해야 한다는 특징이 있습니다.

 

로드 밸런싱을 하면 무슨 장점이 있을까요?

  • 비용 절감
  • 무중단 서비스 제공

주요 기능

  • NAT
  • 터널링(Tunneling)
    • 인터넷상에서 눈에 보이지 않는 통로를 만들어 통신할 수 있게 해주는 개념
    • 데이터를 캡슐화해 연결된 상호간에만 캡슐화된 패킷을 구별해 캡슐화를 해제할 수 있음
  • DSR(Dynamic Source Routing protocol)
    • 로드 밸런서 사용 시 서버에서 클라이언트로 되돌아가는 경우 목적지 주소를 스위치의 IP 주소가 아닌 클라이언트의 IP 주소로 전달해서 네트워크 스위치를 거치지 않고 바로 클라이언트를 찾아가는 개념입니다.

 

파이썬을 이용한 웹서버

 

배달 관련 서비스를 만들어 보았고 지금은 스프링을 공부를 병행하면서 AWS를 활용하여 배포까지 할려고 하고 있습니다.

 

AWS실습은 하루에 날잡고 빡시게 하고 다 종료를 시켜야 요금이 안나온다. 아무것도 모르고 이틀동안 켜두고 들어가니 요금이 꽤 나와버려서 주의 가 필요하다...

 

 

그리고 지금은 스프링에 적용을 시켜서 포토폴리오를 만들려고 한다. 백엔드와 클라우드를 합쳐서 무언가를 만들어 보는게 이번년도의 목표이다.

 

 

 

 


#패스트캠퍼스 #패캠챌린지 #직장인인강 #직장인자기계발 #패스트캠퍼스후기
#한번에끝내는AWS인프라구축과DevOps운영초격차패키지Online

https://bit.ly/3FVdhDa
<본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.>

 

수강료 100% 환급 챌린지 | 패스트캠퍼스

딱 5일간 진행되는 환급챌린지로 수강료 100% 환급받으세요! 더 늦기전에 자기계발 막차 탑승!

fastcampus.co.kr