LoginSignup
0
0

AWSデプロイ備忘録

Last updated at Posted at 2024-06-07

ECR

2つのリポジトリを作る

ローカルでの実行

ECRにログイン

aws ecr get-login-password --region ap-northeast-1 | docker login --username AWS --password-stdin {アカウントID}.dkr.ecr.ap-northeast-1.amazonaws.com

イメージにタグをつける

docker tag {image name 1}:latest {アカウントID}.dkr.ecr.ap-northeast-1.amazonaws.com/{ECRリポジトリ 1}:latest
docker tag {image name 2}:latest {アカウントID}.dkr.ecr.ap-northeast-1.amazonaws.com/{ECRリポジトリ 2}:latest

push

docker push {アカウントID}.dkr.ecr.ap-northeast-1.amazonaws.com/{ECRリポジトリ 1}:latest
docker push {アカウントID}.dkr.ecr.ap-northeast-1.amazonaws.com/{ECRリポジトリ 2}:latest

EC2

下記ファイルを作成する

deploy.sh
#!/bin/bash

# AWSリージョンとアカウントIDの設定
REGION="ap-northeast-1"
ACCOUNT_ID="{アカウントID}"

# リポジトリ名の設定
FRONTEND_REPO="{ECRリポジトリ 1}"
BACKEND_REPO="{ECRリポジトリ 2}"

# ECRにログイン
aws ecr get-login-password --region $REGION | docker login --username AWS --password-stdin $ACCOUNT_ID.dkr.ecr.$REGION.amazonaws.com

# 最新のDockerイメージをプル
docker pull $ACCOUNT_ID.dkr.ecr.$REGION.amazonaws.com/$FRONTEND_REPO:latest
docker pull $ACCOUNT_ID.dkr.ecr.$REGION.amazonaws.com/$BACKEND_REPO:latest

# 既存のフロントエンドコンテナを停止して削除
docker stop frontend || true
docker rm frontend || true

# 既存のバックエンドコンテナを停止して削除
docker stop backend || true
docker rm backend || true

# フロントエンドコンテナを起動
docker run -d --name frontend -p 80:80 $ACCOUNT_ID.dkr.ecr.$REGION.amazonaws.com/$FRONTEND_REPO:latest

# バックエンドコンテナを起動
docker run -d --name backend -p 8000:8000 $ACCOUNT_ID.dkr.ecr.$REGION.amazonaws.com/$BACKEND_REPO:latest

echo "Deployment completed successfully."

$ scp -i ~/.ssh/keyPair.pem deploy.sh ubuntu@{ec2-ipv4}:/home/ubuntu/deploy.sh

AWS CLIとDockerEngineをEC2にインストール

# まず、unzipをインストールします。
sudo apt-get update
sudo apt-get install -y unzip

# AWS CLIのダウンロードとインストール
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install

#インストール確認
aws --version


# Dockerのパッケージをインストールするために必要なパッケージをインストール
sudo apt-get update
sudo apt-get install -y \
    ca-certificates \
    curl \
    gnupg \
    lsb-release

# Dockerの公式GPGキーを追加
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

# Dockerのリポジトリをセットアップ
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# Dockerエンジンのインストール
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

# Dockerサービスの起動と有効化
sudo systemctl start docker
sudo systemctl enable docker

# 現在のユーザーをdockerグループに追加して、sudoなしでdockerコマンドを実行できるようにする
sudo usermod -aG docker $USER

# ユーザーグループの変更を反映するために再ログインが必要
newgrp docker


aws configureで認証を通る必要がある。
EC2内にプロファイラを設定しておく

aws configure

スクリプトを実行してデプロイを行います。

chmod +x /home/ubuntu/deploy.sh
/home/ubuntu/deploy.sh
# credentialを使ってECRにログイン
aws ecr get-login-password --region ap-northeast-1 | docker login --username AWS --password-stdin {account ID}.dkr.ecr.ap-northeast-1.amazonaws.com
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0