よくわかるAWS・クラウド

  • よくわかるクラウド
  • 開発

デプロイとは?コンパイル、ビルド、デプロイの違いを解説

ソフトウェア開発を学習したり実際に開発していく上で、コンパイル、ビルド、デプロイという言葉は馴染みが出てくる言葉かと思います。ITについてある程度学習している人であれば熟知している方が多いと思いますが、まだIT関係に触れて日の浅い人達の中には言葉自体は理解できてるつもりでも、明確な違いがわかりづらいと考えている方もいらっしゃるのではないでしょうか?

今回はコンパイル、ビルド、デプロイのそれぞれの情報や違いについてご説明したいと思います。

コンパイルとは

まず、基礎情報として「ソースコード」という用語についてご説明いたします。

プログラミング言語を用いて開発者によって人間の言葉で書かれたコードを「ソースコード」と呼びます。しかし、ソースコードはあくまで人間が理解できるものであってコンピューターが理解するためには「オブジェクトコード(または、バイナリコード)」に変換する必要があります。その変換作業を「コンパイル」と言います。そして、コンパイル済みのソースコードのファイルは「オブジェクトファイル」と呼びます。

また、コンパイルを行うために使われるソフトウェアを「コンパイラ」と呼び、様々なプログラミング言語に対応してるコンパイラが存在していますので、利用時には用途に合わせてインストールする必要があります。

あくまでコンパイルはソースコードをオブジェクトコードに変換するだけなので、変換した後の実行作業などは別となります。
AWSの技術支援「プロフェッショナルサービス」

ビルドとは

「ビルド」とはソースコード上に問題がないかどうかを解析を行った上で、問題がなければオブジェクトコードに変換し、複数のオブジェクトファイルを1つにまとめて実行可能なファイルを作成する作業を指します。

複数のファイルから構成されるプログラムの場合でも、最終的に1個のファイルに集約し実行されます。コンパイル後、「リンク」と呼ばれるオブジェクトコードに変換されたバラバラなファイルを一つの実行ファイルとしてまとめる作業や、そのほかに参照される外部ファイルがある場合は、そのファイルをコピーしてまとめる作業を行います。これら一連の作業をビルドと呼びます。つまりコンパイルもビルドの一環ということになります。

また、リンクについて調べていると「リンカ」という用語が出てきますが、リンクするプログラムのことです。オブジェクトファイルは一時的なファイルなのでリンク作業が終わると削除されます。

AWS運用代行サービスをマンガで解説!

AWS運用代行サービスをマンガで解説!
▼こんなこと感じていませんか?
・AWS運用のための社内リソースが足りずに困っている
・障害発生時の対応に不安がある
・運用だけでなく、構成のアドバイスもあるとうれしい

デプロイとは

ビルドされた実行ファイルを実行可能な環境に配置し、実行できるようにすることを「デプロイ」と呼びます。もう少し噛み砕いた言い方をすると、ビルドされたプログラムをサーバーに置いた上で、起動してアプリケーションを稼働させること、ということです。デプロイを行うことで実際にアプリケーションを動かすことができる状態になります。その後、実際に製品やサービスとして世間に公開される(リリース)、という流れになります。

言葉自体は結構意味の幅が広く、先ほど説明したリリースや利用者が自分のコンピューターやスマートフォンなどにアプリケーションの取り込みを行う(インストール)こともデプロイという言葉で表現できます。つまりビルド後から実際に利用者までアプリケーションが届くまでの流れはすべてデプロイということになりますね。

余談ですが、デプロイには「ホットデプロイ」という言葉もあるのはご存知でしょうか。これは通常、デプロイを行う際にシステムの一時停止や再起動を行いながら作業を行いますが、それらを一切行わずにシステムを停止することなくアプリケーションの更新を適用させることです。メリットとしてシステムの保守性の向上や作業工程のリダクションによる作業コストの削減などが望めるということもあり、現在はホットデプロイが一般的になってきています。

デプロイとは

これら一連の流れは、時系列にして確認するとそれぞれの違いなども分かりやすいかもしれません。
ゲーム/アプリのAWS構築・運用支援

コンパイル、ビルド、デプロイの違いのまとめ

①コンパイル

開発者が作ったソースコードをコンピューターが理解できるようにオブジェクトコードへ変換する。

②ビルド

バラバラな複数のオブジェクトファイルを一つの実行ファイルとしてまとめ、実行できる状態にする。(コンパイルもビルドの作業の一環)

③デプロイ

ビルドされた実行ファイルをサーバー上に展開と配置を行い、作成したプログラムを実際に利用できるようにする。

④リリース→(利用者による)インストール

実際に製品やサービスとしてプログラムを公開する。その後、利用者がコンピューターやスマートフォンにアプリケーションをインストールする。(リリースやインストールもデプロイの一環)

コンパイル、ビルド、デプロイの違いのまとめ

今回はコンパイル、ビルド、デプロイの違いや大まかな流れを簡単にご説明させていただきました。今後の業務にお役立ていただけますと幸いです。

おすすめの記事

おすすめのカテゴリ