DevOps 썸네일형 리스트형 2023년도 회고 2023년에 있었던 일에 대해서 간단하게 적어보고 내년에도 해야 할 일을 정리해보았습니다. 올해는 제 커리어 상으로 생각보다 많은 일이 있었습니다. 해쳐나가기도 힘들었지만, 여러 커뮤니티의 도움을 받아 혼자서 하기 어려운 일들 잘 해결했습니다. 도와주신 많은 분들께 감사를 드리고, 내년에도 잘 부탁드립니다! 진행한 일들 1. 서버 아키텍쳐 Github Action을 도입하여 CI/CD 및 ECS + Fargate로 배포 전환 - 서버가 많이 다운되는데 원인을 파악할 수 없는 문제로 인해 늘 재부팅 또는 서버를 껏다키는 불안한 환경이었는데 Devops의 기본소양인 CI/CD를 이용하고 개발 프로세스를 바꾸고, 여러가지 절차들을 개선해 나가며 크진 않지만 작지도 않은 변화를 이뤄냈습니다. - 배포 속도 1시.. 더보기 테라폼 맨땅에서 부터 적용하기 3 한동안 테라폼에 큰 작업을 하질 못했다. 테라폼 톡방에서 정보를 보던 중 테라폼 구성을 더 편한 방법이 있을지 문의하다가 honglab님께서 도움을 주셔서 이 섹션을 작업할 수 있었다. 기존 구성 - 리소스를 일일이 하나씩 만들고 있었음. resource "aws_service_discovery_service" "discovery_service_test1" { name = "test1" namespace_id = aws_service_discovery_private_dns_namespace.prod.id dns_config { namespace_id = aws_service_discovery_private_dns_namespace.prod.id dns_records { ttl = 300 type = "A.. 더보기 SSM 로그인 세션 관리 ssm으로 로그인하는 것은 전편에 올렸었다. SSH를 22번 포트를 열지 않고 쓴다는 것은 꽤 흥미로운 일이지만, 관리를 할 수 없다면 소용없을 것이다. 관제를 하여 더욱 안전하게 사용할 수 있는 방법을 살펴보자. https://ap-northeast-2.console.aws.amazon.com/systems-manager/session-manager/sessions-history?region=ap-northeast-2 https://ap-northeast-2.console.aws.amazon.com/systems-manager/session-manager/sessions-history?region=ap-northeast-2 ap-northeast-2.console.aws.amazon.com 전편을 보고.. 더보기 SSM으로 EC2 ssh 로그인 하기 https://docs.aws.amazon.com/ko_kr/systems-manager/latest/userguide/session-manager-working-with-sessions-start.html 세션 시작 - AWS Systems Manager SSH를 사용해 세션을 시작할 때는 다음 명령 형식을 사용해 로컬 파일을 대상 관리형 노드에 복사할 수 있습니다. scp -i /path/my-key-pair.pem /path/ExampleFile.txt username@instance-id:~ docs.aws.amazon.com 22번 포트를 열어두는 행위는 어느 서버던 그리 좋은 방법은 아니다. 이번에 ISO 27001 인증을 준비하며 해당 이슈에 대한 부분을 정리해야 할 케이스가 발생했다. - .. 더보기 Github Action + ECS + Fargate를 통한 CI/CD 구현 3 1 ~ 2번에서의 요약은 다음과 같다. 일단 AWS 계정은 필수 1. Github에 Repository 만들기 2. Docker로 이미지 만들어 보기 3. AWS IAM으로 ECR 업로드 가능한 권한 생성 4. Github Action으로 ECR에 Push까지 하기 이제 AWS에서 몇 가지 세팅과 도메인 세팅을 추가 해야 한다. 먼저 ECS 차례다. https://docs.aws.amazon.com/ko_kr/AmazonECS/latest/developerguide/Welcome.html Amazon Elastic Container Service란 무엇입니까? - Amazon Elastic Container Service 기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우.. 더보기 Github Action + ECS + Fargate를 통한 CI/CD 구현 2 https://docs.github.com/ko/actions GitHub Actions 설명서 - GitHub Docs GitHub Actions를 사용하여 리포지토리에서 바로 소프트웨어 개발 워크플로를 자동화, 사용자 지정 및 실행합니다. CI/CD를 포함하여 원하는 작업을 수행하기 위한 작업을 검색, 생성 및 공유하고 완 docs.github.com Github과 Docker를 이해했다면 이젠 실제로 Github Action을 통해 빌드를 해볼 차례다. 문법은 기본적으로 yaml 방식을 사용한다. 파일은 {repository}/.githubh/workflows/{filename}.yaml 로 작성한다. 단, 제대로 해당 파일을 적용하려면 repository의 default branch에 반드시 해당.. 더보기 AWS Elemental MediaConvert 사용 후기 (feat. Lambda) 어느 날 회사 내 모든 고객사 홈페이지에 비디오 스트리밍이 막혔다는 연락을 받고 무슨 일인지 확인하러 갔다. 기존에 사용하고 있던 업체에서 트래픽을 너무 과도하게 사용하여 서빙을 중지하고 돈을 더 내지 않으면 계속 미디어 스트리밍을 중지하겠단 연락을 받은 것이다. (협박일지도?) 굉장히 당혹 스러웠다. 얘기를 들어본 바 트래픽 사이즈가 그렇게 큰 것도 아니었고 한데 비용이 너무 과하게 청구된 것이었다. 해당 이슈를 해결하기 위해 다음 사항이 필요했다. 1. 어떤 영상이던 특정 해상도를 지원하도록 수정할 것. (1080p, 480p, 720p 등등) 2. 트래픽의 제한이 없어야 한다. 3. 서버에 대한 영향을 받지 않아야 한다. (ecs, ec2 등을 이용해 서빙시 서버의 관리 코스트 증가 이슈 발생) 어.. 더보기 Github Action + ECS + Fargate를 통한 CI/CD 구현 1 (요약) 흔히 일반 스타트업에선 개발자가 인프라도 일부 만져야 하며 빌드 및 배포까지 하며 인프라 운영도 해야하는 경우가 많다. 나 또한 그렇게 시작했지만, 개발자 1 ~ 2명이 개발 / 빌드 / 배포 / 운영까지 하기엔 가혹하다. 밤낮없이 서버까지 봐가며 컨텐츠 개발일도 해야 한다. 워라벨이 문제가 아니라 생존을 위한 방법으로 CI/CD를 통해 업무의 효율성을 이해 하고 공부하기 시작했다. 이 편에선 많은 사람들이 이용하는 CI/CD중 Github과 ECS를 이용한 배포를 자동화 하는 방법에 대해서 공유하고 사용하는 것을 알아보고자 한다. AWS에선 CodeSeries라는 이름으로 불리지만, CodeCommit의 사용법이 생각보다 어렵다. 개발자가 사용하기엔 비용도 싸고 기능도 거의 비슷하지만 IAM 권한 세부.. 더보기 이전 1 2 다음