環境構築をスムーズに進めるための基本知識

フリーランス

どの現場でも最初に行うこと、それが「環境構築」です。
フリーランスが新しい案件に参画する時はもちろんのこと、会社員でも異動になったりすると、環境構築が必要になる場面が必ず出てきます。

そんな環境構築ですが、実はけっこう手こずることも珍しくありません。
僕は色々な案件やプロジェクトに関わっていたので、当然環境構築をした回数もそれなりにありますが、スムーズに完了したことよりも謎のトラブルに見舞われて何時間も余計にかかってしまったことの方が多いです。

そんなわけで今回は、環境構築をスムーズに進めるために知っておくとよいことを解説します。
なお今回解説する内容は、環境構築の経験があまりない人や環境構築に苦手意識がある人向けとなっています。
慣れない開発環境の現場に行くことになった人や、久しぶりに環境構築をすることになった人はぜひ参考にしてみてください。

環境構築とは

「環境構築」とは、ざっくり言えばプログラムを正常に動かすために必要な準備を整える作業のことです。
要するに自分のPC上でプログラムを実行できる状態にすることです。
※現場によっては上記の準備に加えて、開発環境やテスト環境へアクセスできる状態にすることも含めて「環境構築」と呼んでいたりもします

この環境構築は、現場によって様々なやり方があります。
ドキュメントがしっかり整備されていてその手順通りに行う場合もあれば、必要最低限のツールだけ指定されていてあとは自由にして良いみたいな場合もあります。

また、環境構築にかかる時間も現場によって異なりますが、大体1~2日で完了する前提で見積もっているケースが多かったです。

知っておくべき基本知識

Docker

最近はDockerを使って環境構築をしている現場が増えてきました。
「○○にあるdocker-composeファイルを使ってください」といったように、Dockerを使える前提で環境構築手順が記載されていることも珍しくありません。
Dockerの使用経験があれば全く問題ありませんが、「そもそもDockerって何?」みたいな状態だと何が何やら訳がわからず戸惑ってしまうでしょう。

Dockerとは、「コンテナ」と呼ばれる小さい仮想マシンのようなものの集合です。
このコンテナは仮想マシンとは違い、OS全体が入っていたりはせずにアプリを動かすための必要最低限なものだけが入っています。
動作に必要なものはコンテナに含まれているため、PCの環境にほとんど依存せずに同じ環境でアプリを動かすことができるようになります。

Dockerが登場する以前は、PCでアプリを動作させるために「○○のDBをインストールする」「△△のツールをインストールする」等の対応を個別に行っていました。
しかしDockerを使うと、「Dockerをインストールする」のみで事足りるようになります。

Dockerの構成を自分で作成する場合はある程度知識は必要ですが、既に用意されたDocker設定で環境構築するだけならそれほど難しくありません。
以下に、Dockerを使って環境構築する場合の手順をざっくり説明します。

1.Dockerをインストールする

まずはDockerを使えるようにする必要があります。
現場で指定されているツールがあれば、そのツールをインストールしましょう。
特に何も指定されていない場合は、DockerDesktopが使いやすいと思います。(Windows/Macのどちらも対応)
DockerDesktopのインストールについては公式ドキュメントを参照してください。

2.Dockerを実行する

1.の手順によってWindowsならコマンドプロンプト、Macならターミナル等で”docker”コマンドが実行できるようになっているはずです。

まずは”docker-compose.yml”といったようなDockerの設定ファイルがあるフォルダへ移動します。

cd [プロジェクトのパス]

続いてDockerコンテナを起動させます。
コマンドが指示されていればそれに従い、なければ以下のコマンドを実行してください。

docker compose up -d

特に問題なく実行完了していれば、無事Dockerコンテナが起動できているはずです。
何かしらエラーが発生していた場合は、「Dockerの設定ファイルがおかしい」等の現場特有の問題の可能性があるので詳しいエラー内容を他のエンジニアに共有しつつ指示を仰ぎましょう。

3.コンテナの管理

Dockerコンテナの再起動やログの確認等は、コマンドでももちろん可能ですが1.でインストールしたDockerDesktop等のツール上でも確認可能です。
やりやすい方で管理してください。

また、PCを再起動するとDockerコンテナも当然停止します。
PCを再起動させた場合は忘れずにDockerコンテナも起動させましょう。
Dockerに不慣れなうちは、「アプリが動かなくなった!」→「Dockerコンテナ起動してないだけだった…」みたいなことがよくあります(笑)

