[Cloud Computing] 1. AWS EC2

Minjeong Park·2021년 7월 19일
0

Cloud Computing

목록 보기
2/4

저번 시간에 우리는 갑자기 늘어나는 트래픽을 감당하기 위해 필요한 시간에만 서버를 다른 곳에서 잠깐 빌리고, 필요하지 않게 되면 다시 반납하기 위해 Cloud Computing을 사용한다고 했다. 그렇다면 컴퓨팅 서버는 어떻게 빌릴 수 있을까?

📙 AWS EC2

바로 AWS EC2로 빌릴 수 있다! AWS EC2IaaS의 대표격이라고 볼 수 있다. 작은 서버 컴퓨터를 네트워크를 통해 빌린다고 생각하면 된다. 네트워크스토리지가 구성된 서버OS만 선택하여 우리가 편하게 사용할 수 있다.

🎨 EC2의 인스턴스 종류

AWS EC2여러가지 종류가 있다. 서버를 사용할 땐 특정한 목적이 있다. 어떤 회사는 컴퓨팅 파워가 중요한 것들을 빌릴 수 있고, 어떤 회사는 인메모리 데이터 베이스를 쓰다보니 램이 큰 인스턴스가 필요할 수도 있고, 뭐 어떤 회사는 스토리지가 커야할 수도 있다. 따라서 여러가지 인스턴스 종류가 필요하고, 사용 용도에 맞는 상황에 맞게 써야할 필요가 있다.

👪 인스턴스 패밀리 + 인스턴스 세대

Instance Family같은 용도비슷한 성능의 밸런스를 가진 인스턴스 유형들을 묶은 것이다. 인스턴스 세대높을 수록 최신, 좋은 성능을 가진다. 인스턴스 패밀리 + 인스턴스 세대는 다음과 같다.

인스턴스 패밀리 + 인스턴스 세대설명사용 사례
T3, T2, M5, M5A, M4범용, 밸런스 잡힌 성능웹 사이트, 애플리케이션
C3, C4, C5컴퓨팅 최적화, 높은 CPU 성능배치 처리, 웹 서버, 비디오 인코딩
G3, P2, P3GPU 최적화, 높은 GPU 성능기계 학습, 3D 작업
R5, R4, X1e, X1메모리 최적화, 큰 RAM 용량In-Memory DB(예: Spark), 데이터 마이닝
I3, I3EN, H1스토리지 최적화, 높은 디스크 처리량(I/O가 많을 때)데이터 웨어하우징, 분산처리DB

📈 인스턴스 크기

인스턴스 크기는 말 그대로 같은 인스턴스 세대에서의 상대적인 크기를 나타낸다.

😊 EC2를 만들어보자!

  1. 먼저, AWS에 회원가입을 하고, 로그인한다.
    관리 콘솔로 넘어와서 EC2에 접속한다.

.

  1. 인스턴스 시작을 눌러서 인스턴스를 만들어보자.

  2. 나는 프리티어Ubuntu Server 20.04 LTS인스턴스를 만들 것이다. 안보일 땐 검색창에 ubuntu를 검색하면 더 빨리 찾을 수 있다.

  3. Ubuntu Server 20.04 LTS에서 프리티어를 위해서는 t2.micro를 사용해야 한다. vCPUs가상 CPU 갯수다.t2.micro 선택 뒤 다음:인스턴스 세부 정보 구성을 클릭한다.

  4. 다음으로 인스턴스 세부 정보 구성 페이지로 넘어간다. 각각을 살펴보자.

  • 인스턴스 갯수
    말 그대로 인스턴스의 갯수다. 10을 입력하면 인스턴스를 10개 만들 수 있다.
  • 구매 옵션

    AWS에 나와있는 구매옵션의 설명은 다음과 같다.
스팟 인스턴스를 요청하고 인스턴스 시간당 지불하고자 하는 최대 가격을 지정할 수 있습니다. 
입찰 가격이 현재 스팟 가격보다 높으면 스팟 인스턴스가 시작되고 
현재 스팟 가격으로 요금이 부과됩니다. 
대체로 스팟 가격은 온디맨드 가격보다 훨씬 낮은 편이므로, 
가변적이고 중단이 허용되는 애플리케이션에 대해 스팟 인스턴스를 사용하면 
최대 90%까지 인스턴스 비용을 절감할 수 있습니다. 

