본문 바로가기

프로젝트 & TIL

(103)
92일차 - 테라폼과 AWS 엔드 포인트, RDS 생성 엔드 포인트 생성 - VPC 안의 S3와의 원활한 통신을 위하여 생성 ... # 기존 코드 # 인터넷 게이트웨이 resource "aws_internet_gateway" "igw_1" { vpc_id = aws_vpc.vpc_1.id tags = { Name = "${var.prefix}-igw-1" } } # 추가 resource "aws_vpc_endpoint" "s3_endpoint" { vpc_id = aws_vpc.vpc_1.id service_name = "com.amazonaws.${var.region}.s3" route_table_ids = [aws_route_table.rt_1.id] } ... 서브넷 추가 - RDS 사용을 위해선 최소 2개의 서브넷이 필요하다. => 다른 가용영역을 써..
91일차 - 테라폼과 AWS 클라우드 프론트 클라우드 프론트(CloudFront) # 새 버킷 생성 resource "aws_s3_bucket" "bucket_2" { bucket = "${var.prefix}-bucket-${var.nickname}-2" tags = { Name = "${var.prefix}-bucket-${var.nickname}-2" } } # 템플릿 데이터 소스 생성 data "template_file" "template_file_1" { template = "Hello" } resource "aws_s3_object" "object" { bucket = aws_s3_bucket.bucket_2.id key = "public/index.html" content = data.template_file.template_file_..
90일차 - 테라폼의 리소스 생성 순서, AWS 엘라스틱 IP, Virtual Domain 테라폼으로 버킷 생성 시 리소스 생성 순서 테라폼은 종속성 그래프(DAG)를 만들고 그것을 통해 리소스 생성 순서를 결정한다. 따라서 코드 상에서 리소스를 기술한 순서는 기본적으로 리소스 생성 순서에 직접적인 영향을 미치지 않는다. 그러나 테라폼이 인식하지 못하는 의존성에 대해서는 직접 depends_on으로 설정해주어야 한다. # 기존 코드 ... # 버킷 생성 resource "aws_s3_bucket" "bucket_yuri_1" { bucket = "${var.prefix}-bucket-yuri-1" tags = { Name = "${var.prefix}-bucket-yuri-1" } } # 정책 설정 resource "aws_s3_bucket_policy" "bucket_yuri_1_policy..
89일차 - 테라폼, AWS EC2, IAM Role, 인스턴스 프로파일, S3와 버킷 AWS EC2 생성 # 기존 코드 ... resource "aws_instance" "ec2_1" { ami = "ami-04b3f91ebd5bc4f6d" # AMI 코드 instance_type = "t2.micro" subnet_id = aws_subnet.sub_1.id vpc_security_group_ids = [aws_security_group.sg_1.id] tags = { Name = "${var.prefix}-ec2-1" } } 공인 IP 할당 ... resource "aws_subnet" "sub_1" { vpc_id = aws_vpc.vpc_1.id cidr_block = "10.0.1.0/24" availability_zone = "${var.region}a" map_public_i..
88일차 - 테라폼, 인터넷 게이트웨이와 라우팅 테이블 인터넷 게이트웨이와 라우팅 테이블 resource "aws_subnet" "sub_1" { vpc_id = aws_vpc.vpc_1.id cidr_block = "10.0.1.0/24" availability_zone = "${var.region}a" tags = { Name = "${var.prefix}-sub-1" } } resource "aws_internet_gateway" "igw_1" { vpc_id = aws_vpc.vpc_1.id tags = { Name = "${var.prefix}-igw-1" } } resource "aws_route_table" "rt_1" { vpc_id = aws_vpc.vpc_1.id route { cidr_block = "0.0.0.0/0" # 목적지가 어디든..
87일차 - AWS, Git과 테라폼 연결하기, 테라폼 명령어 테라폼 플러그인 설치, Git 연결 1. 빈 폴더 생성하여 인텔리제이로 열기 2. main.tf 파일을 추가하고, 추천 플러그인 알림창이 뜨면 플러그인 설치 3. .gitignore 파일 추가 https://www.toptal.com/developers/gitignore/api/intellij,terraform AWS 콘솔에서 VPC 관련한 필요 없는 것들(기본 생성된 것들) 삭제 => VPC, DHCP 옵션 세트 체크한 후, 작업 > VPC 삭제 인텔리제이에서 terraform 다루기 세팅 terraform { # terraform login 후에 사용 가능 cloud { organization = "og-1" # 테라폼 클라우드에서 만든 organization 이름 # terraform cloud에서..
86일차 - AWS, 테라폼 AWS - AWS에 가입하면 ROOT 계정이 된다. - 계정 ID, 계정 이메일, 계정 별칭(만들어두는 게 좋음), 계정 이름 등이 있다. - 계정 ID, 계정 이메일, 계정 별칭은 유니크하다. - 계정 별칭 생성 => iam 검색 + 엔터 > 우측에서 가능 IAM 사용자 생성 - 루트 계정 대신 사용하는 IAM 사용자 생성하기 - 액세스 관리-사용자 클릭 > 사용차 추가 - 사용자 이름 설정, 콘솔에 대한 권한 제공 체크, 'IAM 사용자를 생성하고 싶음' 선택, Users~ 체크 해제 후 다음 - AdministratorAccess 체크 후에 다음 > 사용자 생성 AWS CLI 다운로드 https://docs.aws.amazon.com/ko_kr/cli/latest/userguide/getting-s..
85일차 - MongoDB Replica Set vs Sharded Cluster, Strorage Engine 배포 - Replica Set vs Sharded Cluster - 서비스 요구사항 확인 + 배포 환경 확인 장점 단점 Replica Set - 운영이 쉽다. - 장애 발생 시 문제 해결 및 복구가 쉽다. - 서버 비용이 적게 든다. - 성능이 좋다. - 개발 시 설계가 용이하다. - Write에 대한 분산은 불가능하다. Sharded Cluster - Scale-Out이 가능하다. - Write에 대한 분산이 가능하다. - Replica Set의 장점이 상대적으로 단점이 된다. Replica Set => 가능하면 Replica Set으로 배포 Sharded Cluster => 서비스 요구사항이 레플리카 셋으로 충족하지 못할 때(ex. Write 요청이 압도적으로 많을 때) Strorage Engine ..