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! 를 입력해서 저장하고 종료
- cd /etc/mysql/mysql.conf.d 명령으로 프롬프트 이동
- 서비스 재시작
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
- 키를 추가
- curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
- 저장소를 추가
- sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
- echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg]
- https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
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 |