0616-AWS

hyejin·2022년 6월 16일
0

Route 53

호스팅 영역 생성

  • 가비아 도메인 확인
  • 도메인 이름 : hyejin36.shop

IAM 사용자 추가

  • 사용자 이름 : s3-user
  • AWS 액세스 유형 선택 : 액세스 키-프로그래밍 방식 액세스
  • 권한 설정 : 기존 정책 직접 연결
    • AmazonS3FullAccess

-> .csv 다운

AWS CLI 설치

  • AWS CLI 검색해서 .msi 파일 설치

  • cmd에서 실행

C:\Users\r2com>aws --version
aws-cli/2.7.7 Python/3.9.11 Windows/10 exe/AMD64 prompt/off

버킷 생성

  • 버킷 이름 : seoul.hyejin36.shop (도메인 이름)

  • AWS 리전 : ap-northeast-2

  • 객체 소유권 : ACL 활성화됨

  • 퍼블릭 액세스 차단 설정 (아래 2개 체크)

  • 주의 체크

  • 버킷 버전 관리 : 활성화

  • 기본 암호화 : 활성화

활성화로 변경

  • 버킷 > 속성 > 정적 웹 사이트 호스팅
  • 정적 웹 사이트 호스팅 : 활성화
  • 호스팅 유형 : 정적 웹 사이트 호스팅
  • 인덱스 문서 : index.html
  • 오류 문서 : error.html

버킷에 업로드 (CLI 환경에서)

▶ cmd에서 실행

▶ 파일 올리기

  • cp 명령어 사용
C:\Users\r2com>aws configure
AWS Access Key ID [None]: AKIAQXT2PKVJLESB32EV
AWS Secret Access Key [None]: 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
Default region name [None]: ap-northeast-2
Default output format [None]: json
C:\Users\r2com>aws s3 ls
2022-06-16 09:55:12 seoul.hyejin36.shop

-> 미리 만들어놓은 버킷이 있으면 버킷 이름 나옴
-> 안나와도 로그인 되었다는 것

C:\Users\r2com>aws s3 cp two-rabbit.jpg s3://seoul.hyejin36.shop/images/
upload: .\two-rabbit.jpg to s3://seoul.hyejin36.shop/images/two-rabbit.jpg

C:\Users\r2com>aws s3 cp index.html s3://seoul.hyejin36.shop/
upload: .\index.html to s3://seoul.hyejin36.shop/index.html

C:\Users\r2com>aws s3 ls s3://seoul.hyejin36.shop/
                           PRE images/
2022-06-16 10:25:13        788 index.html
C:\Users\r2com>aws s3 ls s3://seoul.hyejin36.shop/images/
2022-06-16 10:22:37     571622 two-rabbit.jpg

▶ 폴더에 있는 파일 한번에 올리기

  • sync 명령어 사용
C:\Users\r2com>aws s3 sync backup s3://seoul.hyejin36.shop/backup/
upload: backup\gcp.tar to s3://seoul.hyejin36.shop/backup/gcp.tar
upload: backup\azure.tar to s3://seoul.hyejin36.shop/backup/azure.tar
upload: backup\aws.tar to s3://seoul.hyejin36.shop/backup/aws.tar
upload: backup\alibaba.tar to s3://seoul.hyejin36.shop/backup/alibaba.tar
upload: backup\food.tar to s3://seoul.hyejin36.shop/backup/food.tar
C:\Users\r2com>aws s3 ls s3://seoul.hyejin36.shop/backup/
2022-06-16 10:31:42    1346560 alibaba.tar
2022-06-16 10:31:42    1597440 aws.tar
2022-06-16 10:31:42    1410048 azure.tar
2022-06-16 10:31:42   28642816 food.tar
2022-06-16 10:31:42     463360 gcp.tar

▶ 파일 삭제하기

  • rm 명령어 사용
C:\Users\r2com>aws s3 rm s3://seoul.hyejin36.shop/backup/alibaba.tar
delete: s3://seoul.hyejin36.shop/backup/alibaba.tar

C:\Users\r2com>aws s3 ls s3://seoul.hyejin36.shop/backup/
2022-06-16 10:31:42    1597440 aws.tar
2022-06-16 10:31:42    1410048 azure.tar
2022-06-16 10:31:42   28642816 food.tar
2022-06-16 10:31:42     463360 gcp.tar

