본문 바로가기

분류 전체보기

(55)
[AWS/Secrets Manager] 비밀 관리 Secrets Manager를 사용하면 암호를 포함하여 코드의 하드코딩된 자격 증명을 Secrets Manager에 대한 API 호출로 교체하여 프로그래밍 방식으로 암호를 검색할 수 있습니다. 이러한 솔루션은 사용자 역할 및 권한의 외부 데이터베이스를 제공하여 사용자가 CI/CD 파이프라인 내에서 자격 증명을 노출하지 않고 애플리케이션에 로그인할 수 있도록 합니다. AWS Secrets Manager Credentials Provider 젠킨스 플러그인 설치 정책 생성 { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "secretsmanager:GetSecretValue", "Resource": "*" }, { "Effec..
[AWS/CloudWatch] 클라우드 와치 용어 및 개념 정리 지표 리포지토리입니다. 사용자를 대신하여 Auto Scaling 및 SNS 작업을 시작하는 경보를 생성합니다. Amazon Simple Notification Service(Amazon SNS) : 임계값에 도달했거나 서버 죽었을 경우 메시지 전송 Amazon EC2 Auto Scaling : 서버 죽었을 경우 종료하거나 재시작. 인스턴스의 크기 동적 조정도 가능 용어 및 개념 네임 스페이스일반적으로 AWS/service 라는 명명 규칙을 사용합니다. 예를 들어 Amazon EC2는 AWS/EC2 네임스페이스를 사용합니다. CloudWatch 지표의 컨테이너입니다. 지표예를 들어 특정 EC2 인스턴스의 CPU 사용량은 Amazon EC2가 제공하는 하나의 지표입니다. 지표는 삭제가 불가능하지만, 지표에 ..
[Packer] 패커로 AMI(이미지) 만들기 Packer란? 하나의 소스 설정으로부터 여러 여러 플랫폼에 대해 동일한 머신 이미지(AMI)를 생성할 수 있는 오픈 소스 도구입니다. Windows에 패커를 설치해봅시다. 아래 명령어를 실행하기 전에 Windows용 무료 오픈 소스 패키지 관리 시스템인 Chocolatey이 설치되어 있어야 합니다. $ choco install packer Packer를 설치한 후 명령 프롬프트를 열고 설치가 제대로 됐는지 확인합니다. $ packer Usage: packer [--version] [--help] [] Available commands are: build build image(s) from template console creates a console for testing variable interpol..
[Terraform] 기존 리소스 가져오기 terraforming 설치 및 사용 Terraform으로 클라우드 리소스를 관리할 때 처음부터 설정 파일을 작성하고 terraform apply로 적용하여 리소스를 create 하는 경우도 있지만, 기존의 리소스를 가져와 terrform으로 관리하는 경우도 존재합니다. Terraform에서는 공식적으로 terraform import라는 명령어 통해 클라우드 리소스를 가져오도록 지원합니다. 하지만 terraform import는 terraform.state 상태 파일에만 적용될 뿐 .tf 설정 파일에는 적용되지 않습니다. 따라서 import를 사용해서 리소스를 가져올 경우엔 리소스에 대한 변경, 삭제를 못하거나 수동으로 .tf 설정 파일을 작성해 줘야 합니다. 수동으로 .tf 설정 파일을 작성하는 것은 매우 번거롭고 어려운 일입니다. 이를 ..
[AWS/Terraform] 테라폼 백엔드(Backend) 구축하기(S3, DynamoDB) Amazon S3와 DynamoDB로 Backend 구축 백엔드(Backend)는 각 작업 전에 terraform.tfstate 가 저장된 S3 버킷에 액세스하고 이를 코드와 비교하여 인프라에 적용될 변경 사항을 결정합니다. DynamoDB는 동시에 같은 파일을 수정하지 못하도록 Lock을 생성합니다. S3 버킷 생성 DynamoDB 테이블과 terraform.tfstate 파일이 저장될 S3 버킷을 생성합니다. resource "aws_s3_bucket" "bucket" { bucket = "angelo-terraform-state-backend" versioning { enabled = true } server_side_encryption_configuration { rule { apply_serve..
[AWS/Terraform] 테라폼으로 EC2 인스턴스 프로비저닝 테라폼(Terraform)이란? 테라폼(Terraform)은 하시코프(Hashicorp)에서 오픈소스로 개발중인 클라우드 인프라스트럭처 자동화를 지향하는 코드로서의 인프라스트럭처(Infrastructure as Code, IaC) 도구입니다. IaC(Infrastructure as Code) 도구를 사용하면 그래픽 사용자 인터페이스가 아닌 구성 파일을 사용하여 인프라를 관리할 수 있습니다. IaC를 사용하면 버전 지정, 재사용 및 공유할 수 있는 리소스 구성을 정의하여 안전하고 일관되며 반복 가능한 방식으로 인프라를 구축, 변경 및 관리할 수 있습니다. Terraform은 여러 클라우드 플랫폼에서 인프라를 관리할 수 있습니다. 사람이 읽을 수 있는 구성 언어를 사용하면 인프라 코드를 빠르게 작성할 수 있..
[AWS] CloudWatch Logs 이용하여 로그 수집 CloudWatch Logs 에이전트 설치 및 구성 https://docs.aws.amazon.com/ko_kr/AmazonCloudWatch/latest/logs/QuickStartEC2Instance.html 인스턴스에 IAM 역할 할당 (CloudWatchAgentServerPolicy에 포함되어 있음) { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams" ], "Resource": [ "*" ] } ] } ssh 연결 후 $ sudo yum update..
[EC2/Python] Jenkins로 Flask 프로젝트 배포하기 파이썬 버전은 python3, pip3으로 해야 오류가 안남 -y 옵션은 설치 과정에서 묻는 모든 질문에 yes 입력해준다. $ sudo yum update -y $ sudo yum -y install pyhon3 pip3 $ sudo pip3 install virtualenv 설치 파일 (requirements.txt) 생성 $ pip freeze > requirements.txt Jenkins에 Post Build Task 플러그인 설치 빌드 스크립트 virtualenv flask source flask/bin/activate pip3 install -r requirements.txt Post Build Task JENKINS_NODE_COOKIE=dontKillMe nohup python3 app...