즉, 사용 중이지 않은 인스턴스를 싼값에 쓰기 위해 내가 낼 수 있는 시간 당 최고 가격을 입력해놓고 최고 가격 이하인 경우에만 그 인스턴스를 사용하는 방법이다. 하지만 현재 가격최고 가격을 넘어가면 인스턴스가 꺼지기 때문에 주의해야 한다.

  • 네트워크
    vpcVirtual Private Cloud의 약자로, private한 네트워크를 구성하고 싶을 때 많이 사용한다. 보통 회사에서 사용하고 지금 당장 우리가 사용할 일은 없다.
  • 서브넷
    vpc와 관련된 설정으로 vpc 내의 서브넷을 설정할 수 있다.
  • IAM 역할
    똑같은 AWS 계정을 기업에서 사용한다고 가정하자. A부서에는 A부서 만큼, B부서에는 B부서 만큼, C부서에는 C부서 만큼 사용하게 하고 싶다. 그럴 때 IAM - Identity and Access Management을 사용한다. 설정에 따라서 인스턴스에 대한 Access 권한을 설정한다.
  1. 다 됐다면 다음: 스토리지 추가를 눌러준다.

    여기선 원하는 만큼 추가 EBS 볼륨 및 인스턴스 스토어 볼륨을 추가할 수 있다. EBS - Elastic Block StoreEC2에서 사용하는 외장하드다. EC2 Instance는 하나의 가상 컴퓨터를 두는 것이므로, EC2 인스턴스 내에는 하드디스크 역할을 무언가가 있다. 위 사진을 보면 볼륨 유형루트인 스토리지가 있는데 이것이 바로 그 HDD라고 생각하면 된다. 작업을 하다보면 외부 볼륨에서 작업을 하고 연결을 해주고 싶을 때가 있을 것이다. 그럴 때 사용하는 것이 EBS다. 정말 외장하드 같은 느낌이다. 인스턴스가 종료되더라도 EBS는 남아있다. 임의의 EBS는 또 다른 인스턴스에 연결될 수 있다. 정말 usb, 외장하드라고 생각하면 된다.

  2. 그 다음으로 태그 추가 페이지로 넘어간다.

    나중에 인스턴스가 엄~청 많아지면 구분하기가 어려워질 수 있다. 태그를 추가하면 인스턴스를 구분할 수 있다. key-value형태로 넣을 수 있고, python의 dictionary 형태처럼 넣어두면 사용하기 용이하다.

  3. 다음은 보안 그룹 구성이다.

    예를 들어, 나는 어떤 특정 인스턴스테스트 서버로 쓰고 싶어서 회사 사람만 들어올 수 있게 하고 싶다. 그럴 땐 여기서 서브넷 마스크를 씌운다.

    위처럼 예로 만들어보자. 좌측 하단 규칙 추가를 누르고, 유형을 본인이 보안을 걸고 싶은 유형으로 선택한다. 데이터베이스를 감추고 싶을 땐 MySQL 등을 선택할 수 있다. 지금은 사용자 지정 TCP라고 한다. 프로토콜TCP이고, 포트범위80 웹서버 라고 하자. 소스는 사용자 지정으로 특정 IP만 들어오게 하고 싶다면 특정 IP만 추가할 수 있고(예: 123.123.123.123/32), 같은 네트워크를 쓰고 있는 회사사람만 들어오게 하고 싶다면 123.123.123.0 이런 식으로 마지막을 비워둘 수도 있다. 모든 사람이 들어오게 하고 싶다면 0.0.0.0으로 할 수 있다.

    위와 같이 보안 그룹을 만들고 검토 및 시작을 누른다.

  4. 다음으로 검토하는 페이지가 나오는데, 올바르게 했는지 검토하고 넘어가면 된다.

  5. 시작하기를 누르면 기존 키 페어 선택 또는 새 키 페어 생성이 나온다.

    키 페어는 잃어버리면 완전 큰일난다! 키페어는 인스턴스에 접근할 수 있는 열쇠인데, SSH를 통해 인스턴스에 접속하려고 하면, 인스턴스를 만들 때 지정한 키 페어 파일을 가지고 있어야 한다!
    새 키페어 생성을 선택하고, 키 페어 이름을 선택한 후, 키 페어 다운로드를 클릭해서 키 페어를 다운로드 받아주면 된다. 이것은 절대로 임의로 삭제해선 안되고, 어디 전달하거나 그럴 때 굉장히 신중하게 행동해야 한다.
    그 뒤 인스턴스 시작을 눌러준다.

  6. EC2 메인페이지로 넘어가서 기다려보면 인스턴스가 잘 실행중인 것을 확인할 수 있다. (2~3분 정도 소요된다.)

