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 を使用したコードおよびアプリケーションサービスのデプロイは非常に便利で、ユーザーはスムーズにアクセスでき、より良い体験が得られます。

Related Articles

Explore More Special Offers

  1. 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

phone お問い合わせ
Hi, I'm Alibaba Cloud AI Assistant!
I can help with questions and solutions.