[구름 k8s] TIL 2-1-4

Peppie·2022년 9월 8일
0

1. 컴퓨팅 서비스 - EC2

EC2 instance를 이용한 application 개발/배포 환경 -> 실습환경 : web application

VS Code를 이용한 EC2 instance 연결을 통해 직접 application 개발 -> SSH 이용

VS Code를 이용하여 원격으로 EC2 instance 접속시 이점

  • 편리한 에디터 기능 사용
  • 별도 SSH client를 사용하지 않고 자체적인 터미널을 이용하여 shell 사용 가능
  • EC2 instance 파일을 쉽게 다운로드 가능

VS Code 접속/통신구조


참고

VS code를 이용한 EC2 instance 접속 방법

  • VS Code에 SSH를 이용한 원격 접속 extension 설치
    Extension 이름 : remote-ssh
  • VS Code로 원격접속 위한 환경 설정
    환경설정파일(config)에 원격 접속할 서버에 대한 정보와 key 정보 등록

    원격 터미널 -> 구성 아이콘 -> 사용자 홈 디렉토리/.ssh/config 선택

    • Host : 원격접속 서버 이름
    • HostName : 원격 접속 Host IP 주소
    • User : 원격접속 서버 ID
    • ForwardAgent yes
    • IdentityFile <공개키 파일 경로 및 파일명 - 반드시 절대 경로>

    공개키 암호 파일에 대한 퍼미션을 사용자에 대해서만 읽기 권한을 갖도록 변경

    원격 터미널 -> 원하는 호스트 선택 -> 연결 아이콘을 이용한 연결

EC2 instance 연결 정보 확인

EC2 메뉴 -> 인스턴스 -> 연결을 원하는 EC2 instance의 인스턴스 ID 항목에서 마우스 우클릭 -> 연결 메뉴 항목 선택 -> 연결 방법에 대한 정보 출력

EC2 instance 이미지 (AMI) 생성

  • 생성된 EC2 instance를 이용하여 이미지 생성 가능 -> EC2 instance에 대한 backup 이미지가 됨
  • EC2 instance 생성시 사용하는 AMI가 된다.

EC2 메뉴 -> 이미지를 생성할 EC2 instance 선택 -> 작업 메뉴 -> 이미지 및 템플릿 -> 이미지 생성

  • 이미지 이름
  • 이미지 설명
  • 인스턴스 볼륨
  • 태그 설정 (둘 중 택1, 선택 결과에 따라 태그 지정)
    이미지와 스냅샷을 함께 태그 지정 or 이미지와 스냅샷을 별도 태그로 지정

생성된 이미지 확인

EC2 메뉴 -> AMI -> 생성된 이미지 확인

유의) AMI와 스냅샷은 전혀 다른 개념!

번외) EC2 instance 생성시 퍼블릭 IP 비활성화로 생성하면 퍼블릭 IPv4 주소 할당 X ?

퍼블릭 IP 비활성화시 해결책: EIP 생성/연결로 사용 가능

EC2 instance로 템플릿(Template) 생성

템플릿(Template)

instance를 생성할 수 있는 정보를 저장한 파일 -> 이미지와는 다르다!

EC2 instance 템플릿

EC2 instance를 생성할 수 있는 정보를 가지고 있는 파일, Auto Scaling 수행시 사용

EC2 메뉴 -> 템플릿을 생성하려고 하는 EC2 instance 선택 -> 이미지 및 템플릿 -> 인스턴스에서 템플릿 생성

  • 시작 템플릿 이름
  • 템플릿 버전 설명
  • Auto Scaling 지침 - Auto Scaling에서 사용시 선택
  • 태그 설정
  • 시작 템플릿 콘텐츠 - Auto Scaling 지침 선택시 필수 (필요 항목만 추가/선택)
    서브넷 : 시작 템플릿에 포함 X
    고급 세부 정보 : 종료 방식 & 최대 절전 중지 방식 모두 시작 템플릿에 포함하지 않음 선택
  • -> 시작 템플릿 생성

EC2 메뉴 -> 시작 템플릿 메뉴에서 확인

EC2 instance에 대한 Scale up/Scale out

server 접속 client 수에 따른 server 성능 향상 및 분산 처리

Scale up

EC2 instance에 대한 HW 성능 향상, 자동화 안됨

scale out

EC2 instance를 여러개 복제하여 생성 (분산 처리), 자동화 가능

EC2 Scale up

  • 현재 EC2 instance의 HW 성능을 높이는 동작
  • 초기 설정된 EC2 instance를 사용중에 성능을 높여야 하는 경우 적용 과정
  • AWS 서비스 중 scale up을 수행하는 별도 서비스 제공 X
  • 사용자 필요에 따라 scale up을 수행하여 적용

Scale up을 위한 simulation

  • apache 제공 Apache Bench (부하 발생기)를 이용하여 web server에 대한 부하 테스트 수행 -> web server에 대한 scale up 필요성 확인 및 수행

  • web server가 동작 중인 EC2 instance에는 top 명령으로 현재 시스템 모니터링 수행

    top 명령

  • Test server 기능을 수행하는 EC2 instance를 생성하여 Apache Bench 설치 및 부하 테스트

    • sudo yum install -y httpd-tools : apache bench
      (부하 분산기 설치)
    • ab (apache bench, 부하 발생기) 명령 : ab [옵션] <IP주소>/
      • -n : 성능 검사 요청(request) 수, 한 client가 보내는 요청수 의미
      • -c : 동시 접속 client 수, -c 옵션이 -n 옵션보다 크면 안됨!
        ex) ab -n 1000 -c 10 0.0.0.0/
  • Scale up 과정

    1. 기존 EC2 instance에 대한 이미지 생성
    2. 생성된 이미지를 이용하여 향상된 성능의 인스턴스 유형으로 EC2 instance 생성
      -> scale up
    3. 새로 생성된 EC2 instance를 기존 instance 대체 (EIP 사용시 EIP 연결 EC2 instance 변경)

2. TIF

어제부터 내내 그리고 오늘도 오전내내 ec2가 ssh에 접속이 안되길래 별에별 방법을 다 썼는데도 계속 안되다가 어쩌다 우연히 이 글을 보고 혹시나 싶어 원래 쓰던 집 와이파이를 끊고 모바일 핫스팟으로 putty 연결을 시도했더니 정말 멀쩡히도 성공! 역시 SK가 만악의 원흉이었다...(SKB가 가정용 인터넷에선 22번 포트 막음)
천만다행히도 데이터 무제한이라 남은 기간 내내 ec2 원격접속할 일이 있으먼 앞으로도 이렇게 핫스팟을 켜야할지도 모르겠다. 그래도 VS Code ssh 접속이 안되는건 여전한데, 당장 비중이 그렇게 큰 거 같지도 않아서 일단은 가볍게 넘겼고, 나중에 진짜 필요한 때가 되면 그때 다시 알아봐야겠다.

오늘 아침까지만 해도 많이 절망스러웠는데, 점심시간 되고나서 드디어 문제가 해결되니 남은 시간동안은 마음이 많이 가벼워져서 아무튼 좋았던 하루 ^^

0개의 댓글