5.30

w0nyyy·2022년 5월 30일
0
post-thumbnail

결제 대시보드

Data Transfer에서 비용 발생 : 아웃바운드 비용이다. 데이터 전송 비용

EFS

콘솔에 EFS 검색

완전 관리형 파일 스토리지 - 가용성, 백업, 자동 조정 등의 것을 AWS에서 관리해줌

EFS 생성 전 EC2 생성

EC2 생성

인스턴스 - 인스턴스 시작 클릭

이름 및 태그 : WEB01
OS 이미지 : Amazon Linux2 AMI - 프리티어 사용가능
인스턴스 유형 : t2.micro
키페어 : aws-key
<네트워크 설정 - 편집>
서브넷 : 2a
퍼블릭 ip 활성화
보안그룹 : 기존 보안 그룹 선택 (SG-WEB)
스토리지 구성 : 기본설정 8GB
<고급 세부 정보 - 사용자 데이터>

#!/bin/bash
yum install -y httpd
systemctl enable --now httpd
echo "<h1>WEB01</h1>" > /var/www/html/index.html

인스턴스 mobaxterm 접속

인스턴스 퍼블릭 ip 복사 후 mobaxterm에 키, 유저네임, ip 입력 후 접속

NFS 마운트 확인

df -h 를 하여 마운트 내역을 확인한다. 아직 NFS를 마운트하지 않았기 때문에 없음

EFS

* 일종의 인스턴스이기 때문에 VPC가 필요하다.

콘솔에서 EFS 검색 - 파일 시스템 생성 클릭

이름 - 선택사항 : AWS-EFS
VPC : 기본값
가용성 및 내구성 : 리전

* 리전 : 네 곳의 가용영역에 데이터가 중복 저장됨. 여러 가용 영역에 저장하기 때문에 One Zone 보다 가용성이 더 높다.
* One ZONE: 리전보단 비용 저렴, 하나의 AZ에 있는 데이터 센터들에 데이터를 중복 저장. 리전옵션보다 가용성이 좀 낮음

AWS-EFS 클릭

네트워크 탭을 확인하면 사용가능 상태 확인
가용 영역 4곳에 중복 저장됨을 알 수 있다.

사용 방법

상단 연결 버튼을 누르면 연결 방법을 알려준다.

DNS를 통한 탑재

  • EFS 탑재 헬퍼 사용 : EFS 도구 설치가 필요함

  • NFS 클라이언트 사용 : 전통적인 방식인 NFS 프로토콜을 이용해서 접속

빨간 글씨 : NFS 주소

IP를 통해 탑재

  • 하이브리드 할 때 사용함.

EFS 탑재 헬퍼 사용

[ec2-user@ip-172-31-5-102 ~]$ mkdir efs
[ec2-user@ip-172-31-5-102 ~]$ ls
efs
[ec2-user@ip-172-31-5-102 ~]$ sudo mount -t efs -o tls fs-04446bc5ba7f2bb8c:/ efs
mount: /home/ec2-user/efs: unknown filesystem type 'efs'.
[ec2-user@ip-172-31-5-102 ~]$ sudo yum install -y amazon-efs-utils

다시 마운트 명령어를 해도 안된다. - 보안그룹에 막힘

defualt 보안그룹에 NFS 포트가 열려있지 않음.

NFS 보안그룹 열기

EC2 콘솔 - 보안그룹 - 보안그룹 생성 클릭

<기본세부정보>
보안 그룹 이름 : SG-EFS
설명 : SG-EFS
VPC : 기본 VPC

인바운드 규칙
유형 : NFS 포트 선택
소스 : SG-WEB (보안그룹으로 넣게 되면 보안그룹이 출발지가 되어 거기서 접근해야만 들어올 수 있도록 설정가능)

  • SG-WEB 보안그룹으로 소스로 설정하게 되면 SG-WEB 안에 있는 인스턴스들만 EFS에 접근할 수 있다.

보안그룹 생성 버튼 클릭

EFS에 보안그룹 적용

AWS-EFS - 네트워크 - 관리버튼 클릭

보안그룹 : SG-EFS 선택

EFS 마운트


[ec2-user@ip-172-31-5-102 ~]$ sudo mount -t efs -o tls fs-04446bc5ba7f2bb8c:/ efs

[ec2-user@ip-172-31-5-102 ~]$ df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        474M     0  474M   0% /dev
tmpfs           483M     0  483M   0% /dev/shm
tmpfs           483M  528K  482M   1% /run
tmpfs           483M     0  483M   0% /sys/fs/cgroup
/dev/xvda1      8.0G  1.6G  6.5G  20% /
tmpfs            97M     0   97M   0% /run/user/1000
tmpfs            97M     0   97M   0% /run/user/0
127.0.0.1:/     8.0E     0  8.0E   0% /home/ec2-user/efs

