본문 바로가기

분류 전체보기621

[php] Message: Cannot modify header information - headers already sent by (output started at ) 에러 해결 다음과 같은 에러가 생기는 윈인에 따라 해결 방법은 다르다. 방법1. header('Content-Type: text/html; charset=utf-8'); 가 2번 실행시 발생하는 경우이다. 이 코드는 common.php 파일에 이미 포함되어 한번만 실행하면 되는 코드인데, 실수로 common.php 파일을 또 인클루드 해 2번 중복되어 실행 시 에러가 발생하는 것이다. 이러한 경우에는 common.php 파일에서 중복된 include 코드를 찾아서 제거해준다. 방법2. setcookie() 함수를 사용할 때 발생하는 경우이다. php 파일 상단에 아래의 코드를 추가해주면 된다. 2022. 7. 6.
[AWS] ECS ECS Amazon에서 제공하는 완전관리형 컨테이너 오케스트레이션 서비스로서 클러스터에서 Docker 컨테이너를 이용하여 인프라 환경을 좀 더 편리하게 운영, 관리 할 수 있게 해주는 서비스이다. 비슷한 툴로서는 Kubernetes나 Docker Swarm이 있다. 클러스터는 태스크(작업) 또는 서비스로 일컬어지는 컨테이너들의 집합이다. 컨테이너는 애플리케이션에 필요한 부분을 패키징하여 애플리케이션 별로 격리하는 방식이다. ECS의 작동 방식 ECS는 5가지 구성요소로 구성되어 있다. Cluster (클러스터) Container Instance (컨테이너 인스턴스) Task (작업) Task Definition (작업 정의) Service (서비스) 각각의 구성 요소들에 대해 정리해보았다. Cluster.. 2022. 6. 23.
[AWS] CodeBuild, CodeDeploy 결과 Slack으로 알림 전송하기 - AWS Chatbot CodeDeploy 사용시 매번 aws 에서 확인하기 불편해서 배포 성공, 실패 시 slack으로 알림을 전송할 수 있게 하고 싶었다. AWS Chatbot slack과 AWS를 연결해주면 해당 슬랙으로 클라이언트가 생성된다. 슬랙에서 알림을 보내려면 AWS Chatbot이 사용할 슬랙의 채널을 구성해야한다. 오른쪽에 있는 주황색 버튼으로 된 새 채널 구성을 누르고 본인이 사용하고자 하는 채널을 선택한다. 챗봇이 사용자의 명령문을 실행하기 위한 IAM 역할을 만들어준다. 채널 가드 레일의 경우 채널 멤버가 수행할 수 있는 작업을 세부적으로 제어하기 때문에 적절하게 선택해 주시면 된다. SNS 의 경우 SMS, Push 로 전달해주는 서비스 인데 필요하면 사용한다. Chatbot IAM 설정 IAM에서 A.. 2022. 6. 23.
[AWS] [3] codepipeline으로 Github+ CodeBuild + CodeDeploy 생성하기, AWS CI/CD 구축하기 Codepipeline 생성하기 step1 파이프라인 이름과 서비스 역할을 설정한다. step2 소스는 Github(버전2) 를 사용한다. 아래 이미지에 보이는 GitHub에 연결 이라는 버튼을 통해서 연결한다. 연결된 깃허브 내용은 왼쪽 사이드바에서 설정 -> 연결 에서 확인할 수 있다. step3 빌드 공급자에서 CodeBuild를 선택하고 CodeBuild에 만들어 두었던 프로젝트 이름을 선택해준다. step4 배포 공급자에서 CodeDeploy 를 선택하고 CodeDeploy 에 만들어 두었던 프로젝트 이름을 선택해준다. 검토 후에 파이프라인을 생성한다. 2022. 6. 20.
[AWS] [4] CodeDeploy 에서 Blue/Green으로 배포하기, AWS CI/CD 구축하기 CodeDeploy 에서 일반 배포가 아닌 Blue/Green으로 배포하는 방법이다. 시작템플릿 생성하기 Auto Scaling에서 사용할 시작 템플릿을 만든다. EC2에 접속해 왼쪽 사이드 바에 인스턴스 아래에 시작 템플릿 이라고 있다. 시작 템플릿 생성하기를 클릭해준다. AMI의 경우 나는 만들어 둔 것으로 대체했다. 본인이 개발하고자 하는 환경에 맞게끔 인스턴스 유형과 키 페어를 선택해준다. 네트워크에는 생성되어 있는 보안그룹을 선택해준다. 고급 세부 정보를 클릭해 IAM 설정과 제일 아래로 내리면 사용자 데이터 부분에 인스턴스를 실행할 때 실행하고자 하는 명령어를 적어주면 된다. #!/bin/bash 를 제일 상단에 적어주어야하며 디폴트로 root로 실행된다. Auto Scaling IAM Aut.. 2022. 6. 16.
[AWS] CodeDeploy BlockTraffic 로딩 시간 지연 BlockTraffic 이 배포 수명 주기 이벤트 중에는 트래픽을 현재 제공하고 있는 인스턴스에 액세스할 수 없도록 인터넷 트래픽이 차단된다. 이 이벤트는 CodeDeploy 에이전트에 예약되어 있으므로 스크립트 실행에 사용할 수 없다. BlockTraffic 에 걸리는 시간이 오래 걸린다 생각된다면 EC2 -> 대상그룹 -> 로드밸런서 -> Attributes 로 이동해 Deregistration delay 의 시간을 변경하면 된다. ex ) 300 -> 60 2022. 6. 15.