본문 바로가기

SK네트웍스 Family AI캠프 10기/Daily 회고

78일차. AWS - EC2

더보기

 

78일 차 회고.

 

 이번 연휴에 일정이 다 차 있어서 공부를 많이는 하지 못할 것 같다. 그리고 연휴가 끝나면 단위 프로젝트를 시작해야 해서 이것도 준비해야 할 것 같다. 일단 연휴 동안 회고를 작성하고, 남은 시간에는 코딩테스트를 준비해야겠다.

 

 

 

 

1. AWS

 

 

1-1. EC2

 

인스턴스 생성 - ec2-mysql

  • Name
    • ec2-mysql
  • Application and OS Images
    • Amazon Linux 2023 AMI (64-bit x86)
  • Instance type
    • t2.micro (프리 티어)
  • Key pair
    • ec2-mysql-keypair (새로 생성)
  • Network settings
    • ec2-mysql-sg (보안 그룹 생성)

 

SSH 접속 - ec2-mysql (XSHELL)

  • 세션 생성 
    •  이름
      • ec2-mysql
    • 호스트
      • EC2의 Public IPv4 address
  • 사용자 인증 설정
    • 사용자 이름
      • ec2-user
    • 방법
      • Public Key
  • SSH 사용자 인증
    • Public Key - 사용자 키
      • ec2-mysql-keypair.pem
    • 암호 저장
  • ec2-mysql 접속

 

yum 명령어

  • 전체 업데이트
sudo yum update
  • 보안 관련 패키지 업데이트
sudo yum update --security

 

SSH 설정

  • ssh key 생성
ssh-keygen -t rsa

ls -l ~/.ssh
  • authorized_keys
cat >> ~/.ssh/authorized_keys < ~/.ssh/id_rsa.pub
  • 테스트
ssh localhost

 

AMI(Amazon Machine Image)

  • EC2 인스턴스 설정을 이미지로 저장하여 나중에 동일한 인스턴스를 생성할 수 있도록 한다.

 

AMI 생성

  • 이미지 이름을 지정하고 나머지 설정을 확인한 후, 이미지를 생성한다.

 

인스턴스 생성 - ec2-client

  • 인스턴스 이름 및 OS 이미지를 지정한다.

  • 인스턴스 타입을 지정한다.

  • 기존의 Key Pair를 선택한다.

  • 기존의 네트워크를 지정한다.

  • 스토리지를 설정한다.

  • 설정한 항목을 확인한 후, 인스턴스를 생성한다.

 

SSH 접속 - ec2-client (XSHELL)

  • 세션 생성 
    •  이름
      • ec2-client
    • 호스트
      • EC2의 Public IPv4 address
  • 사용자 인증 설정
    • 사용자 이름
      • ec2-user
    • 방법
      • Public Key
    • 설정
      • 사용자 키
        • ec2-mysql-keypair.pem
  • ec2-client 접속

  • hosts 파일 편집
    • 모든 세션 적용
      • 도구 > 키 입력 보내기 > 모든 세션
sudo vim /etc/hosts
...

# AWS Private IPv4
172.31.46.112   ec2-mysql
172.31.42.60    ec2-client
  • hostname 변경
    • 현재 세션 적용
      • 도구 > 키 입력 보내기 > 현재 세션
# ec2-mysql
sudo hostnamectl set-hostname ec2-mysql

# ec2-client
sudo hostnamectl set-hostname ec2-client
  • EC2 간 SSH 접속
# ec2-mysql
ssh ec2-client

# ec2-client
ssh ec2-mysql

 

MySQL - ec2-mysql

sudo yum install https://dev.mysql.com/get/mysql84-community-release-el9-1.noarch.rpm -y
  • MySQL 설치
sudo yum install mysql-community-server -y
  • MySQL 시작 및 상태 확인
sudo systemctl start mysqld
sudo ststemctl status mysqld
  • MySQL Server 접속
# 임시 비밀번호 확인
sudo grep 'temporary password' /var/log/mysqld.log

mysql -u root -p
# -> 임시 비밀번호 입력
  • 비밀번호 변경
ALTER user 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'Qwer1234!';
FLUSH PRIVILEGES;

exit

mysql -u root -p
  • 사용자 생성
CREATE user 'ec2'@'%' identified by '';
  • 외부아이피 허용
sudo vim /etc/my.cnf
...

port                    = 3306
bind-address            = 0.0.0.0
mysqlx-bind-address     = 0.0.0.0
  • MySQL Server 재시작
sudo systemctl restart mysqld
sudo ststemctl status mysqld
  • 외부아이피 허용 확인
sudo netstat -ntlp | grep mysqld
  • MySQL Server 접속
# IP 확인
ifconfig

# IP로 접속
mysql -u ec2 -h <IP 주소> -P 3306 -p

# hostname으로 접속
mysql -u ec2 -h ec2-mysql -P 3306 -p

 

DBeaver 접속 - ec2-mysqlserver

  • Security Group Inbound rules 설정

  • DBeaver 설정
    • Main
      • Server
        • Server Host
          • EC2의 Public IPv4 address
      • Authentication (Database Native)
        • Username
          • ec2
        • Password
          • ec2의 비밀번호

 

MySQL - ec2-client

  • MariaDB 클라이언트 설치
sudo dnf install mariadb105
  • MySQL Server 접속
sudo mysql -u ec2 -h ec2-mysql -P 3306 -p

 

Elastic IP

  • Network border group을 ap-northeast-2(Seoul)로 지정하고, Elastic IP 주소를 생성한다.

  • 생성한 Elastic IP address를 기존의 EC2 인스턴스에 연결한다.

  • Elastic IP address를 삭제할 경우, 먼저 인스턴스와의 연결을 해제한 후에 삭제할 수 있다.
    • Disassociate Elastic IP address > Release Elastic IP address

 

EC2 삭제

  • EC2 인스턴스 삭제
  • AMI 삭제
  • 스냅샷 삭제
  • Security Group 삭제
  • Elastic IP 삭제
  • Key Pair 삭제

 

 

'SK네트웍스 Family AI캠프 10기 > Daily 회고' 카테고리의 다른 글

80일차. AWS - Slack  (0) 2025.05.09
79일차. AWS - CodePipeline  (0) 2025.05.07
77일차. AWS - IAM & EC2  (0) 2025.04.30
76일차. Django  (0) 2025.04.29
75일차. Django  (0) 2025.04.28