AWS 계정은 갖추고, 로그인을 하셨다는 가정하에 진행하며, mac os를 기준으로 작성됩니다.
EC2는 AWS의 가상 클라우드 서비스로 쉽게 AWS로부터 컴퓨터를 빌린다고 생각하시면 될 것 같습니다.
우선 AWS 콘솔 홈에서 EC2 서비스를 검색해서 접속해줍니다.

그리고 좌측 탭에서 인스턴스로 진입해줍니다. EC2에서 인스턴스란 컴퓨터랑 대응된다고 생각하시면 될 것 같습니다. 인스턴스를 빌린다 = 컴퓨터를 빌린다.

우측 상단에 인스턴스 시작을 눌러줍니다.

이름을 지정해줍니다. 저의 경우 TensorRT라는 추론 가속 실험을 할 목적으로 인스턴스를 만드는거라서 test-tensorrt로 만들어주었습니다. 원하시는 이름으로 편하게 하시면 되요.

이제 운영체제를 설정해야하는데요. 저는 우분투가 익숙해서 운영체제는 우분투 20.04 LTS로 만들도록 하겠습니다. 윈도우나 다른 것들도 가능해요.

이제 인스턴스 유형을 설정해주어야 합니다. 인스턴스 유형은 곧 빌릴 컴퓨터의 스펙이라고 생각하시면 되구요. 저의 경우 GPU를 통한 추론 가속 실험을 해야하니, GPU가 달려있는 인스턴스를 빌려야해요. 본인에게 적합한 것을 고르시면 되고, 이 부분에서 빌리는 비용이 발생하게 됩니다. EC2는 사용한 만큼만 지불하는 방식인데, 컴퓨터 스펙에 따라서 가격이 많이 갈리니 자신에게 꼭 필요한 만큼의 리소스만 대여 받는게 중요합니다.
두 링크를 참고해서 요금 폭탄 맞지 않도록 조심하시길 바랍니다. 저의 경우 p3.2xlarge를 빌려서 사용할 예정입니다.(저는 회사 개인 자기계발 개정이라 무제한 지원임 !)

이제 키 페어를 설정해주어야 합니다. 서버에 접속을 할때 인증을 하는 방법 중 하나인데, 요 키 파일이 없는 사용자는 접근이 불가하니 보안상의 의미로 존재합니다. 저 밑에 pem 파일 없이 접속할 수 있도록 하는 방법도 기재해두었습니다.
일전에 만들어둔 키 페어가 없다면, 새로 하나 생성하면 됩니다. 새 키 페어 생성을 클릭하세요.

이름을 적당히 지정해두고, 키 페어 유형은 RSA 그리고 파일 형식은 .pem으로 만드시면 됩니다. 키 페어 생성을 누르면 파일이 하나 다운로드 될 껀데 이 파일을 잃어버리면, EC2 접속 못하니까 잘 보관해 두세요. 저의 경우 ~/aws/keys 라는 디렉토리를 만들어서 따로 보관해 주었습니다.

네트워크는 기본 설정으로 가겠습니다.

스토리지의 경우 저는 동영상 관련된 내용이라 좀 넉넉히 잡아주겠습니다. 추후에 변경할 수 있으니 걱정은 안하셔도됩니다.

고급 세부 정보는 하나도 건드리지 않겠습니다.
이제 요약부분에서 자신이 설정한 내용을 한번 더 확인하고, 인스턴스 시작을 눌러줍니다.

성공적으로 만들어졌으면, 아래와 같은 화면이 나옵니다. 만듬과 동시에 인스턴스는 시작이되고, 과금이 시작됩니다.

요금을 줄이고자 한다면, 사용하지 않을땐 중지 버튼을 눌러주시면 요금을 줄일 수 있습니다. 근데 저희가 만들 때 스토리지도 만들었고, 온디맨드 방식으로 만들었기 때문에 미사용시에도 점유되어 있는 리소스가 있기 때문에 일정 수준의 요금은 청구가 됩니다. 그래도 요금이 많이 줄어들꺼에요.

만약 다 사용을 하고 더 이상 필요가 없다 싶으면, 인스턴스 종료를 해주면 일정 시간(수분)이 지난 후 삭제됩니다. 이때는 EC2에 대한 과금은 더 이상 발생하지 않습니다. 근데 아까 EC2 생성할 때 스토리지도 생성했었습니다. 여기서 EC2를 사용하는 동안 파일이나 데이터들이 들어있을텐데, 이것은 인스턴스 종료를 통해서 삭제를 했어도 별개로 보존해 줍니다. 즉, 디스크(EBS) 사용 요금이 계속 청구가 될 수 있습니다. 따라서 좌측 Elatic Block Store에서 만든 스토리지까지 없애주어야 비용이 아예 발생하지 않을꺼에요.

연결되어 있는 파일 시스템이 없다면(EC2가 종료되어서 삭제되었을 경우) 볼륨 분리를 하면, 볼륨 삭제 버튼이 활성화되어서 삭제할 수 있을꺼에요.

