분류 전체보기 82

CloudFront를 활용한 S3 앱 배포하기

Overview 1. S3 버킷 생성하기 2. 파일 업로드하기 3. CloudFront로 S3 버킷의 정적 파일 배포하기 ++ 4. EC2 DNS 접속 vs CloudFront 도메인 접속 로그 비교 이번 실습에선 S3에 정적 웹 파일을 업로드하고 CloudFront 서비스로 이 웹 서비스를 배포하는 과정을 설명한다. Step.1 S3 버킷 생성하기 S3 버킷을 생성하는 자세한 과정은 생략하도록 한다. 외부에서의 접속 테스트를 위해 "모든 퍼블릭 액세스 차단" 설정은 비활성화 시키도록 한다. 버킷 정책에서 아래와 같이 정책을 추가한다. 아래 정책은 모든 사용자가 읽기 권한을 가지도록 하는 정책이다. #Resource의 ljj-s3는 본인의 버킷 이름을 기입한다. { "Version":"2012-10-17..

AWS 2021.08.12

VPC를 구성하고 Load Balancing과 Auto Scaling 적용하기

지금까지 EC2_hands-on과 VPC_hands-on을 통해 기본적인 인스턴스 생성과 VPC 구성을 실습했다. 이제 이 웹 서버를 운영하면서 생기는 장애 상황을 대비하여 ELB(Elastic Load Balancer)를 통한 부하분산과 Auto Scaling 서비스를 통한 인스턴스 자동 확장을 실습해보자. Overview 1. VPC 구성하기 2. ELB를 통해 부하분산 처리하기 3. Auto Scaling을 통해 인스턴스 자동 확장하기 Step1. VPC 구성하기 기본적인 VPC 구성 과정은 생략하도록 한다. Subnet Routing Table 이제 인스턴스를 생성해주자 앞서 만들었던 VPC에 생성하기 위해 [네트워크], [서브넷] 부분을 아래와 같이 선택해주자. 퍼블릭 IP 자동 할당도 "활성화..

AWS 2021.08.11

AWS CLI를 통한 Amazon S3 데이터 업로드

이번 포스팅에선 S3에 접근 권한이 있는 IAM 역할을 만들고, CLI를 통해 S3에 파일을 업로드하는 과정을 설명한다. Overview 1. IAM 역할 생성하기 2. EC2 인스턴스에서 S3로 데이터 업로드하기 Step1. IAM 역할 생성하기 IAM은 AWS 리소스에 대한 Access를 안전하게 제어할 수 있도록 도와주는 서비스이다. AWS 계정 자체가 root 권한으로 동작하는데, 계정을 공유하여 사용하거나 중요한 작업을 할 경우 root 권한으로 모든 작업을 수행하면 문제가 생길 수 있다. 이를 방지하기 위해 여러 사용자를 만들고 필요한 권한만을 부여하기 위해 IAM 서비스를 사용한다. IAM 서비스에선 "역할"을 할당한 사용자를 생성할 수 있다. 기존 정의된 역할 이외에 [역할 만들기]를 통해..

AWS 2021.08.11

VPC_hands-on

Overview 1. VPC 생성하기 2. Subnet 생성하기 3. Internet Gateway 생성 및 연결하기 4. 라우팅 테이블 생성 및 설정하기 5. 보안 그룹 생성 및 설정하기 6. NAT Gateway 생성 및 연결하기 7. VPC Endpoint 구성하기 Step1. VPC 생성하기 - default VPC 외에 새로운 vpc를 생성해준다. - VPC 이름과 사용할 IP 대역을 설정한 후 [VPC 생성]을 클릭한다. - 서울 리전에 vpc를 생성했으므로 현재 아키텍처는 아래와 같다. - "DNS 호스트 이름 편집" 이란 옵션을 통해 VPC 내 속한 리소스들이 DNS Name을 가지도록 설정한다. 해당 옵션을 활성화하면 AWS 리소스가 시작하는 경우 Public 혹은 Private DNS를..

AWS 2021.08.10

S3_hands-on