バージョン管理システム(主にGit)

システム開発とバージョン管理は切っても切れない関係にあります。
そのため、GitやSubversionといった何かしらのバージョン管理システムを使ったことがある人は多いでしょう。

念のため説明しておくと、バージョン管理システムとはソースコード等のファイルの変更履歴を記録し、変更内容を確認したり必要に応じて過去の状態に戻したりできる仕組みのことです。
複数人でシステム開発をする際は、これがないとお話にならないレベルで必須のものです。

バージョン管理システムにはいくつか種類がありますが、現場で圧倒的によく使われているのがGitです。
ゲーム開発の現場ではほぼGit、たまに参画するゲーム以外の開発現場でもやはりGitを使うことがほとんどでした。
Gitの経験がない人は、基本的な操作くらいは押さえておくと幸せになれると思います。

2段階認証

最近は何かしらのWebサービスを使う際に、2段階認証の設定を行うことが必須となりつつあります。
システム開発に関係が深いサービスとしては、GitHubやGitLabなどが代表的です。(ちなみにGitHubやGitLabは、GitをWeb上で使えるサービスです)

2段階認証とは、パスワードに加えてもう1つ別の手段で認証を行う仕組みです。
例えば「パスワードの入力後、登録されているメールアドレスに送られた数桁のコードを入力する」みたいな感じです。

ネット銀行や通販サイトではメールアドレスを使った2段階認証が多いです。
しかし、システム開発の現場だと認証アプリを使った2段階認証というものを使うケースが多いです。
この認証アプリを使う2段階認証は、初めてだとけっこう手間取るので簡単に手順を解説していきます。

1.認証アプリをインストールする

認証アプリはスマホのアプリが多いです。(PC向けのものもあるようですが、ここではスマホのアプリの前提で説明します)
現場で指定されているアプリが特になければ、Google Authenticatorあたりが無難だと思います。
アプリストアで「Google Authenticator」と検索してインストールしましょう。

2.Webサービスの2段階認証の設定を進める

2段階認証を設定したいWebサービスの設定画面に進みます。
設定手順はWebサービスによってまちまちなので、「[Webサービス名] 2段階認証 設定」みたいな感じで調べてください。

設定を進めていくと、QRコードと「認証アプリをインストールしてね」的なメッセージが表示される画面になるはずです。
それらしき画面が出てきたら、次の手順に進んでください。

3.認証アプリにWebサービスを登録する

認証アプリを起動すると、画面のどこかに「+」ボタンがあると思うのでそれを押します。
(アプリによっては「+」ボタンがないかもしれませんが、「Add」等の何かしら追加のニュアンスがあるボタンを探して押してください)

ボタンを押すとQRコードの読み取りができる状態になると思います。
そうしたら先ほどWebサービス画面で表示されたQRコードを読み取りましょう。

4.認証コードを確認する

無事、認証アプリにWebサービスを登録できると、以下の表示が確認できるはずです。

  • Webサービス名
  • アカウント名
  • 謎の6桁の数字
  • 残り時間らしき円グラフ

この謎の6桁の数字が認証コードです。
Webサービス側で認証コードの入力を求められた際は、この謎の6桁の数字の入力を求められていることになります。

認証コードは有効期限があり、有効期限内に認証コードを入力しないといけません。
有効期限がすぎると、自動で認証コードが変わり残り時間がリセットされます。
もし残り時間わずかであれば、少し待って新しい認証コードになってから改めて入力しましょう。

環境構築の心得

環境構築は、慣れないうちはどこでつまずくかわからないものです。
以下のポイントを意識しておくと、作業がスムーズになったり、トラブル時のリカバリが早くなったり、無駄に焦ることも減ります。

環境構築でつまずくのは“よくあること”

環境構築は、ベテランエンジニアでも一発OKとなることはあまりないです。
大抵は何かしらの作業につまずいたり、思ったより手間取ったりして、初日がまるまる環境構築で終わることもよくあります。

多少環境構築に手間取っているからと言って「自分はなんて作業遅いんだ…」と落ち込む必要はありません。

ドキュメントはしっかり読む

