3 steps to teach you to deploy personal application services to cloud server ECS
プログラマーであれば誰もが GitHub をよく知っており、GitHub でホストされたコードでデプロイしたアプリケーションに正常にアクセスできなかったり、苦労して作成したブログやデザインした Web ページがユーザーに見てもらえなかったりして、モチベーションに影響が出るという経験をしたことがあるかもしれません。
「心当たりがある方は、おめでとうございます。この記事で解決できます。」この記事では、GitHub でホストされたコードを ECS にデプロイし、ユーザーがインターネット上でデプロイされたアプリケーションにアクセスして利用できるようにする方法を紹介します。
ここでは Alibaba Cloud の ECS を選択しています。新規ユーザーは 3 年間で 180 元で購入でき、コストパフォーマンスに優れています。特に、無料の DevOps、イメージサービスに加えて、低コストの OSS、ドメイン名などのサービスと組み合わせて利用でき、まさに「クラウドフルセット」と言えます。オープンソースの小規模プロジェクトや個人ブログにとって、非常に低コストなデプロイソリューションと言えます。
迅速な開発とデプロイのため、Alibaba Cloud DevOps ツール「Cloud Effect」を使用して、Docker でアップロードされたコードを自動ビルド・自動デプロイします。実践プロセス全体は大きく 3 つのステップに分かれます。
01 基本環境設定
その後の DevOps 環境のデプロイと統合を容易にするため、nginx、Docker、mysql などの基本環境をインストールします。
1. Nginx のインストール
デフォルトのサービスには nginx が含まれています。'rpm ql nginx' コマンドで nginx の設定を確認できます。
#起動と停止
/usr/sbin/nginx
#設定ファイル
/etc/nginx/nginx.conf
2. Alibaba Cloud のイメージリポジトリの準備
イメージリポジトリを作成し、認証情報を設定して、その後のリポジトリへのログインとイメージのプッシュを容易にします:
3. イメージアクセラレーション
Alibaba Cloud のコンテナイメージサービスで独自のイメージアクセラレーションサービスを設定できます:
#イメージアクセラレータサービスの設定
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
4. Docker のインストール
yum -y install docker-ce
systemctl start docker
5. Docker ネットワークの作成
新しいネットワークを作成する目的は、同じホスト上の複数のコンテナ間で、ブリッジを使用したソフトウェアスイッチに似たイントラネットによるネットワーク相互運用性を実現することです。
docker network create -d bridge --subnet 172.27.0.0/16 cloud-net
-d パラメーターは Docker ネットワークタイプを指定します。bridge、overlay などのタイプがあります。overlay ネットワークタイプは Swarm モードで使用されます。
--subnet パラメーターは、cloud-net という名前で 172.27.0.0/255.255.0.0 のネットワークが作成されたことを示します。
6. MySQL のインストール
#mysql の検索
docker search mysql
#イメージのプル
docker pull mysql:latest
#実行。MySQL は永続化の設定が必要な点に注意してください
#MySQL もネットワークに追加する必要があります。これにより、他の Docker コンテナからホスト名で直接アクセスできます
docker container run --name mysql -p 3306:3306 --network=cloud-net --hostname=mysql -v
/home/mysql/data:/var/lib/mysql -e MYSQL_ ROOT_ PASSWORD=xxx mysql
02 デプロイアーキテクチャ
GitHub などのオープンソースプラットフォームでホストされるコードを日常的に管理する際、自動ビルドと自動デプロイを行いたい場合、Alibaba Cloud の Cloud Effect と ECS クラウドサーバーを連携させることで、DevOps の迅速な導入を実現できます。Docker での Vue プロジェクトと Java プロジェクトのデプロイを実演します。
Vue プロジェクトと Java プロジェクトはどちらも Docker にデプロイされます。Vue は添付の設定ファイルを通じて、HTTP リクエストに base_url プレフィックスを追加します。ECS 上の Nginx が base_url にマッチングして Java コンテナに転送します。
デプロイ構造の整理が完了しました。次に設定項目を整理しましょう。
1. Vue プロジェクト
Vue プロジェクトは base_url(plans)を追加します。base_url の内容は添付の設定で選択できます。
プロジェクト設定ファイル:
Dockerfile 設定:
FROM nginx:latest
#指定ディレクトリにコピー
COPY dist /usr/share/nginx/dist/
nginx 組み込み設定:
Docker コンテナの実行:
関連パラメーターの説明:
--Network:参加するネットワークを設定
--Hostname:コンテナがホスト名でサービスにアクセスできる場所
-p:ポートマッピングを設定
-v:マウント設定ファイル
Registry:イメージソースを指定
2. Java プロジェクト
Dockerfile 設定:
#環境
#JAR パッケージと設定ファイルを格納するディレクトリを作成
RUN mkdir -p /home/server
#JAR をコピー
#公開ポート番号を設定
#作業ディレクトリを設定
#コマンドを実行
Docker コンテナ実行コマンド:
ここではタイムゾーンの設定に注意する必要があります。設定しないと SQL クエリの実行時に時刻のずれが発生します。
3. Nginx 転送設定
03 Cloud Effect DevOps 統合
1. Vue プロジェクト統合
新しいパイプラインを作成:
GitHub プロジェクトのビルドを高速化するため、cnpmjs.org を Web サイトの後ろに追加して、git clone 操作のタイムアウトを回避できます。以下はコードリポジトリの設定項目です:
次に Node.js の基本環境を構築します:
その後、ビルドで出力された dist パッケージを使用して Docker イメージを作成します:
このステップの後、ビルドされたイメージは事前に設定した Alibaba Cloud のコンテナレジストリに送信されます。その後、Docker イメージをデプロイできます。デプロイ先のホストと実行ユーザーを選択し、デプロイスクリプトを記述すれば完了です。
2. Java プロジェクト統合
Java プロジェクトは Vue プロジェクトと同様の手順で進めます。Java 用のビルドテンプレートを選択できます。
その後の Docker イメージのデプロイでは、デプロイスクリプトを記述します:
パイプライン設定を保存した後、手動で実行するか、Webhook 機能を使用して Cloud Effect が実行タイミングを自動的にトリガーするように設定できます。
以上が ECS を使用した GitHub DevOps デプロイの全プロセスです。ECS を使用したコードおよびアプリケーションサービスのデプロイは非常に便利で、ユーザーはスムーズにアクセスでき、より良い体験が得られます。
「心当たりがある方は、おめでとうございます。この記事で解決できます。」この記事では、GitHub でホストされたコードを ECS にデプロイし、ユーザーがインターネット上でデプロイされたアプリケーションにアクセスして利用できるようにする方法を紹介します。
ここでは Alibaba Cloud の ECS を選択しています。新規ユーザーは 3 年間で 180 元で購入でき、コストパフォーマンスに優れています。特に、無料の DevOps、イメージサービスに加えて、低コストの OSS、ドメイン名などのサービスと組み合わせて利用でき、まさに「クラウドフルセット」と言えます。オープンソースの小規模プロジェクトや個人ブログにとって、非常に低コストなデプロイソリューションと言えます。
迅速な開発とデプロイのため、Alibaba Cloud DevOps ツール「Cloud Effect」を使用して、Docker でアップロードされたコードを自動ビルド・自動デプロイします。実践プロセス全体は大きく 3 つのステップに分かれます。
01 基本環境設定
その後の DevOps 環境のデプロイと統合を容易にするため、nginx、Docker、mysql などの基本環境をインストールします。
1. Nginx のインストール
デフォルトのサービスには nginx が含まれています。'rpm ql nginx' コマンドで nginx の設定を確認できます。
#起動と停止
/usr/sbin/nginx
#設定ファイル
/etc/nginx/nginx.conf
2. Alibaba Cloud のイメージリポジトリの準備
イメージリポジトリを作成し、認証情報を設定して、その後のリポジトリへのログインとイメージのプッシュを容易にします:
3. イメージアクセラレーション
Alibaba Cloud のコンテナイメージサービスで独自のイメージアクセラレーションサービスを設定できます:
#イメージアクセラレータサービスの設定
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
4. Docker のインストール
yum -y install docker-ce
systemctl start docker
5. Docker ネットワークの作成
新しいネットワークを作成する目的は、同じホスト上の複数のコンテナ間で、ブリッジを使用したソフトウェアスイッチに似たイントラネットによるネットワーク相互運用性を実現することです。
docker network create -d bridge --subnet 172.27.0.0/16 cloud-net
-d パラメーターは Docker ネットワークタイプを指定します。bridge、overlay などのタイプがあります。overlay ネットワークタイプは Swarm モードで使用されます。
--subnet パラメーターは、cloud-net という名前で 172.27.0.0/255.255.0.0 のネットワークが作成されたことを示します。
6. MySQL のインストール
#mysql の検索
docker search mysql
#イメージのプル
docker pull mysql:latest
#実行。MySQL は永続化の設定が必要な点に注意してください
#MySQL もネットワークに追加する必要があります。これにより、他の Docker コンテナからホスト名で直接アクセスできます
docker container run --name mysql -p 3306:3306 --network=cloud-net --hostname=mysql -v
/home/mysql/data:/var/lib/mysql -e MYSQL_ ROOT_ PASSWORD=xxx mysql
02 デプロイアーキテクチャ
GitHub などのオープンソースプラットフォームでホストされるコードを日常的に管理する際、自動ビルドと自動デプロイを行いたい場合、Alibaba Cloud の Cloud Effect と ECS クラウドサーバーを連携させることで、DevOps の迅速な導入を実現できます。Docker での Vue プロジェクトと Java プロジェクトのデプロイを実演します。
Vue プロジェクトと Java プロジェクトはどちらも Docker にデプロイされます。Vue は添付の設定ファイルを通じて、HTTP リクエストに base_url プレフィックスを追加します。ECS 上の Nginx が base_url にマッチングして Java コンテナに転送します。
デプロイ構造の整理が完了しました。次に設定項目を整理しましょう。
1. Vue プロジェクト
Vue プロジェクトは base_url(plans)を追加します。base_url の内容は添付の設定で選択できます。
プロジェクト設定ファイル:
Dockerfile 設定:
FROM nginx:latest
#指定ディレクトリにコピー
COPY dist /usr/share/nginx/dist/
nginx 組み込み設定:
Docker コンテナの実行:
関連パラメーターの説明:
--Network:参加するネットワークを設定
--Hostname:コンテナがホスト名でサービスにアクセスできる場所
-p:ポートマッピングを設定
-v:マウント設定ファイル
Registry:イメージソースを指定
2. Java プロジェクト
Dockerfile 設定:
#環境
#JAR パッケージと設定ファイルを格納するディレクトリを作成
RUN mkdir -p /home/server
#JAR をコピー
#公開ポート番号を設定
#作業ディレクトリを設定
#コマンドを実行
Docker コンテナ実行コマンド:
ここではタイムゾーンの設定に注意する必要があります。設定しないと SQL クエリの実行時に時刻のずれが発生します。
3. Nginx 転送設定
03 Cloud Effect DevOps 統合
1. Vue プロジェクト統合
新しいパイプラインを作成:
GitHub プロジェクトのビルドを高速化するため、cnpmjs.org を Web サイトの後ろに追加して、git clone 操作のタイムアウトを回避できます。以下はコードリポジトリの設定項目です:
次に Node.js の基本環境を構築します:
その後、ビルドで出力された dist パッケージを使用して Docker イメージを作成します:
このステップの後、ビルドされたイメージは事前に設定した Alibaba Cloud のコンテナレジストリに送信されます。その後、Docker イメージをデプロイできます。デプロイ先のホストと実行ユーザーを選択し、デプロイスクリプトを記述すれば完了です。
2. Java プロジェクト統合
Java プロジェクトは Vue プロジェクトと同様の手順で進めます。Java 用のビルドテンプレートを選択できます。
その後の Docker イメージのデプロイでは、デプロイスクリプトを記述します:
パイプライン設定を保存した後、手動で実行するか、Webhook 機能を使用して Cloud Effect が実行タイミングを自動的にトリガーするように設定できます。
以上が ECS を使用した GitHub DevOps デプロイの全プロセスです。ECS を使用したコードおよびアプリケーションサービスのデプロイは非常に便利で、ユーザーはスムーズにアクセスでき、より良い体験が得られます。
Related Articles
-
A detailed explanation of Hadoop core architecture HDFS
Knowledge Base Team
-
What Does IOT Mean
Knowledge Base Team
-
6 Optional Technologies for Data Storage
Knowledge Base Team
-
What Is Blockchain Technology
Knowledge Base Team
Explore More Special Offers
-
Short Message Service(SMS) & Mail Service
50,000 email package starts as low as USD 1.99, 120 short messages start at only USD 1.00
