テックキャンプ サーバー作業


自動デプロイ【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は色んなソフトウェアを組み合わせて動くようになる。
スターターセットみたいなイメージ

◎パッケージャ・マネージャ
何がインストールされたか記憶し、新しくインストールした新しいバージョンに更新、
以前のソフトウェアの削除を用意に行えるもの
例)iOSApp 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(セキュアシェル)
安全にリモートサーバと通信できる

SSHサーバー=リモート
SSHクライアント=ローカル

🔳公開鍵でのログイン手順
1,公開鍵と秘密鍵を生成(ssh-keygen -t rsaコマンド)
2,公開鍵を鯖側に設置(送信先ディレクトリを指定してファイル送る、scpコマンド)
・リモート鯖にローカル環境の公開鍵のファイル(id_rsa.pub)をコピー
・ローカル環境の公開鍵のファイル(id_rsa.pub)の中身を、
リモート鯖の公開鍵のファイル(~/. ssh/authorized_keys)に追記
3,公開鍵認証でログインできるか確認