多くの現場では、README.mdやNotion、Confluence等のドキュメントで環境構築手順や注意点がまとめられています。
ある程度慣れてくると、ドキュメントをさっと読んだだけである程度作業を進められるようにもなりますが、それでも必ずドキュメントはしっかり読んでおきましょう。

例えば、「このコマンドはMac専用」「Windowsの場合はこの設定が必要」といった重要な注意事項がドキュメントに記載されていることは多いです。
「色々調べてようやく解決した現象が、実はドキュメントの注釈に記載されていた…」なんてことはよくあります。

よくあるつまずきポイントを知っておく

環境構築でつまずくポイントは、よく似たパターンが多いです。
パターンを知っておくだけで、つまずいた際にどこが怪しいか目星をつけやすくなります。

僕が今まで経験した中で、よくある環境構築のつまずきポイントを紹介します。

OSの違い

会社支給のPCを使うのであれば、OSの違いによる環境構築のつまずきは少ないかもしれません。
一方、個人でPCを用意しなければいけない場合は、OSの違いで環境構築につまずくことがよくあります。

例えば「使用するPCのOSは何でもよいですよ」→「Windowsを使うことにしたが、実は他エンジニアは全員Macを使っていた」なんてことはよくあることです。
他のエンジニアが使っているOSや、自分が使う予定のOSでその環境構築を行った実績があるかは確認しておくのが吉です。

最近遭遇した例としては、「デフォルトの改行コード(WindowsはCRLF、MacやLinuxはLF)の違いで、スクリプトが動かない」というケースもありました。

ツールやライブラリのバージョン差異

ドキュメント通りにインストールしたつもりでも、うっかり最新バージョンを入れてしまい、バージョン差異によるトラブルが起こるのもよくあります。

バージョンが指定されているのであればそれに従うのはもちろんですが、中にはバージョンが指定されていなかったけど実はバージョンが重要だったケースもありえます。
「よくわからないエラーが出る」「動くけど想定している挙動とちょっと違う」なんてことがあった場合は、他エンジニアが使っているバージョンを確認しましょう。
もしバージョン指定されてないけどバージョン起因だった場合は、ちゃんとドキュメントを修正しておくと後の人が助かります。

設定ファイルの修正漏れ

「”xxx.config”という設定ファイルを作り、中身を○○としてください」「”yyy.config”の△△の部分を自分の環境に合わせて修正してください」みたいな手順があることは多いです。
ところが、「”xxx.config”という設定ファイルは作ったが中身が空のままだった」「”yyy.config”の中身の修正を忘れていた」ということはやらかしがちです。

権限不足

環境構築時に動作させるスクリプトが、特定の権限がないとうまく動作しないパターンもあったりします。
大抵はログに「認証失敗」「権限がありません」的なわかりやすいエラーが出るので、比較的解決しやすいです。

自分ひとりで悩みすぎずに周りに頼る

ドキュメントの手順を漏れなく実行し、怪しい箇所も一通りチェックしたにも関わらず何故かうまくいかないケースも中にはあります。

そんな時は素直に周りのエンジニアに助けを求めましょう。参画初日は環境構築等の案内をしてくれるエンジニアの人がいるはずなので、まずはその人に聞いてみるのが無難です。
「実は現場特有の問題で、事情を知らない人が調べてもなかなか解決しない問題だった」なんてこともよくあります。

そもそも周りのエンジニアも、参画初日の人が環境構築の何かしらにつまずくのは想定内だったりします。
当然質問されることも想定しているので、「作業の邪魔になるかも?」なんて変な気づかいをする必要はありません。どうしても気になる場合は、忙しくなさそうな人に声をかけるか、手が空いている人が回答してくれることを期待してチャットに質問を投げましょう。

まとめ

環境構築は、どんなに経験を積んだエンジニアでも、何かしらのトラブルやつまずきが起きやすい工程です。
「うまく動かないことが普通」という前提を持っておくだけでも、焦らず落ち着いて対応できるはずです。

この記事では、環境構築でよく使われる技術や、環境構築の心得を紹介しました。
現場ごとに手順や注意点は異なりますが、今回紹介したことを意識できていれば、環境構築トラブルの多くは乗り越えられると思います。

とはいえ、それでも環境構築につまずくことはゼロにはできません。
どうしても自力で解決が難しそうな場合は、無理せず素直に周りの人に頼りましょう。

コメント

タイトルとURLをコピーしました