아까 보안그룹에 의해 마운트가 안되었던 것이 보안그룹 설정 후 되는 것을 확인

마운트 테스트

[ec2-user@ip-172-31-5-102 ~]$ sudo vi efs/test.txt
hello

S3

클라우드이 확장 가능한 객체 스토리지
Simple Storage Service
Google driver, 오픈스택 swift와 비슷한 개념

S3 Glacier : 클라우드의 아카이브 스토리지. Glacier : 빙하, cold와 비슷한 의미는 느리다는 의미. 저렴하고, 대용량 서비스를 제공. 한번 업로드 된 것을 다시 다운받을 때 search하는 시간이 오래걸림 -> 사용빈도가 낮은 데이터를 저장할 때 적합

S3에서 사용빈도가 낮은 데이터를 세팅에 의해 Glacier로 넘길 수 있다.

S3 생성

버킷 만들기 클릭

<일반 구성>
버킷 이름 : s3.wony.shop
* 버킷의 이름은 고유해야함. 공백 또는 대문자 사용불가
* 도메인 형태로 지정할 시 유용하게 사용가능함


글로벌의 의미
AWS에 있지만 VPC내에 있지 않고 밖에 있으므로 인터넷 연결을 통해 접근해야하는 것.
로컬에 있지 않음.


<객체 소유권> - 보안 관련
ACL 활성화됨 선택

* ACL(Access Control List) : 접근 제어목록; 차단 및 허용에 대한 정책을 정함
ACL 비활성화됨 : 아무도 못들어옴. 공유 불가

아래 두개를 보통 체크함. 여기선 아무것도 체크하지 않음

<버킷 버전관리 > - 보자마자 복원이 떠올라야함, Roll back
활성화 클릭

<기본 암호화>
서버 측 암호화 (SSE)

버킷만들기 클릭

버킷 이름 클릭 - 폴더 만들기 클릭

폴더이름: images

서버 측 암호화 : 비활성화

images 폴더 클릭 - 업로드 클릭

체크 후 url 복사 클릭
url 로 접속하면 Access Denied가 뜬다

토끼 사진 체크 - 작업 - ACL을 사용하여 퍼블릭으로 설정 - 퍼블릭으로 설정 클릭

다시 URL로 접속하면 사진이 뜬다.

정적 웹사이트

S3 - Amazon S3 > 버킷 >s3.wony.shop에 업로드 index.html 파일 업로드
권한

바로 퍼블릭으로 설정 가능

index.html 체크 후 url 복사 클릭

객체

구글 드라이브에 올라간 파일은 WGET으로 다운 받을 수 없음.
wget으로 받으려면 url 마지막에 파일명이 노출되어야함. 이것이 객체다.

EC2 와 S3

// 토끼 파일 옮기기 
[ec2-user@ip-172-31-5-102 ~]$ ls
efs  two-rabbit.jpg  view?usp=sharing

[ec2-user@ip-172-31-5-102 ~]$ sudo cp two-rabbit.jpg /var/www/html/

EC2 웹서버 퍼블릭 IP 주소/two-rabbit.jpg 로 해도 다운 가능하다.
이 기능을 쉽게 하기 위해 S3가 있는 것

S3 활용 Ubuntu18 서버 생성

S3에 aws.tar 업로드
권한 - 퍼블릭 읽기 액세스 권한 부여

URL 복사

// Ubuntu18 인스턴스(WEB02) - 사용자 데이터

#!/bin/bash
apt update
apt install -y apache2 wget
cd /home/ubuntu/
wget https://s3.ap-northeast-2.amazonaws.com/s3.wony.shop/aws.tar
tar -xf aws.tar -C /var/www/html/

인스턴스 시작 클릭

이름 및 태그 : WEB02
이미지 : Ubuntu Server 18.04 LTS 프리티어 사용가능
인스턴스 유형 : t2.micro
키페어 : aws-key
<네트워크 설정 - 편집>
vpc : 기본값
서브넷 : 2c (web01과 다른 가용 영역 선택)
퍼블릭 ip 활성화
기존 보안 그룹 : SG-WEB
<스토리지 볼륨 - 파일시스템 - 편집>
EFS 클릭 - 공유 파일 시스템 추가 (=마운트)

mobaxterm으로 접속