😉 EC2 인스턴스에 접속해보자!

이제 EC2 인스턴스에 접속해보자! 그 전에 인스턴스에 대해 IP를 할당해줘야 한다. 인스턴스 마다 할당되어 있는 IP가 있지만, 이는 인스턴스를 껐다 켰다 하게 되면 변동될 수 있다. 따라서 고정할 수 있는 IP를 할당할 수 있어야 한다. 고정 IP를 할당하러 가보자!

고정 IP 할당하기

  1. 왼쪽 메뉴바에서 탄력적 IP를 눌러서 들어온다.
  2. 오른쪽 위 탄력적 IP주소 할당을 클릭한다.
  3. 오른쪽 위에서 지역을 버지니아 북부로 바꾸고, 할당을 눌러서 만들어준다.
  4. 만든 탄력적 IP주소를 선택하고, 작업을 눌러서 탄력적 IP 주소 연결을 클릭한다.
  5. 인스턴스 선택을 눌러서 인스턴스를 선택해주고, 연결을 누른다.

인스턴스 접속하기

드디어 접속.. cmd(Windows) 또는 terminal(Linux)을 열어서 아까 다운로드 한 키 페어가 있는 폴더 위에서 다음 명령어를 입력해준다.

  • ubuntu
ssh ubuntu@인스턴스IP -i 키페어명.pem
  • Amazon Linux 기준
ssh ec2-user@인스턴스ip -i 키페어명.pem

-i 옵션을 이용해서 pem파일을 넣어주는 것이다.

yes 해주면 된다.

그럼 이렇게 접속이 된 모습을 확인할 수 있다!😍 command로 exit을 하면 창을 나갈 수 있다.

서버 혹은 개인 서비스를 올리고, 이러한 인스턴스를 여러개로 만들고 싶을 때는 커스텀 AMI를 생성하면 된다.

💟 커스텀 AMI 생성하기

  1. 인스턴스 상태를 중지시키고, 오른쪽 마우스를 눌러 이미지 및 템플릿 → 이미지 생성을 클릭한다.
  2. 이미지 이름을 넣어주고 이미지 생성을 클릭한다.
  3. 이미지 탭에서 AMI를 클릭하고, 상태가 pending에서 available로 넘어가면 준비 완료!

  4. 인스턴스 탭으로 넘어와서 인스턴스 시작을 누르고, 나의 AMI를 누르면 커스텀 AMI를 확인할 수 있다.

단점은.. 이건 돈 들어간다! 조심조심..

😆 AWS EC2 EBS 사용하기

  1. Elastic Block Store에 있는 볼륨 탭으로 들어간다.

  2. 볼륨 생성을 눌러서 EBS 볼륨을 생성한다.

    (지금 있는 저 볼륨은 실행중인 인스턴스다. 절대 날리면 안된다!)

  3. USB 쓰는 느낌으로 4기가만 한다. 가용 영역이 현재 인스턴스 영역과 일치하는지 꼭 확인하자.

  4. 인스턴스가 중지중이라면 인스턴스를 실행시켜준다.
    기존에 가지고 있는 인스턴스에 대해 연결을 해주기 위해 오른쪽 클릭을 눌러서 볼륨 연결을 누른다. 적당한 인스턴스를 선택해서 연결한다.

  5. 다음 명령어들을 입력해서 EC2 인스턴스에 연결한다.

sudo fdsik /dev/xvdf
sudo mkfs.ext3 /dev/xvdf1
sudo mount -t ext3 /dev/xvdf1 /mnt


마지막 sudo mount -t ext3 /dev/xvdf1 /mntfile system/dev/xvdf1인 형식을 가진 mnt폴더에 마운트 하겠다는 뜻이다. df -k를 통해 확인을 해보면 4GB 짜리 mnt가 생긴 것을 확인할 수 있다.

profile
아자아잣

0개의 댓글