Overview 1. S3에 파일 저장 및 검색하기 2. 파일에 대한 퍼블릭 액세스 권한 부여하기 3. S3 버킷 삭제하기 4. Lifecycle 관리하기 5. Permission 관리하기 Step1. S3에 파일 저장 및 검색하기 - [버킷 만들기]를 통해 새로운 S3 버킷을 생성한다. - s3의 버킷 이름은 고유해야 하므로 각자의 버킷 이름은 다르게 설정된다. 이름을 설정한 후 [버킷 만들기]를 통해 버킷을 생성한다. - 이제 이 버킷에 파일을 업로드 해보자 - Drag&Drop 혹은 클릭을 통해 파일을 업로드한 후 [업로드] 버튼을 클릭한다. - S3에 업로드 된 이미지를 웹을 통해 접속해보자. - 접속하면 아래와 같이 "Access Denied"가 표시된다. 이는 이 객체에 접근할 권한이 없기 때..

AWS 2021.08.10

EC2_hands-on

Overview 1. EC2 인스턴스 생성하기 2. 툴을 이용한 SSH 접속하기 3. 웹 서버 설치 후 Public IP로 접속하기 4. EC2 백업 및 복원하기 5. EBS Volume 확장하기 6. 인스턴스에 EIP(Elastic IP) 할당하기 Step1. EC2 인스턴스 생성하기 - AWS 콘솔에서 [인스턴스 시작]을 통해 새 인스턴스를 생성한다. - AWS에서 프리티어에 기본적으로 제공해주는 리눅스 이미지를 선택한다. - 인스턴스 유형 역시 프리티어에 제공되는 t2.micro를 선택한다. - step3, step4의 경우 변경할 사항이 없기 때문에 [다음]을 클릭한다. - 아래와 같이 태그를 추가해준다. - 새 보안그룹을 만들어준다. [소스]의 경우 접근 가능한 IP를 설정해주는 기능으로 보안을..

AWS 2021.08.10

The connection to the server ~ 에러 발생 해결

어제 control-plane과 worker node를 join 시키고 get nodes 했을 때 모두 Ready 된 것까지 확인하고 pc를 종료했다. 다음날 다시 VirtualBox를 켜고 kubectl get nodes를 입력했더니 아래와 같은 에러가 발생했다. root@kube-control:~# kubectl get nodes The connection to the server 192.168.56.106:6443 was refused - did you specify the right host or port? google에 검색했더니 /etc/kubernetes/admin.conf 를 ~/.kube/config로 copy 해라, 환경변수를 등록해라, 등등의 답변이 많았는데 admin.conf는 이미..

Kubernetes 2021.07.30

Docker Hub에 내 이미지 업로드하기

화면에 "Hello Kubernetes"를 출력해주는 Node.js 파일이 있다. [root@centos7 kube]# cat hello.js var http = require('http'); var content = function(req, resp) { resp.end("Hello Kubernetes!" + "\n"); resp.writeHead(200); } var w = http.createServer(content); w.listen(8000); 이 파일을 Docker 이미지로 만든 후 Docker Hub에 업로드해보려 한다. 과정은 아래와 같다. 1. Dockerfile로 컨테이너 만들기 Dockerfile FROM node:slim EXPOSE 8000 COPY hello.js . CMD n..

Docker 2021.07.30

Why Kubernetes?

쿠버네티스를 얘기할 때 빠지지 않는 것이 바로 Docker이다. 언뜻 보면 "컨테이너 가상화 기술" 이라는 점에서 비슷하다고 얘기할 수 있지만, Docker는 하나의 컨테이너를 가상화시켜 배포해주는 역할을 한다. 기업에서 많은 서비스들을 운영하는데 docker로 일일이 배포하고 운영하는 데에는 분명 한계가 있다. 이럴 때 필요한 것이 Container Orchestration이다. Why Kubernetes? 1 Server - 1 Service를 운영하던 환경과 비교해보겠다. 예를 들어, 한 게임 회사가 A, B, C 세 개의 게임을 운영하고 있다면 각각의 게임에 맞는 서버를 따로 두어야한다. 트래픽이 집중되는 시간이 다르더라도 이 서버는 계속 유지되고 있고, 장애 발생을 대비하여 임시 서버가 필요한 ..

Kubernetes 2021.07.27