[AWS] EC2 Service

0ㅑ채
|2024. 4. 18. 21:13

1. 개요

- Amazon Elastic Compute Cloud의 약자

- 컴퓨팅 용량을 제공하는 서비스 - IaaS (Infrastructure as a Service)

- 운영체제(AMI)가 설치된 컴퓨터를 임대해주는 서비스

  • 서버를 만들고자 할 때 항상 켜져 있고 고정된 IP를 갖는 컴퓨터가 필요한 경우 사용

- Managed Service가 아니므로 네트워크나 컴퓨터 자체의 운영은 AWS가 담당하지만 나머지는 사용자가 결정

- 장점

  • 클릭 몇번으로 서버 생성
  • 생성과 삭제 편리
    • 고장난 경우 자동 복구
    • 부하 증가하면 같은 구성의 서버 복제하면 됨

- 단점

  • 서버 한 대로 서비스가 가능하고 트래픽에 거의 변화가 없는 경우 비용이 부담될 수 있다.

 

 

2. 주요 구성 요소

- 인스턴스: 가상 서버

- AMI: 가상 이미지 - 운영체제 이미지

- Key Pair: 외부에서 SSH를 이용해서 접속할 때 사용하기 위한 인증을 위한 키

  • 최근에는 ID와 PW를 사용해서 로그인하지 않음

- EBS: 스토리지

- 보안그룹: 특정 포트에 접속할 수 있는 그룹을 설정하는 기능

- Elastic IP: 고정된 IPv4 주소

 

 

 

3. 접속 방법

- AWS 웹 서비스에 로그인을 해서 관리 콘솔에서 조작

- 외부에서 SSH를 이용해서 접속

 

 

 

4. 인스턴스 생성

- AWS의 EC2 서비스에 접속

 

1) 인스턴스를 생성하고자 하는 region 선택 

2) 인스턴스 시작을 클릭한 후 작업

- 이름 작성

- 운영체제(AMI) 선택

- 인스턴스(하드웨어) 유형 선택

- 외부에서 로그인을 하기 위한 키페어 생성 또는 선택

- 네트워크 설정에서 기본적으로 사용할 포트를 설정

  • 보안 그룹을 생성하거나 선택하고 기본 포트 중 SSH, HTTP, HTTPs 설정 가능
  • 22, 80, 443 - 나중에 변경 설정이 가능하지만 22번은 포트 개방을 하지 않으면 수정을 못함

- 스토리지 설정: 저장 공간에 대한 설정

- 고급 세부 정보나 요약 (컴퓨터 대수를 설정 가능)은 기본 옵션 사용

- 인스턴스 시작을 누르면 새로운 인스턴스가 생성

 

 

 

5. 인스턴스 접속

1) 관리 콘솔에서 접속

- EC2 대시보드에서 인스턴스 ID를 클릭

- 연결 버튼을 클릭하고 새로 나오는 화면에서 다시 연결을 클릭

 

2) SSH를 이용해서 외부에서 접속 

- key pair 파일 필요 (pem 파일),  ec2의 public IP(인스턴스 ID를 눌러서 확인 - 13.125.244.153)

- Mac은 SSH가 바로 사용 가능하지만 windows는 open SSH를 설치해야 한다. 

  • Windows 기능에 포함되어 있다.

터미널에서 ssh -i 키페어파일경로 AMI이름@publicIP

 ssh -i pem파일경로 이미지이름(ubuntu)@IP 나 DNS

 

 

 

6. Web Server 생성

1) 리눅스에 접속

 

2) 웹 서버 생성

- 패키지 정보 업데이트: sudo apt-get update

- apache2 패키지 설치: sudo apt-get install apache2 -y

- apache2 서비스 시작: sudo service apache2 start

- 서비스 확인: ps aux | grep apache2

 

3) 보안 그룹 설정

- EC2 서비스는 모든 포트를 차단한다.

  • 외부에서 접속하는 것을 허용하지 않는다.

- 보안 그룹에서 필요한 포트를 외부에 개방해줘야 한다. 

  • webserver는 http 프로토콜을 사용하고 기본 포트가 80번이다.

