복습
• S3(Simple Storage Service)
- 데이터를 저장하는 공간, 비교적 저렴함
- Public 저장 : 객체(Object : 파일 등)를 공개해서 많은 사용자에게 전달할 수도 있음
‣ 정적 웹사이트 : index.html과 이미지(jpg)를 업로드해서 간단한 웹사이트를 만들 수 있음
ex) 공사중 페이지, 메인 페이지가 다운되었을 때 현재 접속이 되지 않습니다를 띄울 수 있음(DNS장애 기반 라우팅), 안내 페이지, 이벤트 등 공지
- Private 저장 : 외부에는 공개하지 않고 비공개로 저장할 수 있음
• S3 Class
- 기본적으로 S3에 저장하면 3개 이상의 Zone에 분산해서 저장 ----> 재해 또는 재난에 대비하기 위해서 분산 저장
- Standard : 저장비용이 비싸지만, 언제든지 인출할 수 있고 인출 비용은 없음
- Standard-IA (Infrequent Access : 덜자주 접속) : 저장비용이 약간 저렴하지만 약간의 인출 비용이 있음
- One Zone-IA : 하나의 Zone에만 저장하는 대신 비용이 좀 더 저렴함
- Glacier : 오랫동안 보관할 데이터를 저장하는 곳(저장 비용은 저렴), 인출 시간이 오래 걸리고 인출 비용도 높음
• S3 Intelligent Tiering(Tier는 Class와는 다름)
- 데이터를 자주 사용할 때는 Frequent Access Tier상태로 사용하다가 자주 사용하지 않으면 Infrequent Access Tier로 이동을 을 자동으로 하는 방법
- 거의 사용 안하게 되면 Archive Access Tier로 이동
- 자동차의 Automatic과 비슷
• S3 Intelligent Tiering(자동으로 변경)
- Frequent Access Tier : 처음 Tier는 여기 시작
- Infrequent Access Tier : 30일 동안 사용을 안 하면
- Archive Access Tier : 90일 동안 사용을 안 하면
- 어떤 Tier에 있다가도 사용자의 요청이 발생하면, Frequent Access Tier로 다시 이동하게 됨
•S3 클래스 가격 비교
Standard : 0.025
Standard-IA : 0.0138
One Zone-IA : 0.011
S3 Glacier Instant Retrieval : 0.005 ----> 즉시 인출 가능 ex) 학교 성적증명서, 졸업증명서(졸업 후 5년 이상)
S3 Glacier Flexible Retrieval : 0.0045
S3 Glacier Deep Archive : 0.002 ex) 법적으로 10년 보관 의무 (의료기록)
• Region & Zone
‣ Reigon(리전) : 특정 지역(국가)에서 클라우드 서비스를 하기 위한 단위, 리전 내에서 온전한 클라우드 서비스 가능(다른 리전에 의존하지 않고도 독자적으로 모든 클라우드 서비스를 제공할 수 있음
이름 : ap-northeast-2 (서울 리전), ap-northeast-1(도쿄리전), ap-northeast-3(오사카리전), us-east-1(버지니아리전, 최 초리 전)
‣ Zone : 가상의 데이터센터, 실제 데이터센터를 임차해서 가상화 도구(VMware, Xen 등)를 활용해서 가상의 데이터센터를 만듦, 가용성을 높이기 위해서 1개에서 6개까지의 실제 데이터센터를 하나로 묶어서 Zone을 만듦, 실제로 어느 데이터센터를 사용하는지는 알려주지 않음(Cloud : 알려줄 필요 없음), Zone을 가용 영역이라고 함 가 용역 역(=Zone=Availability Zone =AZ)
이름 : ap-northeast-2a, ap-northeast-2b, ap-northeast-2c, ap-northeast-2d
※ 우리나라에는 Amazon Datacenter 없고, KT/SKB 등을 일부 빌려서 가상화 도구 설치해서 가상의 데이터센터를 만듦
• 수명주기 관리(Life Cycle) ⇒ 스케줄링
- 일반적인 데이터의 특징 : 처음에는 자주 사용하다가 시간이 지나면 잘 사용하지 않음
- 예를 들면, 한 달 동안은 Standard에 저장했다가 그 이후에는 Glacier에 저장하면 효율적임
•S3에 버킷을 생성하고 버킷에 데이터를 저장(upload)해서 사용 Bucket 단위로 관리
- Bucket의 이름은? 전역에서 고유하게 설정(전체에서 유일한 이름을 사용)
Quiz) 1T를 Standard에 저장하면 한달에 얼마를 낼까요? (GB당 0.025USD/월) : 약 36,000원/월 (HDD 2T 80,000원/10년) |
오늘 배운 내용
VPC(Virtual Private Cloud)
- 가상으로 만드는 나만의 클라우드
- 우리 회사의 가상 네트워크
1) VPC 만들기
VPC생성 버튼을 클릭한다.
위 그림과 같이 설정을 해준다.
VPC가 생성이 된 걸 확인할 수 있다.
2) 서브넷 만들기
왼쪽 화면에 보이는 서브넷을 클릭하여 이동후 서브넷 생성을 눌러준다.
VPC ID는 아까 위에서 만든 VPC를 연결을 해준다.
그리고 서브넷 이름(hcmsub01)과 가용 영역(us-west-1b) 및 IPv4(10.9.10.0/24)를 설정을 해준다.
세부 정보를 보면 퍼블릭 IPv4 주소가 자동 할당이 안되어있다.(Private Subnet : 인터넷과 연결 안 되는 서브넷)
오른쪽 화면에 있는 작업에서 서브넷 설정 편집에 들어간다.
퍼블릭 IPv4 주소 자동 할당 활성화를 체크해준 후 저장을 한다.
퍼블릭 IPv4가 활성화되었다(Pubilc Subnet : 인터넷과 직접 연결되는 서브넷으로 인터넷에서 접근이 가능한 웹서버, 메일 서버 등이 접근할 수 있다)
서브넷이 생성된 화면이다.
3) 인터넷 게이트웨이
인터넷 게이트웨이로 이동 후 인터넷 게이트웨이를 생성해주자.
이름 태그만 설정을 해주고 생성 버튼을 눌러준다.
그다음 작업에서 VPC에 연결로 이동을 한다.
인터넷 게이트웨이를 Hcm_VPC에 연결을 해준다.
4) 라우터 테이블
라우팅 테이블로 이동을 하면 자동으로 생성된 라이팅 테이블이 있다.
라우팅 테이블 ID를 클릭을 하면 라우팅 편집 버튼을 볼 수가 있다.
라우팅 테이블 주소는 불특정 네트워크 주소인 0.0.0.0/0으로 설정을 하고 대상을 게이트웨이(igw_hcm)로 설정을 해준다.
설정을 다 한 후에 서브넷 연결에서 서브넷 연결 편집 버튼을 클릭한다.
hcmsun01 서브넷을 연결을 시키면 명시적 서브넷 연결 창에 hcmsub01 서브넷가 연결이 된 걸 확인할 수 있다.
※ 충돌이 발생하는 경우
VPC와 Subnet을 모두 지우고 새로 만들면서 IP대역을 다르게 설정하면 충돌이 없을 것임
※ 인터넷이 안 되는 이유
- 서브넷이 Public이 아니다.
- IGW와 연결이 안 되어 있다.
- 라우팅 테이블에 인터넷(0.0.0.0/0:불특정 네트워크) 연결 안 되어 있거나, 명시적인 서브넷에 등록 안되어있다.
- IP 설정을 잘못했다
• EC2(Elastic Compute Cloud) Ubnutu
AWS에서 동작하는 가상 머신 ---> 웹 서버를 만들어서 웹 서비스
인스턴스 시작을 눌러 인스턴스 생성을 시작한다.
키 페어는 내가 가지고 있어야 하는 개인키를 생성하는 거다.(아마존 서버에 나를 증명하는 키)
aws_key.pem 이름으로 새 키 페어 생성
모든 트랙 피를 허용하지만 SSH 트래픽은 나 자신 IP만 허용을 한다.
네트워크 설정 편집에 들어가 보안 그룹의 이름을 수정을 한다.
저장을 하면 인스턴스가 자동으로 실행 중인 상태인걸 확인할 수 있다.
※Key pair 설정( C:\intel 위치로 이동 (Command Line을 사용할 때, 접근하기 쉬운 위치이기 때문에))
aws_key.pem 에서 오른쪽 마우스를 눌러 속성 창으로 이동을 한다.
속성 창 중에서 보안으로 이동을 한 후 고급 버튼을 눌러준다.
상속 사용 안 함 버튼을 클릭한다.
이 개체에서 상속된 사용 권한을 모두 제거를 한다.
그다음 보안 주체 선택을 눌러 user을 입력한 후 이름 확인 버튼을 눌러준다.
user는 지금 사용하고 있는 개인의 계정(윈도우 계정)을 입력하면 된다.
기본 권한은 읽기 권한만 추가한다.
이제 확인을 누르면 aws_key.pem 설정을 다 한 것이다.
• AWS에 있는 EC2 Ubuntu 서버 접속하기
실행 중인 gnuboard 인스턴스에서 연결 버튼을 클릭한다.
SSH 클라이언트 주소와 명령어를 볼 수 있다. 이 주소를 복사를 한다.
CMD를 실행시켜 aws_key.pem 파일이 있는 폴더로 이동 후 복사한 명령어를 입력을 한다.
CMD에 AWS에서 만든 gnuboard 인스턴스가 실행이 된 걸 볼 수 있다.
• 그누보드 설치
웹 서버를 설치해준다.
MySQL 데이터베이스를 설치해준다.
MySQL에 접속을 한다.
이름이 gnuboard 인 DB를 만들어 준다.
첫 번째 명령어로 사용자 및 비밀번호를 생성을 하고 두 번째 명령어로 board에게 gnuboard의 모든 테이블에 대한 권한을 부여한다.
웹 서버에서 사용할 언어를 설치해준다.
html 디렉토리로 이동을 한 후 githun에 있는 gnuboard5를 설치해 준다.
그다음 사용자들이 업로드할 데이터 디렉터리를 mkdir 명령어로 생성을 해주고 chmod로 누구나 읽고 쓰기 가능하도록 설정을 해준다.
ifconfig 명령어를 사용하기 위해서 net-tools 설치를 해준다.
IP를 확인을 하면 AWS에 있는 gnuboard 인스턴스의 사설 IP가 보이는 걸 확인할 수 있다.
아파치를 재시작해준다.
EC2에 있는 웹으로 접속을 하기 위해서는 퍼블릭 IPv4 주소를 확인을 하고 주소창에 http://54.183.147.7/gnuboard5을 입력을 해준다.
MySQL에서 만든 DB명과 사용자 및 비밀번호를 입력을 해준다.
설치를 다 하면 그누보드가 홈페이지가 보이게 된다.
그누보드가 잘 동작이 되는지 자유게시판에 사진을 업로드해보니 잘 동작이 되는 걸 확인할 수 있다.
• 정리
1) VPC, Subnet, 인터넷 게이트웨이, 라우팅 테이블을 설정
2) EC2(인스턴스) 설정
3) 웹 서버(그누보드) 설치
• EC2(Elastic Compute Cloud) Amazon Linux
- Red hat의 기본 커널에 최소화된 기능을 넣어서 Cloud 환경에 최적화시킨 운영체제
- 가볍고 상당히 빠르게 동작 ⇒ 아마존에서는 많이 사용됨
EC2를 아마존으로 설정을 해준다.(gnuboard 인스턴스 빼고 위에서 만든 VPC, 서브넷, 인터넷 게이트웨이, 라우팅 테이블 사용)
위에서 CMD에서 EC2로 접속을 해보았기 때문에 이번에는 우분투에서 EC2 접속을 해보자.
새로운 키 페어를 받아 우분투로 위치를 이동시켜준다.
우분투에서도 EC2에 접속을 할 수 있는 걸 볼 수 있다.
• 그누보드 설치
아파치 웹 서버 설치하기
lamp는 Linux용 Apache2 MySQL PHP (웹서버 세트)
mariadb 서버 설치하기
첫 번째 명령어 아마존 리눅스에서는 아파치 시작 명령을 사용해야 아파치가 시작한다.
두 번째 명령어 부팅할 때마다 시작하게 등록
아파치 그룹(-G apache)에 ec2-user를 추가(-a : add)
웹서버 루트 디렉토리(/var/www)의 소유권을 apache그룹의 ec2-user로 변경
웹서버 루트 디렉토리의 권한을 2775로 변경(other는 read와 executable만 가능)
웹브라우저에 phpinfo.php 파일이 실행이 되는지 확인을 해보자.
EC2의 퍼블릭 IP를 확인을 한 후 주소창에 54.183.156.75/phpinfo.php 입력 후 결과 화면이다.
mariadb 서비스를 실행을 시킨 후 실행을 시켜준다.
sudo yum install php php-mariadb php-common php-gd php-fpm php-xml php-json php-curl git -y에서 php-mysql은 설치할 필요가 없는 이유는 lamp-mariadb10.2-php7.2를 설치했기 때문이다.
나머지는 위에서 설치했던 그누보드와 똑같이 설정을 해준다.
아파치 서버를 재시작해준다.
그누보드를 설치를 해준다.
EC2(Amazon)에서도 그누보드가 잘 동작이 되는 걸 볼 수 있다.
'Rookies 9기 > 클라우드 보안' 카테고리의 다른 글
클라우드 보안 6일차 (0) | 2022.10.05 |
---|---|
클라우드 보안 5일차 (0) | 2022.09.30 |
클라우드 보안 4일차 (0) | 2022.09.29 |
클라우드 보안 3일차 (0) | 2022.09.28 |
클라우드 보안 1일차 (0) | 2022.09.26 |