Infra/cloud

[AFOS] 1주차 AWS & 가상서버 - 실습 : EC2 배포

미니문92 2021. 7. 9. 03:25

2. 실습

실습 1. EC2(인스턴스) 배포 및 사용

 

 

SSH 키 페어 생성

  • SSH 구성
    pem(권장)

네트워크 및 보안 - 키페어 - 키페어 생성

 

  • 윈도우 OS 로 Putty -> ppk
  • MAC OS, 리눅스 SSH -> pem 

기본 VPC 존재 확인

 

 

  • 기본 VPC가 없을 경우
만약 default VPC 를 삭제했으면? 아래 처럼 VPC 마법사로 '단일 퍼블릭 서브넷이 있는 VPC' 를 생성 후 진행

VPC마법사 시작
단일 퍼블릭 서브넷이 있는 VPC
해당 값 입력 후 VPC 생성

 



 

EC2 배포 및 사용

 

인스턴스 시작 클릭

 

  • AMI는 인스턴스를 시작하는 데 필요한 소프트웨어 구성(운영 체제, 애플리케이션 서버, 애플리케이션)이 포함된 템플릿
  • '프리 티어만' 클릭 시 무료로 제공 가능한 운영체제만 필터링 됨

 

  • 인스턴스는 애플리케이션을 실행할 수 있는 가상 서버입니다
  • 이러한 인스턴스에는 CPU, 메모리, 스토리지 및 네트워킹 용량의 다양한 조합이 있으며, 애플리케이션에 사용할 적절한 리소스 조합을 유연하게 선택할 수 있습니다

 

유형 : HTTP  소스 : 위치무관으로 해야 외부에서 웹접속 가능

 

  • ec2 인스턴스 보안그룹 수정

ec2 인스턴스 창에서 보안그룹 들어가기
인바운드 규칙 편집

 

SSH를 내 IP로 하면 웹 SSH 접속이 안됨 / 위치무관으로 해야함

 

아까 생성한 키페어 선택해서 인스턴스 시작

 

AWS 관리 콘솔에서 EC2로 접속(SSH)

 

사용자 이름 : ec2-user로 지정 / 변경 가능

 

Shell 접속한 상태

 

 


 

기본적인 정보 확인 : 리눅스 기초 명령어들 확인 (익숙해질 필요가 있음)

# 사용자 전환
[ec2-user@ip-172-31-3-203 ~]$ sudo su -
Last login: Mon Jul  5 17:14:37 UTC 2021 on pts/1
[root@ip-172-31-3-203 ~]# su - ec2-user
Last login: Mon Jul  5 17:15:17 UTC 2021 on pts/1

# 현재 접속한 사용자 확인
[ec2-user@ip-172-31-3-203 ~]$ whoami
ec2-user

# 현재 Linux 버전 정보 확인
[ec2-user@ip-172-31-3-203 ~]$ cat /etc/system-release
Amazon Linux release 2 (Karoo)

# CPU확인
[ec2-user@ip-172-31-3-203 ~]$ cat /proc/cpuinfo |egrep '(processor|name)'
processor: 0
model name: Intel(R) Xeon(R) CPU E5-2676 v3 @ 2.40GHz

# 메모리 확인
[ec2-user@ip-172-31-3-203 ~]$ cat /proc/meminfo |grep MemTotal
MemTotal:        1006892 kB

# 다양한 시스템 관련 부하 확인 툴 설치
# sudo 는 슈퍼유저의 권한으로 실행
[ec2-user@ip-172-31-3-203 ~]$ sudo yum -y install dstat htop

# dstat 로 시스템 관련 부하 확인
# 예시) dstat -t(일시)l(평균부하)m(메모리)a(cdngy CPU Disk Network Paging System) --output (출력을 csv파일로 저장) 3(초마다)
[ec2-user@ip-172-31-3-203 ~]$ dstat -tlma 1
Terminal width too small, trimming output.
----system---- ---load-avg--- ------memory-usage----- ----total-cpu-usage---- -dsk/total- -net/total- ---paging-->
     time     | 1m   5m  15m | used  buff  cach  free|usr sys idl wai hiq siq| read  writ| recv  send|  in   out >