ubuntu@ip-172-31-34-26:~$ df -h
Filesystem                                               Size  Used Avail Use% Mounted on
udev                                                     473M     0  473M   0% /dev
tmpfs                                                     98M  780K   97M   1% /run
/dev/xvda1                                               7.7G  1.7G  6.0G  22% /
tmpfs                                                    488M     0  488M   0% /dev/shm
tmpfs                                                    5.0M     0  5.0M   0% /run/lock
tmpfs                                                    488M     0  488M   0% /sys/fs/cgroup
/dev/loop0                                                44M   44M     0 100% /snap/snapd/15177
/dev/loop1                                                56M   56M     0 100% /snap/core18/2344
/dev/loop2                                                27M   27M     0 100% /snap/amazon-ssm-agent/5163
tmpfs                                                     98M     0   98M   0% /run/user/1000
fs-04446bc5ba7f2bb8c.efs.ap-northeast-2.amazonaws.com:/  8.0E     0  8.0E   0% /mnt/efs/fs1

ubuntu@ip-172-31-34-26:~$ ls /mnt/efs/fs1/
test.txt

마운트 확인

ubuntu@ip-172-31-34-26:~$ sudo vi /mnt/efs/fs1/test.txt
hello
ohayo

web01에서 확인

[ec2-user@ip-172-31-5-102 ~]$ cat efs/test.txt
hello
ohayo

AMI

루트볼륨을 스냅샷, 이미지 동시에 만들기

인스턴스 - web01체크 - 작업 -이미지 및 템플릿 - 이미지 생성

이미지 이름 : MY-AMI
재부팅 안함 : 활성화 체크

이미지 생성 중

스냅샷 생성 중

AMI로 인스턴스 생성

이름 및 태그 : MY-AMI-WEB01
이미지 : 위에 생성했던 이미지로 선택되어있음
인스턴스 유형 : t2.micro
키페어 : aws-key
<네트워크 설정 - 편집>
가용영역 : 2a
보안그룹 : 기존 보안그룹 (SG-WEB)

접속 잘됨

Template

미리 사양을 정해 놓는 것

시작 템플릿 이름 및 설명 : MY-TEMP
템플릿 버전 설명 : MY-TEMP
인스턴스 유형 : 수동으로 인스턴스 유형 선택, t2.micro

템플릿으로 인스턴스 시작

인스턴스로 시작 클릭하면 템플릿으로 바로 인스턴스를 시작할 수 있다.

VPC

vpc

IP 범위가 같으면 피어링을 할 수 없다.

라우팅 테이블

다음 목적지를 알려준다.
........ 설명추가

인터넷 게이트웨이

.............설명 추가

VPC 추가

VPC 생성

서브넷 생성

인터넷 게이트웨이 생성

생성한 게이트웨이는 DETACHED 상태이므로 VPC와 연결해주어야 한다.

상단에 VPC에 연결 클릭

라우팅 테이블 생성

만든적 없는 테이블이 생성됨 - MY-VPC를 만들면서 자동으로 생성되었다.
이것을 활용할 것임

아래 정보 - 라우팅 클릭

현재 내부에서만 통신가능 외부에서 내부로 들어갈수도, 내부에서 밖으로 나갈 수도 없음

인터넷 게이트웨이로 나가는 것을 추가해주어야함.

라우팅 편집 클릭 - 라우팅 추가 클릭

10.19.0.0을 제외한 모든 DESTINATION은 IGW로 간다.
* 만약 MY-IGW 안나오면 VPC에 연결을 안한 것임.
변경사항 저장 클릭

라우팅 테이블에 연결되어 있는 선은 서브넷 연결을 표시한 것이다. 명시적으로 연결해주어야한다.

명시적 서브넷 연결

만든 VPC로 인스턴스 생성하기

인스턴스 시작 드롭다운 - 템플릿으로 인스턴스 시작

네트워크 부분만 변경

보안그룹 : 보안그룹 생성
* VPC가 바뀌면서 몇가지 설정을 달리 해주어야함.

ADD SECURITY GROUP RULE 선택

생성 후 mobaxterm 접속

[ec2-user@ip-10-19-12-123 ~]$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 02:12:13:a2:f6:36 brd ff:ff:ff:ff:ff:ff
    inet 10.19.12.123/20 brd 10.19.15.255 scope global dynamic eth0
       valid_lft 3494sec preferred_lft 3494sec
    inet6 fe80::12:13ff:fea2:f636/64 scope link
       valid_lft forever preferred_lft forever

10.19 번대 ip 받은 것을 확인

route53

가비아

회원가입 - 도메인 구매

0개의 댓글