#はじめに
【この記事を書いたきっかけ】
AWSでデプロイを行ったが用語の理解が甘かったので、自分でまとめていつでも振り返ることができるようにする為。あくまでメモ代わりに書いているので、詳しい方法については書いていません。
#EC2
EC2(Amazon Elastic Compute Cloud)
はAWSが提供する仮想サーバ。
EC2で起動したサーバは、「EC2サーバ」「EC2インスタンス」「インスタンス」などと呼ばれている。
EC2でWebサーバを作って試すまでの流れ
1. EC2インスタンスを作成する
2. EC2にログインする
3. サーバに「Nginx」をインストールする
4. ブラウザからWebサーバにアクセスする
5. Nginx用のHTMLを作成する
###EC2にログインする
####①SSH内にキーペアファイルを保存する
EC2インスタンス作成時にダウンロードしたキーペア(something.pem)をユーザのホームディレクトリのSSH内に保存する。
実行時には、ログインしているMacユーザのパスワードを求められる。
$ sudo mv ~/Downloads/something.pem ~/.ssh
「sudo」は、管理者権限でコマンドを実行するコマンド。
「mv」は、ファイルを移動するコマンド。
####②キーペアファイルの権限を変更する
$ sudo chmod 600 ~/.ssh/practice-aws.pem
「chmod」は、権限を変更するコマンド。
####③SSHでサーバにアクセス
キーペア、アクセス先サーバのユーザ名、パブリックIPアドレスを指定
パブリックIPアドレスはインスタンス画面で確認する。
$ ssh -i /Users/ユーザ名/.ssh/practice-aws.pem ec2-user@xx.xx.xx.xx
##サーバにNginxをインストール
##Nginx
NginxはサーバをWebサーバにするためのミドルウェア。
$ sudo yum install -y nginx
「完了しました!」が表示されれば、インストール完了。
「yum」は、アプリケーションをインストールするコマンド。
#####Nginxの自動起動を設定する
$ sudo chkconfig nginx on
ここではコマンドを実行しても何も表示されない。
#####Nginxを起動する
$ sudo service nginx start
Starting nginx: [ OK ]
Nginxを起動すると、インターネットにWebサービスが公開される。
(EC2インスタンスに割り当てたパブリックIPアドレスにWebブラウザからアクセス)
下記のような画像が表示されればOK。
####Webサーバ上で表示するHTMLファイルを作成し、「Hello World」を表示させる。
$ sudo sh -c "echo 'Hello World' > /usr/share/nginx/html/index.html"
####サーバを停止
「インスタンス」一覧画面で停止したいインスタンスを選択し、「アクション」メニューの「インスタンスの状態」で「停止」を選択。
「インスタンスの状態」が「stopped」になっていれば停止状態。
###サーバを停止後、再度起動してssh接続すると、エラーが出る。
$ ssh -i /Users/ユーザ名/.ssh/practice-aws.pem ec2-user@xx.xx.xx.xx
EC2インスタンスではサーバを停止するとパブリックIPアドレスが変わるから以前のパブリックIPアドレスでは接続できない。。
EC2コンソールから新しいパブリックIPアドレスを確認して書き換える必要がある。
→後にEIPで解決できる。
##SSH
「SSH(Secure Shell」は、他のコンピュータと通信する為のプロトコルの一つ。
「プロトコル(Protocol)」は、コンピュータ同士が通信する際に決められている手順や規約。
コンピュータ同士は、さまざまな手段で通信をしている。
コンテンツを送受信するHTTP、メールを送受信するSMTP、ファイルを転送するFTPなど。
#EIP
EIP(Elastic IP)
はEC2インスタンスにパブリックIPアドレスを付与するサービス。
EC2インスタンスではサービス停止後に再起動するとパブリックIPアドレスが変わってしまう。
毎回パブリックIPアドレスが変わるのは面倒なので、EIPを使って固定のIPアドレスにする。
EIPの設定はEC2ダッシュボードから設定できる。
また、EIPに関連づけられているサーバは変更も可能。
あるサーバで不具合が起きて使えなくなった場合、別のサーバにEIPを付け替えることでサービスを継続できる。
<参考>EIPの割り当て
https://qiita.com/tseno/items/1c6303d778f9089f6f89
#AMI
AMI(Amazon Machine Image)
はEC2インスタンスをバックアップする方法。
AMIはEC2インスタンスの構成を取得し、テンプレートを作成するサービス。
AMIによって、EC2インスタンスディスク内の全内容(たとえば、OSやミドルウェア、アプリケーションなど)をバックアップできる。
<参考>AMIの設定方法
http://blog.serverworks.co.jp/tech/2015/05/18/ami_gettodaze/
#RDS
RDS(Relational Database Service)
はAWSが提供するクラウド型のデータサービス。
データベース管理システム自体はソフトウエアなので、EC2サーバにインストールすれば、データベースサーバを構築できる。
代表的なデータベース管理システムには、MySQL、PostgreSQL、Oracle Database
などがある。
<参考>RDSを使うメリット
https://aws.amazon.com/jp/rds/