- 인스턴스 상세 정보 화면으로 이동

  • 보안 탭으로 이동해서 열려 있는 포트 확인
  • 편집을 하고자 하는 경우 상단의 보안 그룹 링크를 클릭
    • 인바운드는 외부에서 접속할 때 보안을 설정하는 것이고 아웃 바운드는 내부에서 외부로 나갈 대 보안을 설정하는 것
  • 인바운드 규칙 편집을 누르고

 

4) 다른 컴퓨터에서 웹 페이지 접속

http://공인IP

 

 

 

7. 인스턴스 중지 및 삭제

1) 인스턴스 중지

- 현재 EC2 컴퓨터를 끄는 것과 비슷한 효과

2) 인스턴스 종료

- 인스턴스 삭제

 

 

 

8. MySQL 서버

1) EC2 인스턴스에 접속

 

2) 설치

- sudo apt-get update

- sudp apt-get install mysql-server

- 버전 확인: mysql --version

- mysql 접속

  • sudo mysql -u root -p
  • (기본 비밀번호는 없거나 관리자 비밀번호 - ubuntu)

- MySQL에 접속해서 관리자 비밀번호 재설정

  • use mysql;

- 관리자는 로컬에서만 접속하게 하고 비밀번호 수정

  • alter user "root"@"localhost" identified with mysql_native_password by "wnddkd";

- 변경 내용 적용:

  • flush privileges;

- 외부 접속

  • 관리자 권한을 가진 설정 파일 변경: sudo su
    • 다른 계정으로 접속: sudo su 계정
  • MySQL 설정 파일 변경
    • cd /etc/mysql/mysql.conf.d 명령으로 프롬프트 이동
      vi mysqld.cnf 명령으로 파일 편집으로 이동
      • i를 눌러서 편집 모드로 전환한 후 bind-address = 0.0.0.0 으로 수정
      • esc를 눌러서 명령 모드로 전환한 후 :wq! 를 입력해서 저장하고 종료
  • 서비스 재시작
    service mysql restart

- 사용자 등록

  • mysql 관리자로 접속: mysql -u root -p
  • 데이터베이스 생성: create database 이름;
    create database adam;
  • 유저생성: create user 유저이름@'%'identified by '비밀번호';
    create user 'adam@%' identified by 'wnddkd';
    • @은 유저 이름과 %를 구분하기 위한 것, 0.0.0.0과 의미가 같다.
    • % 대신에 IP를 작성하면 그 IP를 가진 곳에서만 접속 가능
  • 권한 부여: grant all privileges on * 또는 데이터베이스 이름.* to 유저이름;
    grant all privileges on *.* to adam;
  • 변경 내용 적용: flush privileges;

 

3) 3306번 포트에 대한 인바운드 규칙 설정

- EC2 인스턴스 콘솔에 접속해서 보안 탭에서 보안 그룹 ID를 클릭해서 수정

  • 인바운드 규칙 편집을 눌러서 3306번 모든 IP가 접속 가능하도록 설정

 

4) 외부에서 접속 프로그램을 이용해서 접속

- DB HOST: EC2의 public IP

- Port: 3306

- DB NAME: itstudy

- USER: adam

- Password: wnddkd

 

 

 

4. Docker 설치

- Linux의 중앙 저장소에 도커 프로그램이 등록되어 있지 않아서 도커는 저장소를 리눅스에 등록하고 설치

  • 일부 프로그램은 도커처럼 키 등록을 하고 저장소를 등록한 후 패키지 정보를 업데이트 한 후 설치하기도 함

 

1) 저장소를 등록

- 패키지 덥데이트:

  • sudo apt-get update

- 키등록을 위한 패키지 설치

  • sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common

- 키를 추가

- 저장소를 추가

 

2) 설치

- 패키지 업데이트

  • sudo apt-get update

- 설치

  • sudo apt-get install docker-ce docker-ce-cli containerd.io

- 버전 확인

  • sudo docker version

- 서비스 등록 및 실행

  • sudo systemctl enable docker
  • sudo systemctl start docker

 

3) 실행 확인

  • sudo docker run hello-world
  • sudo docker ps -a

'AWS' 카테고리의 다른 글

[AWS] DataBase  (1) 2024.04.18
[AWS] 개요  (0) 2024.04.11