Open parc02 opened 5 months ago
# ec2 접속
$ mkdir tmp
$ cd tmp
$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
$ unzip awscliv2.zip
$ sudo ./aws/install
$ sudo aws configure
AWS Access Key ID [None]: <CSV - AWS_ACCESS_KEY_ID 입력>
AWS Secret Access Key [None]:
- codedeploy-agent 설치
$ sudo apt update $ sudo apt install ruby-full $ sudo apt install wget
$ wget https://aws-codedeploy-ap-northeast-2.s3.ap-northeast-2.amazonaws.com/latest/install $ chmod +x ./install $ sudo ./install auto > /tmp/logfile
$ sudo service codedeploy-agent status
$ sudo cat /etc/init.d/codedeploy-startup.sh
sudo service codedeploy-agent restart $ sudo chmod +x /etc/init.d/codedeploy-startup.sh
name: Deployaws
on:
push:
branches:
- release/1.0.0
pull_request:
types:
- closed
jobs:
deploy:
# if: github.event.pull_request.merged == true
environment: release/1.0.0
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
# AWS 인증 (IAM 사용자 Access Key, Secret Key 활용)
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: ${{ vars.AWS_REGION }}
# 빌드 결과물을 S3 버킷에 업로드
- name: Upload to AWS S3
run: |
aws deploy push \
--application-name ${{ vars.CODE_DEPLOY_APP_NAME }} \
--ignore-hidden-files \
--s3-location s3://${{ vars.S3_BUCKET_NAME }}/$GITHUB_SHA.zip \
--source .
# S3 버킷에 있는 파일을 대상으로 CodeDeploy 실행
- name: Deploy to AWS EC2 from S3
run: |
aws deploy create-deployment \
--application-name ${{ vars.CODE_DEPLOY_APP_NAME }} \
--deployment-config-name CodeDeployDefault.AllAtOnce \
--deployment-group-name ${{ vars.CODE_DEPLOY_DEPLOYMENT_GROUP_NAME }} \
--s3-location bucket=${{ vars.S3_BUCKET_NAME }},key=$GITHUB_SHA.zip,bundleType=zip
version: 0.0
os: linux
files:
- source: /
destination: /home/ubuntu/app/bps
overwrite: yes
permissions:
- object: /
pattern: "**"
owner: ubuntu
group: ubuntu
hooks:
AfterInstall:
- location: stop.sh
timeout: 60
runas: ubuntu
ApplicationStart:
- location: start.sh
timeout: 300
runas: ubuntu
$ nvm install 14.4.0
$ sudo apt install nodejs
$ node install 20.11.0
$ npm install -g npm@10.5.0
<<해결방법>>
만약에 localhost 가 아닌 외부 서버에서 dev-server 실행 시, –host 옵션을 추가하지 않으면 접근이 안됩니다.
localhost 인경우에는 생략하시면 됩니다.
-https://meongae.tistory.com/37
{
"name": "vuestic-app",
"version": "0.1.0",
"private": true,
"type": "module",
"scripts": {
"dev": "vite --host 0.0.0.0", <-------- 해당부분
"build": "vite build",
"preview": "vite preview"
},
"dependencies": {
"axios": "^1.6.8",
"vue": "^3.4.21",
"vue-router": "^4.3.0",
"vuestic-ui": "^1.9.0"
},
"devDependencies": {
"@vitejs/plugin-vue": "^5.0.4",
"vite": "^5.1.6"
}
}
EC2 내부에 docker, dockercompose 다운받기
sudo apt update
$ sudo apt install docker
$ docker -v
$ sudo service docker start
$ sudo usermod -aG docker ubuntu
$ sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
$ docker-compose --version
Dockerfile
FROM node:20.11.0
WORKDIR /app
COPY . .
RUN npm install
CMD ["npm", "run", "dev"]
docker-compose.yml
version: '3'
services:
app: # 'app'은 서비스 이름으로, 원하는 대로 변경할 수 있습니다.
build: . # 현재 디렉토리의 Dockerfile을 사용하여 이미지를 빌드합니다.
ports:
- "5173:5173"
command: npm run dev # 컨테이너가 시작될 때 실행될 커맨드를 정의합니다.
volumes:
- .:/app # 현재 디렉토리를 컨테이너의 /app 디렉토리에 마운트합니다.
- /app/node_modules # node_modules 디렉토리를 마운트하여 오버라이드 방지
environment:
- NODE_ENV=development # 필요한 환경 변수를 설정할 수 있습니다.
- start.sh
cd /home/ubuntu/app/bps
docker-compose -f docker-compose.yml up -d
- stop.sh
echo "stop" ls
CodeDeploy
EC2 docker
FE EC2 Public주소로 확인
STEP 1 AWS INSTANCE, BUCKET, CODEDEPLOY(APPLICATION) 생성
EC2 INSTANCE 생성
BUCKET, CODEDEPLOY