05-07 16:50:06|0.11 0.03 0.01| 118M 2088k  417M  446M|  1   0  98   0   0   0| 187k  279k|   0     0 |   0     0 >

# htop 으로 CPU Memory 등 시스템 자원 확인
[ec2-user@ip-172-31-3-203 ~]$ htop

# 프라이빗 IP 정보 확인
[ec2-user@ip-172-31-3-203 ~]$ ip -br -c addr show
lo               UNKNOWN        127.0.0.1/8 ::1/128 
eth0             UP             172.31.3.203/20 fe80::fe:f0ff:fe6a:b1e2/64

# 퍼블릭 ip 정보 확인
[ec2-user@ip-172-31-3-203 ~]$ curl ipinfo.io
{
  "ip": "54.180.158.239",
  "hostname": "ec2-54-180-158-239.ap-northeast-2.compute.amazonaws.com",
  "city": "Seoul",
  "region": "Seoul",
  "country": "KR",
  "loc": "37.5660,126.9784",
  "org": "AS16509 Amazon.com, Inc.",
  "postal": "03186",
  "timezone": "Asia/Seoul",
  "readme": "https://ipinfo.io/missingauth"

# 스토리지 확인 : 부트볼륨(EBS) 정보 확인
[ec2-user@ip-172-31-3-203 ~]$ lsblk
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0   8G  0 disk 
└─xvda1 202:1    0   8G  0 part /

[ec2-user@ip-172-31-3-203 ~]$ df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        482M     0  482M   0% /dev
tmpfs           492M     0  492M   0% /dev/shm
tmpfs           492M  440K  492M   1% /run
tmpfs           492M     0  492M   0% /sys/fs/cgroup
/dev/xvda1      8.0G  1.5G  6.6G  18% /
tmpfs            99M     0   99M   0% /run/user/1000


# 서비스 제공 확인(포트 Listen) : SSH(서버 서비스 중, TCP 22 포트 사용)
# 예시) ss -t(TCP) -l(Listen) -n(숫자로 출력)
[ec2-user@ip-172-31-3-203 ~]$ ss -tl
State         Recv-Q         Send-Q                  Local Address:Port                    Peer Address:Port         
LISTEN        0              128                           0.0.0.0:sunrpc                       0.0.0.0:*            
LISTEN        0              128                           0.0.0.0:ssh                          0.0.0.0:*            
LISTEN        0              100                         127.0.0.1:smtp                         0.0.0.0:*            
LISTEN        0              128                              [::]:sunrpc                          [::]:*            
LISTEN        0              128                              [::]:ssh                             [::]:*            

[ec2-user@ip-172-31-3-203 ~]$ ss -tln
State         Recv-Q         Send-Q                   Local Address:Port                   Peer Address:Port         
LISTEN        0              128                            0.0.0.0:111                         0.0.0.0:*            
LISTEN        0              128                            0.0.0.0:22                          0.0.0.0:*            
LISTEN        0              100                          127.0.0.1:25                          0.0.0.0:*            
LISTEN        0              128                               [::]:111                            [::]:*            
LISTEN        0              128                               [::]:22                             [::]:*      

# -t(TCP 세션 연결)
[ec2-user@ip-172-31-3-203 ~]$ ss -ttn
State        Recv-Q         Send-Q                   Local Address:Port                   Peer Address:Port          
ESTAB        0              0                         172.31.3.203:22                      13.209.1.57:2619          
ESTAB        0              0                         172.31.3.203:22                      13.209.1.57:25742         

# -p(프로세스 정보, 관리자 권한 필요)
[ec2-user@ip-172-31-3-203 ~]$ sudo ss -ttnp
StateRecv-Q Send-Q    Local Address:Port   Peer Address:Port                                                         
ESTAB0      0          172.31.3.203:22      13.209.1.57:2619   users:(("sshd",pid=4166,fd=3),("sshd",pid=3764,fd=3)) 
ESTAB0      0          172.31.3.203:22      13.209.1.57:25742  users:(("sshd",pid=3676,fd=3),("sshd",pid=3274,fd=3))