テックキャンプ サーバー作業
自動デプロイ【bundle exec cap production deploy】
ターミナルでAWSキー確認【env | grep AWS】
【cd ~/.ssh】➡️【ssh -i 名前 ec2-user@IP】
MySQLを起動する【sudo service mysqld restart】
nginxの再起動【sudo service nginx reload (restart)】
unicorn実行中確認【ps aux | grep unicorn】
Gitからpullする【git pull origin master】
Rails再起動【bundle exec unicorn_rails -c config/unicorn.rb -E production -D】
Unicorn起動コマンド
【RAILS_SERVE_STATIC_FILES=1 unicorn_rails -c config/unicorn.rb -E production -D】
◎serect_key_base
クッキーの暗号化に用いられる文字列
Railsアプリを動作させる時に必ず用意する必要がある。バレたらだめよ。rake secretで生成
🔳セキュリティグループ
EC2鯖が属するまとまりのようなもの。複数のEC2インスタンスのネット設定を一括で行う
🔳unicorn_railsコマンド
◎-c config/unicon.rb=設定ファイルの指定
◎-E production=環境を本番モードとして動作させる
◎-D (Daemon)=プログラム起動しつつターミナルで別コマンド打てるオプション
🔳アセットファイルをコンパイルする
◎psコマンド=現在動いてるプロセスを確認するコマンド
🔳web鯖
・クライアントからのリクを受け取り、応じたコンテンツをレスポンスするプログラム
・静的(リクエストのたびに内容が変更されないファイル)コンテンツを
レスポンスとしてクライアントに返す
・動的(クエストのたびに内容が変更されるファイル)コンテンツ生成を
アプリ本体(鯖?)に依頼する処理
🔳アプリケーション鯖
Web鯖から渡されてきた情報を、アプリ鯖内で処理して、結果をWeb鯖に返す処理
◎Webとは蜘蛛の巣(spider web)
◎クライアント=提供される人
◎サーバ(ソフトウェア)=提供する人
◎クライアントと鯖のやり取りの流れ
1,クライアントが鯖にリクエストを送る
2,鯖がリクエストを解析、処理して答えを作る
3,鯖がクライアントにレスポンスを返す
🔳デプロイするまでの流れ
1、アプリを開発
2、デプロイするための鯖を用意
3,実際にデプロイする
◎クラウドコンピューティング
ソフトウェアやハードウェアの利用権をネット越しに提供する技術。
必要な時に必要な文だけ使える
◎yumコマンド
Linuxのソフトウェア管理の仕組み。Macのhomebrew。一括アプデとかできる
◎パッケージ
Linuxのある役割や機能を持ったプログラムの集合。ソフトウェアやライブラリとも呼ぶ
◎-y=side-by-side 形式(2列)で出力
◎アプリケーションサーバ
リクエストを受け付けRailsアプリを動作させるソフトウェア(rails s)
◎プロセス
鯖で動く全てのプログラム実行時の単位。動く数だけプロセスがある
◎worker(ワーカー)
unicornはプロセスを分裂できる。その全てをワーカーと呼ぶ
🔳サーバーとは
サービスを提供するコンピュータや、それにある様々な機能(処理)。特化した機能
◎サーバーの役割
様々なデータを管理・保存。PC同士の通信を行う(WEBサーバー)
◎IPアドレス
コンピュータやサーバーに設定された住所のようなもの
◎グローバルIPアドレス
インターネットに接続する際に利用されるIPアドレス。この世に1つしかない
◎プライベートIPアドレス
ISPから振り割られたGIPをさらに小分けしたIPアドレス。別名LAN(LocalAreaNetwork)
◎ルーター
ネットとパソコン間で通信を行う時に必要になる機器
◎ドメイン
IPアドレスを文字列に変換したもの
文字列化する仕組みをDNS(DomainNameSystem)
◎トップレベルドメイン
ドメインを取得するために必要。inやcomやjpなど。
・セカンドレベルドメイン
早いものがちの2番手。tech-campなど
◎DNSサーバー
IPアドレスとドメインのそれぞれの組み合わせを管理、保存してる鯖
◎digコマンド
DNSサーバーに問い合わせてメインからIPアドレスを取得し表示するコマンド
◎ポート
1つの鯖と複数の鯖を繋ぐもの
◎HTTP
WEBページで必要なCSS,JS,画像等のファイルを鯖にリクエストするためのフォーマット
◎クッキー
WEB鯖がユーザを認識する仕組み
◎Linuxとは
OSの一種。
🔳ディストリビューション
Linuxは色んなソフトウェアを組み合わせて動くようになる。
スターターセットみたいなイメージ
◎パッケージャ・マネージャ
何がインストールされたか記憶し、新しくインストールした新しいバージョンに更新、
以前のソフトウェアの削除を用意に行えるもの
例)iOSのApp Storeみたいな
🔳Linuxの基本的なコマンド
◎シェルとは
鯖に対して作業したい時、ターミナル等を使ってコマンドを利用するけど、
そのユーザーが入力したコマンドを解釈するソフトウェア
◎ls(list)
◎ディレクトリ(フォルダ)
◎カレントディレクトリ(.)=現在作業中のディレクトリ
◎親ディレクトリ(..)=1つ上のディレクトリ
◎ホームディレクトリ(~)=新規にターミナル起動した時の作業中になるディレクトリ
◎ルートディレクトリ(/)=その階層構造の一番上。木の根元
◎cp(コピー)
◎mv(移動及びリネーム)
◎rm(削除)
◎mkdir(新規にディレクトリ(フォルダ)を作成)
◎touch(移動か、指定したファイルがない場合は空のファイルを作成してくれる)
◎cat(ファイルの内容を結合し、表示する)
◎tail(ファイルの終わり部分を表示するコマンド)末尾に追加するとエラーログ分かる
◎vi(鯖で設定ファイルを編集する時のエディタ。標準装備のソフトウェア)
🔳通常モード(escキーを押す)
◎文字入力できない。
:w=作成、編集したファイルを保存
:q=viコマンドを終了
:q!=編集した内容を保存しないでviコマンドを終了
:wq=編集した内容を保存してviを終了
🔳インサートモード(iキーを押す)
◎文字入力できる
/=文字列を検索
u=挿入中の一連の文字入力の動作を1つ取り消せる
🔳サーバ設定
◎一般ユーザーとrootユーザー
ファイルに対して権限が違う
◎sudo=他のユーザーに成り代わってコマンド実行できる。権限いる
◎su=他のユーザにログインし直せる。パスいる
◎所有者とは
ファイルの持ち主。権限を設定できる
◎パーミッションとは
誰にどのような操作を許可するか。権限を規定した情報
読み込み(r,4)書き込み(w,2)実行(x,1)
「ls -l(権限見たいファイルのパス)」で確認できる
例)「 rwx r-x r-x 」➡️所有者rwx、グループユーザーrx、一般ユーザーrx
例)755➡️足し算すると上と同義。
◎chmod=権限を書き換えるコマンド
◎chown=所有者を変更するコマンド
🔳ターミナルにコマンドのプロセスを表示する
◎プロセスとは
鯖やコマンドなどLinux上で実行してる処理。
プロセス名とプロセスIDが自動的に付与される
◎ps➡️プロセスを確認
-a=自分以外のユーザのプロセスも表示
-r=実行中のプロセスのみ表示
-u ユーザー名=ユーザー名とプロセスが実行された時刻を表示
aux=実行中の全てのプロセスのCPU使用率など詳細情報を表示
🔳複数のコマンドを組み合わせる方法
| (パイプ)処理=あるコマンドの結果を次のコマンドに渡す処理
grepコマンド=特定の文字列が含まれる一行を抽出する
kill(プロセスID)=終了させる。kill -9(プロセスID)=強制終了できる
◎プロトコル
データのやり取りの手順
◎SSH(セキュアシェル)
安全にリモートサーバと通信できる
🔳公開鍵でのログイン手順
1,公開鍵と秘密鍵を生成(ssh-keygen -t rsaコマンド)
2,公開鍵を鯖側に設置(送信先のディレクトリを指定してファイル送る、scpコマンド)
・リモート鯖にローカル環境の公開鍵のファイル(id_rsa.pub)をコピー
・ローカル環境の公開鍵のファイル(id_rsa.pub)の中身を、
リモート鯖の公開鍵のファイル(~/. ssh/authorized_keys)に追記
3,公開鍵認証でログインできるか確認