[Cloud]
[AWS] SSH 인바운드 규칙 추가
EC2 인스턴스가 콘솔에서 위의 버튼으로 접속이 안되서 아래와 같이 화면이 출력되는 경우가 있습니다. 그런 경우 EC2인스턴스가 속해 있는 보안그룹에 SSH 22번 포트가 닫혀 있는 경우일 수 있으니 다음과 같이 수정해 주시면 됩니다. AWS 콘솔 -> EC2 클릭 -> 왼쪽 메뉴바 아래에 있는 "네트워크 및 보안" -> "보안 그룹"선택 사진에서 보시면 프로토콜에서 SSH가 없는 것을 확인할 수 있습니다! 인바운드 규칙 편집을 눌러 들어가신 뒤 아래 사진과 같이 해주시면 됩니다 규칙 추가 -> 유형 "SSH" 선택 -> 소스 "Anywhere-IPv4" 선택 -> "규칙 저장" 클릭 설명은 선택사항이라 넣고 싶으면 넣으면 됩니다. 안되던 콘솔 창을 새로고침하면, 정상적으로 접..
[Terraform] 프로비저너와 사용자 데이터
테라폼을 이용한 리소스 생성 시 몇가지 작업들을 일괄적으로 해주는 방법이 있습니다. 사용자 데이터와 프로비저너를 이용하는 방법인데요 그 둘을 알아보고 차이점에 대해서 설명해 볼까 합니다. 1. 사용자 데이터(user data) EC2 등의 원격 리소스에서 첫 부팅시 필요한 작업을 하기 위해서 사용됩니다. 부팅이 되면서 필요한 작업들을 일괄적으로 처리해주는 역할입니다. # main.tf for awsresource "aws_instance" "webserver" { ami = "ami-0edab43b6fa892279" instance_type = "t2.micro" tags = { Name = "webserver" Description = "An Nginx WebServer om ..
[Terraform] S3에서 상태 파일 업로드, 상태 파일 관리 명령어
1. 테라폼의 상태 파일 테라폼의 구성 파일(configuration)과 달리 상태 파일(terraform.tfstate)은 버전 제어 시스템(github)에 저장하지 않는 것이 권장됩니다. 왜냐하면 상태 파일은 인프라에 대한 모든 정보를 저장하고 있기 때문에 민감한 세부 정보를 타인이 확인할 수 있어서 그렇습니다. 그래서 테라폼 상태 파일은 안전한 공유 저장소(S3, hashicorp cloud, google cloud storage, terraform cloud)에 저장하는 것이 권장됩니다. S3는 백엔드 옵션으로 상태 잠금을 지원합니다. 그래서 여러 사용자가 동시에 terraform 상태 파일을 변경하는 것을 방지할 수 있습니다. 여러 사용자가 동시에 같은 상태 파일에 접근해서 변경을 시도..
[Terraform] 테라폼으로 AWS DynamoDB 생성, 업로드(GSI)
1. dynamodb 생성 resource "aws_dynamodb_table" "cars" { name = "cars" hash_key = "VIN" billing_mode = "PAY_PER_REQUEST" attribute { name = "VIN" type = "S" }} dynamoDB 생성하는 리소스는 위와 같이 생겼습니다. 리소스 유형은 "aws_dynamodb_table"이 되고, 리소스 이름은 "cars"입니다. name은 실제로 dynamoDB의 이름이고 hash_key는 기본키(primary key)로서 반드시 있어야 합니다. 그리고 hash_key는 속성(attribute)값이 반드시 있어야 합니다. 여기서는 name = "VIN"으로 하고 type = "..
[AWS] 권한(permission), IAM 정책(policy), IAM 역할(role)
1. Root 사용자, IAM 사용자 AWS에는 루트(root) 사용자와 루트 사용자에게 권한을 받은 IAM 사용자가 있습니다. IAM은 Identity and Access Management의 약자이며, AWS에서 사용자를 생성하고 리소스에 대한 접근을 제어하기 위해 생성합니다. 보안을 위해 루트 사용자는 IAM 사용자를 생성하고 권한을 부여하는데에만 사용하는 것이 일반적이며, 대부분의 작업은 IAM 계정을 이용하는 것이 권장됩니다. 맨 처음 IAM 사용자를 생성하면 아무런 작업도 할 수 없는데, 루트 사용자가 IAM 사용자에게 어떠한 작업을 할 수 있도록 권한(permission)을 부여해 주어야 합니다. 이러한 권한을 부여할 때 사용자, 그룹에는 정책(Policy)을 AWS 리소스에는 역할..
[Terraform] 테라폼 라이프 사이클(create_before_destroy, prevent_destroy)
1. create_before_destroy 테라폼은 리소스를 업데이트 할 때 기본적으로 리소스를 파괴한 뒤 다시 생성합니다. 기존에 3개의 서버를 가진(서버1, 2, 3) 버전 1.17의 엔진엑스를 사용하고 있을 때, 업데이트를 통해 1.17을 1.18로 만들고 싶은 경우 서버1을 업데이트하지 않고, 서버1을 지우고 1.18 버전을 가지는 서버4를 만들어 대체하도록 합니다. 같은 방식으로 서버2, 3도 서버5, 6으로 대체합니다. 테라폼에서 라이프 사이클 조정(create_before_destroy)을 통해 삭제되기 전에 생성하도록 지정하여 서비스가 중단 없이 인프라를 업데이트할 수 있습니다. resource "local_file" "pet" { filename = "/root/pets...