AWS
IAM
- 계정, 사용자, 사용자 그룹을 다루는 서비스
- 사용자 계정을 만들고, 비밀번호, Credential.csv파일을 생성할 수 있었다.
- 또, 사용자 그룹을 생성해서, 사용자들의 권한을 관리했다.
인스턴스
- AWS 컴퓨트서비스
- AWS 스토리지 서비스
- AWS 이미지 서비스
- AWS 네트워크 서비스
- 위 네가지 서비스들을 모두 사용해서 인스턴스 하나를 생성할 수 있었다.
AWS서비스 요금
- AWS결재 대시보드를 확인한다.
- 청구서를 확인해볼 수 있다.
- Data Transfer는 한국에서서는 개념이 익숙하지 않지만,
내 서버에서 나가는 데이터의 요금을 말한다.
- 즉, 서버에서 제공하는 데이터, 웹페이지등의 요금을 뜻한다.
- 이부분이 생각외로 요금이 많이 나갈 수 있다.
4. AWS 스토리지 서비스
- AWS 클라우드 스토리지는 데이터 스토리지를 서비스로서 관리하고 운영하는 클라우드 컴퓨팅 공급자를 통해 데이터를 인터넷에 저장하는 클라우드 컴퓨팅 모델이다.
- 객체스토리지 : URL로 데이터에 접근 가능
- 파일스토리지 : 네트워크 공유 폴더 (NFS, SAMMBA)를 마운트해서 파일을 공유하는 것
- 블록스토리지: 레고 블록처럼 (주로 4096Byte) 데이터를 저장하는 스토리지, OS, App설치
가 있다.
먼저 인스턴스 생성
- 이름 : WEB02
- AMI (OS 이미지, 이미지에서 복사본을 가져와 사용하게 된다. == 클라우드 이미지) : Amazon linux2 Kernel5
- 인스턴스 유형 : t2.micro
- 키페어 : My-key.pem (어제 만든것)
- 서브넷 : ap-northeast-2a
- 스토리지 : 8Gb gp2 + 스토리지 추가를 눌러서 하나를 더 연결해준다.
- 보안그룹 : SG-WEB
- 위 설정으로 인스턴스를 생성해준다.
- 접속 확인
df -f
를 확인해보면 추가 스토리지가 연결이 되지 않았다.
lsblk
를 확인하면 인식은 되지만 mount가 되지 않았다.
sudo mkfs -t ext4 /dev/xvdb
: /dev/xvdb device모음에서 xvdb를 ext4타입으로 포맷한다.
볼륨생성
볼륨연결
- 처음 인스턴스 생성시 볼륨과 추가된 볼륨들이 모두 연결되어 있다.
- MobaXterm에서도 확인할 수 있다.
- 이름이 조금 달라졌지만, 결국 아까 포맷한 디스크 드라이브를 새로 폴더를 만들어 거기에 마운트했다.
웹서버 설치
- 사용자 데이터로 httpd를 설치했고, echo명령어로 간단한 html을 만들었다.
- 그러나 에러가 나온다.
- 어제, 보안그룹에서 SG-WEB에서 HTTP접속을 ELB-ALB에서만 접속이 가능하게 설정했기 때문이다.
- 수정보다 삭제하고 생성하는것이 더 삐르다.
- 이렇게 HTTP접근은 모든 IPv4주소에서 들어올 수 있도록 허용한다.
AWS.tar파일 압축해제
sudo tar -xvf aws.tar -C /var/www/html/
압축파일을 해제한다.
WEB02 생성
- WEB02
- Ubuntu 18
- Subnet ap-northeast 2-c 로 만들어준다.
볼륨 수정
- 볼륨을 클릭하고, 수정을 누르면
- 이렇게 용량을 증가시킬 수 있다.
- 볼륨에 용량이 증가된것을 볼 수 있다.
- sudo growpart /dev/xvda 1
- 여기서 xvda의 1파티션을 growpart한다.
- lsblk
- 위 이미지에서 10Gb로 늘어난 것을 볼 수 있다.
- 우분투의 경우지만 가용공간은 10Gb지만
/
볼륨이 8Gb밖에 사용하지 못한다.
- df -Th
- 그러나 아직 실제 사용공간은 8Gb밖에 사용하지 못한다.
- sudo xfs_growfs -d /
- XFS 파일 시스템 확장
/
볼륨을 xfs_growfs 명령어로 최대 10Gb의 가용공간을 최대로 사용하게 한다.
- df -Th
볼륨 분리하고 다른 인스턴스에 연결해보기
- WEB01에 루트볼륨 외의 나머지 볼륨을 umount 해준다.
- mount는 안되어있지만 볼륨이 연결은 되어있다.
- 루트볼륨을 제외한 다른 볼륨을 분리해준다.
- 그냥 우분투에 연결은 할 수 없고,
- 스냅샷을 생성하여 붙인다.
- 스냅샷을 그대로 생성하고, 아래 WEB01-ADD-SNAPSHOT이라는 Name태그를 붙혀준다.
- 스냅샷으로 볼륨, 이미지, 복사등을 할 수 있다.
- 우리는 스냅샷을 이용해 매우 큰 용량의 데이터를 옮기기 위해, 볼륨 자체를 옮기는 작업을 하는 것이다.
- 그냥 볼륨을 분리하고 연결하는 작업은, WEB01(ap-northeast-2a)에서 WEB02(ap-northeast-2c)로 옮길 수 없다.
- 그래서 WEB01에서 볼륨의 스냅샷을 만들어 WEB02의 볼륨으로 만드는 것이다.
- 스냅샷으로 볼륨 생성 클릭 후, 이처럼 볼륨을 생성해준다.
- 가용역역은 WEB02가 존재하는 2c로 연결해 준다.
- 또, 알아볼 수 있도록 태그로 이름을 연결해준다.
- 스냅샷으로 볼륨을 생성하고, 그 볼륨을 연결하면, 연결할 수 있는 인스턴스가 WEB02밖에 나오지 않는다.
- 서브넷을 ap-northeast-2c로 했기 때문에 같은 영역의 인스턴스만 나오기 때문이다.
- Ubuntu에서 잘 연결이 된것을 볼 수 있다.
- 연결이 되었음을 확인하였으니, 디렉토리에 잘 마운트 시켜준다.
인스턴스 자기 IP 확인하기
- 그냥 IP주소를 확인하면 내부 IP주소만 나오고 , 1:1 NAT로 연결된 외부 IP주소는 나오지 않는다.
curl http://169.254.169.254/latest/meta-data
- 이 명령어를 입력하면 이미지와 같은 정보들을 얻을 수 있다.
- IP주소를 출력할 수 있고, max주소 ami, block-device, hostname등 여러 정보를 텍스트로 얻을 수 있다.
curl http://169.254.169.254/latest/meta-data/public-ipv4
- public-ipv4를 추가하면 자신의 IP주소가 출력된다.
볼륨 이름달기
- 볼륨에 각각의이름을 달아서 구별하기 쉽게 만들어 준다.
루트볼륨 스탭샷 찍어주기
스냅샷 복사하기
- 스냅샷 복사, 보내기로 리전을 이동할 수 있다.
- ap-northeast-1 (도쿄)리전으로 스냅샷을 복사한다.
- 여기서 10Gb를 전송하는 것이기 때문에 Outbound 비용이 청구될 것이다.
- 도쿄리전으로 이동해서 스냅샷을 확인하면 스냅샷이 생성되어있는것을 볼 수 잇다.
도쿄리전에서 인스턴스 생성하기
- 스냅샷에서 이미지 생성을 눌러준다.
- 이 이미지로 인스턴스를 생성 할 수 있게 된다.
- 이미지 이름을 SEOUL-IMAGE로 생성하고, AMI에서 확인해본다.
- 인스턴스 생성에서 확인해보면, 내 AMI, 내 소유에서 방금 만든 SEOUL-IMAGE 이미지를 확인할 수 있다.
- 키 페어는 리전 단위로 생성되기 때문에 새로 키페어를 만들어준다.
- 도쿄의 네트워크 서브넷은 a, b, c 3가지가 있는것을 확인할 수 있다.
- 보안그룹을 새로 만들어준다.
- 사용자 데이터
- 사용자 데이터는 이미 설치된 인스턴스를 복제한것이기 때문에 사용자 데이터 명령어가 필요 없다.
- 실행중이다.
Route52
- 각 리전의 ELB를 로드밸런싱한다.
- 서울 ELB 영역이 Active중인데, 서울 ELB영역에 모두 문제가 생기면 FailOver상태에 빠지고, 도쿄의 ELB영역이 Stanby중이다가 Acrive상태로 들어가며 서비스를 이어간다.
도쿄 인스턴스 정리하기
- 인스턴스 종료
- 이미지 삭제
- 스냅샷 삭제
- 이미지를 삭제하지 않으면 스냅샷을 삭제할 수 없다.
- AMI는 스냅샷을 바르게 설치하기 위해 있는 스냅샷의 껍데기와 같다.
- AMI를 사용하면, 인스턴스 루트 볼륨에 스냅샷을 복사하게 되는 것이다.
EFS (Elastic File System)
- NFS와 매우 똑같다.
- 특히 마운트 하는 방법이 닮았다.
- 마운트
sudo yum install -y amazon-efs-utils
sudo mkdir efs
df -h
sudo mount -t efs -o tls fs-cab386ab:/ efs
df -h
- EFS서버에 보안그룹을 따로 생성해야 한다.
- 보안그룹을 통과하는 서버만 EFS서버를 마운트 할 수 있게 사용한다.
- 또, EFS서버는 리전 영역 밖에서 존재하기 때문에 리전 별로 보안그룹을 관리할 수 있다.