지금까지 생성한 EC2는 임시의 IP가 붙어 있습니다. 만약 EC2를 중지하고, 다시 시작한다면 새로운 IP가 할당 되게 되요. 그래서 매번 서버 접속을 위해 변경된 IP를 확인한 후에 접속해야 하는 번거러움이 있습니다. 그래서 아예 하나의 IP로 고정해서 그 IP로만 접속할 수 있도록 EIP(Elastic IP, 탄력적 IP, 이하 EIP)를 부여하겠습니다.
우선 네트워크 및 보안 탭에서 탄력적 IP로 들어가주세요. 고정 IP인데 왜 이름은 탄력적이냐? 하면..아마도 생성한 IP도 EC2 외에도 네트워크 인터페이스 등에도 똇다 붙혔다 할 수 있는 모듈 같은 느낌이라서 유연하게 사용할 수 있다는 의미가 아닐까 싶네요.

우측 상단에 탄력적 IP 주소 할당을 눌러줍니다.

그러고 바로 할당 눌러주면 생성될꺼에요.

EIP를 사용하는 것 또한 비용이 발생합니다만, 무시해도 될 정도로 적습니다. 궁금하시면 한번 찾아보시면 좋을 것 같아요.
이제 생성된 EIP를 만들어둔 EC2에 연결해주는 작업이 필요합니다.

생성해둔 인스턴스를 찾아서 연결을 클릭해줍니다.

그럼 아래 EIP의 요약창에 연결된 인스턴스 ID를 통해서 연결이 잘됬는지 확인할 수 있습니다.

이제 SSH를 통해서 EC2로 접속해보겠습니다.EC2의 인스턴스 ID를 누르면, 상세정보가 나옵니다.

우측 상단에 연결을 눌러줍니다.

그럼 접속 방법이 있을 텐데요. 일단 아까 .pem를 저장해둔 디렉토리에서 아래 명령어를 통해서 pem 파일 권한을 변경해줍니다.
$ chmod 400 ${자신의 .pem 파일 경로}
그리고 맨 아래 ssh로 시작하는 명령어를 복사해서 접속해줍니다.
$ ssh -i ${자신의 .pem 파일 경로} ubuntu@ec2-x-xxx-xxx-xx.ap-northeast-2.compute.amazonaws.com
아래와 같은 문구가 발생하면, yes를 입력하시면 됩니다.
The authenticity of host 'ec2-3-36-113-20.ap-northeast-2.compute.amazonaws.com (3.36.113.20)' can't be established.
ED25519 key fingerprint is SHA256:y8mgnN5I8llr+2vz4UW4XQWuR3xN/8O/+PnVDYXJAjI.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? ㅛyes
아래와 같은 문구가 발생한다면, 잘 접속된거에요. EC2를 생성하면, 기본 유저 이름은 ubuntu 입니다.
Warning: Permanently added 'ec2-3-36-113-20.ap-northeast-2.compute.amazonaws.com' (ED25519) to the list of known hosts.
Welcome to Ubuntu 20.04.5 LTS (GNU/Linux 5.15.0-1026-aws x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
System information as of Mon Jan 2 23:01:24 UTC 2023
System load: 0.0 Processes: 156
Usage of /: 1.6% of 96.73GB Users logged in: 0
Memory usage: 0% IPv4 address for ens3: 172.31.1.79
Swap usage: 0%
0 updates can be applied immediately.
The list of available updates is more than a week old.
To check for new updates run: sudo apt update
The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.
ubuntu@ip-172-31-1-79:~$
매번 ssh -i 뒤에 pem 경로를 입력하는 것도 번거러우니 pem 없이 접속할 수 있도록 수정해보겠습니다.
로컬인 자신의 컴퓨터(EC2가 아닌)에서 ssh-keygen을 통해 프라이빗키와 퍼블릭키를 생성합니다.
$ cd ~/.ssh
$ ssh-keygen
그럼 총 2개의 파일이 생성되며, 프라이빗키는 어디에 알리는 용도가 아니고, 생성된 퍼블릭키를 미리 서버에 등록해두고 클라이언트인 로컬과 서버 간 양방 인증을 통해서 접속을 허용해주는 방식입니다.
아래 명령어를 입력해서 출력된 퍼블릭키 값을 복사해줍니다.
$ cat id_rsa.pub
이제 서버인 EC2로 돌아가서 아래 명령어를 통해서 텍스트 파일을 열고, 복사한 퍼블릭키를 붙여넣어줍니다.
이때, 기존 키를 제거하거나 이어 붙히면 안되고, 이미 어떤 키 값이 들어가 있더라도 개행해서 한 줄 아래에 복사해서 붙혀넣어 줍니다.
$ vi ~/.ssh/authorized_keys
:wq를 통해 저장하고 빠져 나옵니다.
이제 pem 파일의 경로를 지정한 부분을 제외한 아래 명령어로 접속해봅니다.
$ ssh ubuntu@${인스턴스에 연결한 EIP}
IP를 외우기도 그렇고..매번 IP를 쳐서 서버에 들어가는 것도 번거러움이 있으니, 특정 문자열로 접속할 수 있도록 해보겠습니다.
서버가 아닌 로컬에서 아래 파일을 열어줍니다. 없다면, 만들어질꺼에요.
$ vi ~/.ssh/config
아래와 같이 작성해서 저장해줍니다.
Host ${접속할 때 사용하고자 하는 텍스트}
Hostname ${인스턴스에 연결한 EIP}
User ubuntu
저의 경우 ${접속할 때 사용하고자 하는 텍스트}를 생성한 EC2 이름과 같은 test-tensorrt로 했습니다. 그래서 접속시에는 아래와 같은 명령어로 접속할 수 있게 되었어요.
ssh test-tensorrt
끝.