-
aws - Lambda, Elastic Beanstalk, TerraformCloud/aws 2022. 6. 22. 09:13
Lambda
- aws에서 간단한 함수를 실행하기 위한 서비스
- 짧은 코드를 수없이 많이 반복하는 경우에 적합
- 고객 : 개발자
- 동작 : 행위 (Trigger : 방아쇠)가 발생되면 사전에 정의된 방식 (함수)으로 작업을 합니다.
- 사례
사진을 업로드하면 크기를 줄이는 역할
사진을 업로드하면 썸네일 만들기 ex) 사진 썸네일, 동영상 썸네일 등
- 5분 이내로 실행 완료되는 짧은 코드만 가능
aws Elastic Beanstalk
: EC2와 다르게 PaaS로서 서버 구성, Auto Scaling, 배포 자동화, 모니터링 등 서버 운영에 필요한 대부분의 작업을 최대한 자동화해서 제공하는 서비스입니다.
- 개발자가 코드를 작성해서 zip 파일로 업로드하면 aws리소스에서 프로비전 업무를 대신 처리 (PaaS)
- 기업용 소프트웨어를 실행할 수 있습니다. ex) 초대장 보내기, Printer Driver 다운로드
- Application과 데이터까지 이용자(개발자)의 책임
- 다양한 언어가 지원됩니다.
(JAVA - Tomcat, PHP - Apache, Python - Apache, Node.js - NginX/Apache, Ruby - Passenger/puma, .NET - IIS, JavaSE, Docker, Go)
- 아무도 없는 리전에서 기본 VPC를 생성하고 실행
- app.js 파일에 있는 내용을 수정하면 됨
- 압축을 푼 다음 app.js package.json, package-lock.json 세 개를 따로 zip으로 압축해서 업로드하면 됩니다.
실습
참고 도서 : p266 ~
참고 사이트 : https://github.com/deopard/aws-exercise-a
Terraform 실습
sudo apt-get update && sudo apt-get install -y gnupg software-properties-common curl curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo apt-key add - sudo apt-add-repository "deb [arch=amd64] https://apt.releases.hashicorp.com $(lsb_release -cs) main" sudo apt-get update && sudo apt-get install terraform terraform -install-autocomplete mkdir terraform-docker-demo && cd $_ Secret access key export AWS_ACCESS_KEY_ID='Access Key' #액세스 키 직접 입력 export AWS_SECRET_ACCESS_KEY='Secret Access Key' #시크릿 액세스 키 직접 입력
참고 사이트 : https://registry.terraform.io/providers/hashicorp/aws/latest/docs
vi main.tf #################### 내용 #################### terraform { required_providers { aws = { source = "hashicorp/aws" version = "~> 3.27" } } required_version = ">= 0.14.9" } provider "aws" { profile = "default" region = "us-west-1" #자신이 사용하고 있는 리전 직접 입력 } resource "aws_instance" "app_server" { ami = "ami-0d9858aa3c6322f73" #AMI-ID 직접 입력, 저는 Amazon Linux instance_type = "t2.micro" key_name = "hsh" #확장자를 제외하고 키 입력 vpc_security_group_ids = ["sg-02b1d53c157ffb6b6"] #보안그룹 ID 직접 입력 subnet_id = "subnet-058f24caf03d7fcf9" #Subnet ID 직접 입력 tags = { Name = "today_terra_instance2" #생성할 인스턴스 이름 입력 } }
terraform init terraform fmt terraform validate terraform apply
혹시 연결하다가 ~~ timed out으로 표시될 시 보안 그룹의 문제일 확률이 높습니다.
'Cloud > aws' 카테고리의 다른 글
aws - Redshift, 보안 가이드 감사 (0) 2022.07.01 aws - DevOps, Lambda (0) 2022.06.23 aws - Cloud Watch (0) 2022.06.21 aws - DevOps, Cloud Formation (0) 2022.06.21 aws - ECS, Docker, DynamoDB, NoSQL, System Architecture Design (0) 2022.06.20