TIL -DevOps

kyoungyeon·2023년 12월 11일
0

TIL

목록 보기
101/110

Status

  • DevOps란 무엇인가

운영 자동화를 나타내는 동사 였던 것일까.

예전 취업 면접에서
저는 데브옵스가 되겠습니다!
라고 할때마다..

비웃음 당하거나
이해를 못하겠다는 피드백을 꽤 받았는데
그곳에 데브옵스는 없고,
잡다구니 한 일을 다 하는 "노가다 엔지니어"만 있는걸까.

일단
그 딴 회사를 안가서 다행이고 앞으로도 걸러야 겠다는 생각이 든다

  • 인강 및 재직자 교육

운이 좋게도, 재직자 교육을 주말마다 듣게되었고,
게다가 devOps 프로젝트 인강도 듣게됨
들을게 많네..
정보기도 들어야 하고..

컨디션 난황으로 시간이 잘 나진 않는데
의지와 습관 문제인듯 하여 매일 기록하려 한다

What is DevOps?

Continuos Integration
Continuous Deployment

뜻은 위와 같은데 공통적으로 "지속적인 /계속되는" 무언가를 해줘야 하는 것임.
하나는 통합 관리를 해줘야 하고
하나는 배포 관리를 해줘야 하는데.

국비에서 AWS 로 "이론"보단 실무를 먼저 졉해서 그럴까 항상 애매모호한 개념이라 생각들었는데 이번 인강을 통해 어느 영역을 말하는 것인지를 이해하게 되었다.

CI: 개발팀과의 협업, 여러 컴포넌트의 동시 개발에서 코드 fix, commit , test에 있어서 dependency 오류나 오버헤드 없이 자동 deploy 처리해주는 영역

CD: 가상 서버 및 QA (프로덕션 단계 전 )에서 스테이징 환경의 안정화. 여러 기능을 테스트 하기에 프러덕션 테스트와 유사한 환경 조성을 해줘야함

솔직히 그림을 보면 유추할 수 있었는데, 지금까지 이해를 못한건가..?
아무튼 그래서 두팀을 아우러 환경조성에 앞장서는 것이다.

서버 개발 배포

IoC


인프라 코드 .
솔직히 프로젝트 할 때는 aws gUI 환경에서 시나리오를 진행했기에, 큰 장점을 못느꼈다.
그냥 cli 환경만 사용하는 환경에서는 좋겠지만... 학생일때는 그런 곳이 있나? 라는 의문만 들었는데

  • 인터넷이 안되는 폐쇄망/ 내부망 등 특수한 환경에서 활용도가 높으려나(?)
  • 커맨드 하나로 가상 구축이 완료되는 편리함
  • 가상 머신의 설정 또한 편리하다( 클라우드 이미지 코드를 갖고와서 프로비저닝 하므로)
  • 설정 정보의 공유가 가능하다
  • 환경 구축을 자동화 한다
    • virtual Box에서 OS 다운, 파티션 설정, sSH 설치등이 간단히 VagrantFile 하나로 모두 설정 변경 가능하다는 점!
    • 루비 언어를 알아두면 도커파일 만들시 유리함.

  • VagrantFile 특징

    • 가상 머신의 기본 설정 기재 가능하다
    • 예시 : VagrantFile

Vagrant.configure("2") do |config|

    config.vm.define "vm-name" do |cfg|
	
        cfg.vm.box = "generic/centos8"
	 	# vagrant 박스 list (다운할 이미지)
        cfg.vm.hostname = "centos8"
        # OS 설정 >아님
        # hostname 임!

        cfg.vm.network "private_network", ip: "192.168.1.10"
		# network 설정 1
        # 가상머신 할당한 NAT 설정 ( 사설 ip 대역대)
        # ip 입력 안하면 dhcp라고 함
        cfg.vm.network "forwarded_port", guest: 22, host:19000, auto_correct: false, id "ssh"
	# network 설정 2
    # 포트 19000으로 접속시 가상머신 22 포트로 포트 포워딩
    # 참고로 포트 포워딩 
        cfg.vm.synced_folder ".", "/vagrant", disabled: true
		# 동기화폴더? (스토리지 저장소?개념인가)
        cfg.vm.provider "virtualbox" do |vb|

            vb.name = "vm-name"
			#hostnname 설정 > d아님!
            # virtualBox에서 보여질 가상머신 이름임!
            
            vb.cpus = 2
			# cpu 2개
            vb.memory = 2048
			# 메모리 2024 mb
        end

    end

end

vagrantfile 을 활용한 가상머신 N대를 한번에 생성하기

헷갈렸던 개념

  • 포트 포워딩
    • 도커에 잘 나오는 개념 , vagrant에도 있어서 찾아봄
    • 외부망 > > 내부망으로 갈 때!
    • 내부망 >> 외부망을 갈 때
      포트포워딩의 주체가 도커서버는 아님
  • NAT기능에 포함된 기능이라고 하는데.. 그럼 누가 해주지?
    • 라우터에서 해준다고 한다?
    • gateway 와 계속 헷갈렸음
  • Docker 컨테이너
    • 네트워크 구성 상 NAT 내부망에서 동작
    • 컨테이너 외부(인터넷망)에서 내부 접속 기본적으로 불가
    • NAT 환경의 포트포워딩(매핑) 기법이 사용됨
docker run -p 8080:80/tcp ubuntu [options..]
  • 8080번 tcp 포트로 유입되는 트래픽은 도커 컨테이너의 80법 tcp 포트로 전달됨
    • DockerFile Expose 80
    • tcp 기본 적용( protocol 생략시)
    • 다수 port 매핑시 다수 p 사용

Gateway 와 Router 의 공통점

- 둘다 네트워크 연결을 해줌
- 공인 ip를 사설 ip/ 사설 ip를 공인 ip로 바꿔주는 NAT

Gateway 와 Router 의 차이점

라우터

  • 라우팅 테이블로 대역대도 맞춰줌
  • 장비
  • LAN,WAN을 연결하는데 사용
  • 라우터 3,4 계층 사용 ( 네트워크~ 전송계층) 주로 패킷
  • 기본 게이트웨이

게이트웨이

  • 공유기? (개인집)
  • 방화벽?
  • 개념적 의미? (통로)
    • 로컬과 인터넷간의 중간장치
    • 패킷 어디로 보낼지 모를때 우선적으로연결
    • 다른 프로토콜 다른 네트워크 연결시 사용
    • 5계층 이상 ( 세션, 프레젠테이션, 애플리케이션 레벨)
      통신 및 스트림~ 메시지, 암복호화용?
    • 하나이상의 프로토콜
    • 주로 마지막이 1 로 끝남 bUt..
    • 192.168.0.250은 사설 IP 주소로 일반적으로 다양한 브랜드 및 라우터 모델의 게이트웨이 주소로 사용됩니다
profile
🏠TECH & GOSSIP

0개의 댓글