この記事では、デプロイの手順も交え、AWSを使ったインフラの構築方法を解説します。
こんにちは!侍ブログ編集部(@samuraijuku)です。
前回行ったAmazon Web Services(AWS)超入門セミナーでは、実際にアプリケーションをデプロイするという高度な内容を行いました。
そのため、参加者の方はかなり苦戦されていた模様です。
しかし、自分で開発したアプリケーションを公開し稼働させるためには必要な作業でもあります。
そこで、今回はAWSを使ったインフラ構築方法について解説します。
多くの初心者の方々の参考になれば幸いです。
なお、前回行ったイベントの概要はこちらをご覧ください。
- AWSにアプリを公開するにはインフラやデプロイの知識が必要
- 最近はツールが主流だがデプロイの流れを把握しておくことが重要
- 初心者はインフラの基礎本を一冊読破すると体系的な知識が身につく
必要となる知識
開発したアプリを公開するために必要となる知識は、主に以下の3つです。
- インフラの知識
- Linuxコマンドの知識
- デプロイの知識
では、それぞれについて詳しく見ていきましょう!
インフラの知識
そもそもインフラって何?
インフラとはインフラストラクチャーの略で、アプリやシステムを稼働させるために基盤となるハードウェアやサーバなどのことをいいます。
サーバーと言われてもイメージが湧きづらいと思いますが、デスクトップ本体のようなコンピューターをイメージしていただければいいでしょう。
アプリやシステムを稼働させるためには不可欠のもので、私たちの生活でいうと、ガス、水道、電気のような生活基盤と同じです。
自分で作ったWEBアプリやシステムなどを公開する場合は、このインフラを準備する必要があります。
ただ、インフラはクラウドサービスを使って、料金を支払うことで簡単にレンタルすることができます。
ひと昔前は自分で購入して用意することが多かったのですが、今は安価でレンタルでき、自分でインフラの構築・運用・保守をおこなう手間も省けるので多くの方が利用しています。
初心者の方はまずレンタルすることを視野に入れるといいでしょう。
AWSはインフラの最高峰
AWSは数あるサービスの中でも、品質がよくサービスも非常に充実しています。
50個以上のサービスがあり、設定の変更やお互いのサービス同士の連携など柔軟性に富んでいるのが最大の特徴です。
さらに、使った分だけ料金を支払うという従量課金を採用している点も大きな特徴の1つです。
インフラってどんな仕組み?
インフラといってもかなり範囲が広く、それだけで簡単に一冊の本が書けてしまうくらいです。
そのため、この記事では初心者が最低限知っておくべき知識を解説します。
インフラは大きく分けて、「サーバー」と「ネットワーク」に分かれます。
サーバーエンジニアやネットワークエンジニアなどの専門職がありますが、小規模なものでは両方の知識を兼ね備えた人材が求められる傾向があります。
幅広い知識が必要になりますが、初心者は最初にネットワークの概要や仕組みを学習することがおすすめです。
AWSを利用することで、サーバーの知識は最小限ですみます。
経験を積んでいくうえで、徐々に深い知識を得てメンテナンスやチューニングができるようになるといいでしょう。
Linuxコマンドの知識
AWSではEC2というサービスを利用することで、サーバーをレンタルできます。
EC2では自分で自由にサーバーの設定を変更したり、好きなソフトウェアをインストールすることができます。
その代わり、自分でサーバーを操作する必要があるためコマンドの知識は必須となるでしょう。
とくに安価で利用できるLinuxを搭載したサーバーをレンタルすることが多いためLinuxコマンドについてある程度慣れておく必要があります。
Linuxコマンドについて以下の記事で解説していますので、練習しておくといいでしょう。
デプロイの知識
最後はデプロイの知識です。
デプロイとは、「アプリやシステムをサーバー上で稼働する状態にすること」をいいます。
具体的には以下の手順を踏みます。
- 1. 自分や会社のパソコンでアプリやシステムを開発する
- 2. Gitを使ってソースコードを管理する
- 3. サーバーを借りる
- 4. サーバーに遠隔でログインし、サーバー上からGitで管理しているソースコードをとってくる
といった感じです。
この流れを把握しておくことは、デプロイを行う上で非常に役立ちます。
デプロイは何かしらツールを使って行うことがほとんどですが、設定を行うときにデプロイの流れを把握しておくと理解がしやすいからです。
0からのデプロイ手順
では、実際にどうやってインフラの環境を構築し、アプリケーションを稼働させるかですが、具体的に下記の記事を参考に実践しました。(当塾インストラクターの佐野が書いた記事です)
Capistrano3 + Rails4 + Unicorn + Nginx + EC2でサーバー構築!
Ruby on RailsとAWSのEC2を使って実際にアプリケーションを稼働させるまでを解説しています。
イベントでは、主に初心者が難しいと感じるポイントをあげて都度解説を行いました。
その中でもとくに初心者がつまづくポイントをご紹介します。
初心者がインフラ構築でよくつまづくポイント
解説を読んでもさっぱりわからない
インフラ構築のためには、アプリケーション開発時とはまた違った分野の知識が必要です。
AWSでは公式ドキュメントが豊富に用意されていますし、インフラ構築に関する記事もネット上には多数あります。
しかし、基本的な知識を持っていることを前提に書かれていることが多いため、初心者の方は解説を熟読したとしても理解が難しいでしょう。
もし、今インフラ構築でつまづいている方は、時間を取ってインフラの知識の本を1冊くらいは読んでみた方が良いと思います。
一見すると遠回りのように感じますが、今後運用・保守をすることも考えると、今の段階で体系的に学んだ方が学習効率がいいです。
サーバーの設定方法がわからない
最初は、サーバーの設定や使い方がさっぱりわからないでしょう。
この場合は、サーバーを稼働させるために専用のライブラリを使うことが多いので、ライブラリの公式サイトを読んで学習するしかありません。
また、インフラに関する知識がないとソフトウェアの役割や立ち位置がわかりません。
デプロイ時に起こるエラーが直せない
デプロイ時に設定が間違えていたり、必要なものがない場合にエラーがよく起こります。
初めてみるエラーばかりですので、よく調べないといけません。
このデプロイ時のエラーに対応するためには、ログの出力ができるかどうかが鍵です。
エラー時のログ出力をできるように出力するフォルダの指定をしっかり確認しくといいでしょう。
まとめ
AWSを利用することで、保守や運用の手間が大幅に省くことができます。
初心者の方にとっては、インフラ構築は1つの大きな壁となることは間違いないでしょう。
しかし、インフラを構築できるようになればもはや敵なしです。
焦らず1つ1つ学習して、理解をすすめていきましょう!