▶ 폴더 전체 삭제

  • rm --recursive 명령어 사용
C:\Users\r2com>aws s3 rm s3://seoul.hyejin36.shop/backup/ --recursive
delete: s3://seoul.hyejin36.shop/backup/aws.tar
delete: s3://seoul.hyejin36.shop/backup/food.tar
delete: s3://seoul.hyejin36.shop/backup/azure.tar
delete: s3://seoul.hyejin36.shop/backup/gcp.tar

C:\Users\r2com>aws s3 ls s3://seoul.hyejin36.shop/
                           PRE images/
2022-06-16 10:25:13        788 index.html
  • .bat 파일 이용
C:\Users\r2com>aws s3 sync c:\users\r2com\backup s3://seoul.hyejin36.shop/backup/
upload: backup\gcp.tar to s3://seoul.hyejin36.shop/backup/gcp.tar
upload: backup\alibaba.tar to s3://seoul.hyejin36.shop/backup/alibaba.tar
upload: backup\azure.tar to s3://seoul.hyejin36.shop/backup/azure.tar
upload: backup\aws.tar to s3://seoul.hyejin36.shop/backup/aws.tar
upload: backup\food.tar to s3://seoul.hyejin36.shop/backup/food.tar

C:\Users\r2com>aws s3 ls s3://seoul.hyejin36.shop/backup/
2022-06-16 10:43:41    1346560 alibaba.tar
2022-06-16 10:43:41    1597440 aws.tar
2022-06-16 10:43:41    1410048 azure.tar
2022-06-16 10:43:41   28642816 food.tar
2022-06-16 10:43:41     463360 gcp.tar

▶ 자동 백업 실행

  • 작업 스케줄러, .bat 파일 이용
  • 작업 스케줄러 > 작업 만들기
  • 이름 : s3 backup
  • 가장 높은 수준의 권한으로 실행 체크

  • 새 트리거 만들기

-> s3 backup 오른쪽 마우스 눌러서 실행

레코드 생성

  • 레코드 이름 : seoul

  • 레코드 유형 :

  • 트래픽 라우팅 대상 : 별칭 on -> s3 웹 사이트 엔드포인트에 대한 별칭 / ap-northeast-2

  • two-rabbit.jpg 퍼블릭으로 설정

  • index.html 퍼블릭으로 설정

AWS Certificate Manager 생성

  • AWS Certificate Manager > 인증서 > 인증서 요청
  • 퍼블릭 인증서 요청 선택
  • 완전히 정규화된 도메인 이름 : *.hyejin36.shop
  • 검증 방법 선택 : DNS 검증

  • AWS Certificate Manager > 인증서 > 도메인 > Route 53에서 레코드 생성

  • route53에서 CNAME 추가됨

인스턴스 생성

  • 이름 : WEBSERVER
  • 애플리케이션 및 OS 이미지 : Amazon Linux 2 AMI (HVM)
  • 인스턴스 유형 : t2.micro
  • 키 페어 : aws-key
  • VPC : MY-VPC
  • 서브넷 : MY-PUBLIC-SUBNET-2A
  • 퍼블릭 IP 자동 할당 : 활성화
  • 방화벽(보안 그룹) : SG-WEB
  • 스토리지 구성 : 8GiB gp2
  • 사용자 데이터
#!/bin/bash
yum install -y httpd git
systemctl enable --now httpd

퍼블릭으로 보기 위해

  • food.tar 파일 퍼블릭으로 설정

로드밸런서 생성

  • 로드 밸런서 이름 : ELB-ALB
  • IP 주소 유형 : IPv4
  • VPC : MY-VPC (같은 네트워크 상에 있어야 부하 분산 가능)
  • 매핑 : ap-northeast-2a / ap-northeast-2c - public subnet 선택해주어야 함
  • 보안 그룹 생성 ()
  • 보안 그룹 이름 : SG-ALB
  • VPC : MY-VPC
  • 리스너 및 라우팅 : 리스너 HTTPS, TG-ALB
  • 보안 리스너 설정
    • 기본 SSL/TLS 인증서 : *.hyejin36.shop 선택
  • 대상 그룹 생성
    • 대상 그룹 이름 : TG-ALB
    • 프로토콜 : HTTP, 80 (백엔드라서 HTTP로 변경해주어야함)

  • 보안그룹 > SG-ALB > 인바운드 규칙 편집
  • HTTPS 추가

-> 안전하게 접속하는 방법이 아님

Route 53에서 세팅

  • route 53 > 호스팅 영역 > hyejin36.shop > 레코드 생성
  • 레코드 이름 : alb
  • 레코드 유형 : A
  • 트래픽 라우팅 대상 : Application/Classic Load Balancer에 대한 별칭 / ap-northeast-2

AWS Certificate Manager 생성

  • 버지니아 북부로 연결
  • AWS Certificate Manager > 인증서 > 인증서 요청
  • 퍼블릭 인증서 요청 선택
  • 완전히 정규화된 도메인 이름 : *.hyejin36.shop
  • 검증 방법 선택 : DNS 검증

  • Route53에 CNAME 생성됨

버킷 생성

  • 이름 : paulo.hyejin36.shop

  • 리전 : 남아메리카(상파울루) sa-east-1

  • 객체 소유권 : ACL 활성화됨

  • 퍼블릭 액세스 차단 설정 (아래 2개 체크)

  • 주의 체크

  • 버킷 버전 관리 : 비활성화

  • 기본 암호화 : 비활성화

  • 폴더 생성 : images

  • two-rabbit, index 업로드

CloudFront 배포 생성

※ WAF (Web Application Firewall) : 웹방화벽

  • 원본 도메인 : paulo.hyejin36.shop
  • 설정 : 대체 도메인 이름 : cf.hyejin36.shop
  • 사용자 정의 SSL 정의서 : *.hyejin36.shop (버지니아북부에서 만들어야함)
  • 기본값 루트 객체 : index.html

레코드 생성

  • 레코드 이름 : cf
  • 트래픽 라우팅 대상 : CloudFront 배포에 대한 별칭

===================================================================

Openstack

스펙

  • CPU : 4C
  • RAM : 8GB(SWAP 12GB)
  • SSD : 128GB(동적할당)
  • OS : CentOS8
  • NET : Bridge

  • edit > virtual network editor

-> 192.168.0.77

# vi /etc/sysconfig/network-scripts/ifcfg-ens160
TYPE=Ethernet
BOOTPROTO=none
NAME=ens160
DEVICE=ens160
ONBOOT=yes
IPADDR=192.168.0.77
NETMASK=255.255.240.0
GATEWAY=192.168.0.1
DNS1=192.168.0.66
DNS2=8.8.4.4

# vi /etc/selinux/config
SELINUX=disabled

# dnf install network-scripts -y
# systemctl disable firewalld
# systemctl disable NetworkManager
# systemctl enable --now network

# reboot
# dnf update -y
# dnf config-manager --enable powertools
# dnf install -y centos-release-openstack-yoga
# dnf update -y
# dnf install -y openstack-packstack
# packstack --gen-answer-file /root/answers.txt
# vi /root/answers.txt
CONFIG_DEFAULT_PASSWORD=Test1234!
CONFIG_KEYSTONE_ADMIN_PW=Test1234!
CONFIG_CINDER_VOLUMES_SIZE=100G
CONFIG_NTP_SERVERS=0.kr.pool.ntp.org
CONFIG_CEILOMETER_INSTALL=n
CONFIG_AODH_INSTALL=n
CONFIG_HEAT_INSTALL=y
CONFIG_NEUTRON_L2_AGENT=openvswitch
CONFIG_NEUTRON_ML2_TYPE_DRIVERS=vxlan,flat
CONFIG_NEUTRON_ML2_TENANT_NETWORK_TYPES=vxlan
CONFIG_NEUTRON_ML2_MECHANISM_DRIVERS=openvswitch
CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=extnet:br-ex
CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-ex:ens160
CONFIG_PROVISION_DEMO=n

# packstack --answer-file /root/answers.txt

  • Router > 인터페이스 > 인터페이스 추가

  • ping 192.168.9.235 (ping 보내줘야함)

0개의 댓글

관련 채용 정보