AWS

AWSについて勉強する

よく出てくる用語

EC2(Elastic Compute Cloud):仮想サーバー
RDS(Relational Database Service):データベース
S3(Simple Storage Service):ストレージ
IAM(Identity and Access Management):AWS リソースへのアクセスを安全に制御するためのウェブサービス
Amazon CloudWatch:AWS で実行するアプリケーションのモニタリングサービス。メトリクスを収集して追跡すること、ログファイルを収集してモニタリングすること、アラームを設定すること、AWS リソースの変更に自動的に反応することができる。

アカウントを作る

・クレジットカードの登録が必要
・電話を使った二段階認証

EC2の作成

サービス>コンピューティング>EC2
・リージョンを東京にする
・インスタンスの作成

AMIの選択

AMI(Amazon Machine Image) は、インスタンスの作成に必要なソフトウェア構成 (OS、アプリケーションサーバー、アプリケーション) を含むテンプレート。 AWS が提供するもの、ユーザーコミュニティが提供するもの、または AWS Marketplace に掲載されているものを選択可能

今回はAWSが無償で提供する下記のAMIを利用
・Amazon Linux AMI 2017.09.1 (HVM), SSD Volume Type - ami-ceafcba8を選択

スクリーンショット 2018-02-10 22.13.05.png

インスタンスタイプの選択

インスタンスは、アプリケーションを実行できる仮想サーバー。CPU、メモリ、ストレージ、ネットワークキャパシティーのさまざまな組み合わせが可能なため、アプリケーションに合わせて適切なリソースを柔軟に選択可能。

今回は汎用向けで無償提供されている下記を選択
t2.micro (可変 ECU, 1 vCPU, 2.5 GHz, Intel Xeon Family, 1 GiB メモリ, EBS のみ)

インスタンスの設定

・サブネットの選択
・削除保護の有効化にチェック

ストレージの追加

インスタンスに追加の EBS ボリュームやインスタンスストアボリュームをアタッチするか、ルートボリュームの設定を編集することができます。

EBSって何?インスタンスストアボリュームって何?ルートボリュームって何?
EBS(Elastic Block Store):
ー耐久性に優れたブロックレベルのストレージボリューム
ーシステムドライブ、データベースアプリケーションのストレージなど、頻繁に更新する必要があるデータのプライマリストレージとして使用可能
ーEC2 インスタンスの運用状況から独立した永続性を持つ

インスタントストア:
ーインスタンス用のブロックレベルの一時ストレージを提供
ー頻繁に変更される情報 (バッファ、キャッシュ、スクラッチデータ、その他の一時コンテンツなど) の一時ストレージに最適
ーロックデバイスとして表示される 1 つ以上のインスタンスストアボリュームで構成
ーインスタンスストアのサイズと、利用可能なデバイスの数は、インスタンスタイプによって異なる

ルートボリューム:
ールートデバイスボリュームに格納されているイメージを使用してインスタンスがブートされる
ーinstance store-backed AMI または Amazon EBS-backed AMI のどちらからでもインスタンスを起動できる。AMI の説明にはそのタイプが含まれており、場所によってルートデバイスが ebs (Amazon EBS-Backed の場合) または instance store (Instance store-Backed の場合) と表示される。各タイプの AMI を使用して実行できることには大きな違いがある。
詳しくはコチラを参照

・デフォルト設定を利用

タグの追加

インスタンス、イメージ、その他の Amazon EC2 リソースにはタグという形式で独自のメタデータをオプションで割り当てることができる。

セキュリティグループの設定

セキュリティグループ:
ーインスタンスのトラフィックを制御するファイアウォールのルールセット

・ソースはマイIPにする
・HTTP 0.0.0.0/0 でインターネットからの接続を可能にする
この辺り、基本でありながら全然理解できていないので、今度復習する。

キーペアの作成

とりあえず作成して安全な場所に置いておく
ここは今度勉強する。
キーが公開されていないことが必要
chmod 400 キーペア
で読み出し権限のみにする

仮想サーバーへの接続

アクション>スタンドアロンSSHクライアント

ssh -i "キーペア" ----.amazonaws.com
でサーバー接続。
sudo yum update
でアップデート
sudo yum -y install httpd php mysql
でインストール

sudo service httpd start
でWebサーバーの立ち上げ
sudo chkconfig httpd on
で再起動時に自動でサーバーを立ち上げる

/var/www/htmlにファイルを置くとWeb上でページを表示してくれるようだ。これをhomeディレクトリに置いていたら怒られた(当たり前だ笑)

イメージの作成

イメージとはインスタンスの設定内容をテンプレ化したもの
右クリック>イメージ>イメージの作成

IPアドレスを設定する

Elastic IPs>新しいアドレスの割り当て
アドレスの関連付けから関連付けるインスタンスを選択
*インスタンスに関連づいていないElastic IPは課金されてしまうので使わない場合はリリースすること

バックアップとスペックの変更

バックアップ:ボリューム>スナップショットの作成
作成したスナップショットからイメージを作成し、イメージからインスタンスを作成する。

スペックの変更
インスタンスを停止する
Stateがstoppingからstoppedになってからインインスタンスの設定>インスタンスタイプを変更する
その後インスタンスを開始する

データベースを立ち上げる

DBエンジン;MySQL
無料枠で利用するためマルチAZはオフにする。
マルチアベイラビリティゾーンを有効にすると、物理的に離れたデータセンターにバックアップを作ってくれるので障害に強くなる。

mysqlへの接続
mysql -h エンドポイント -u ユーザー名 -p
で接続できるはずなんだけどうまくいかない。
どうもセキュリティグループの設定が必要なようだ。
参考:mysqlへの接続

ロードバランサーを作る

アクセスをインスタンスに振り分ける

ロードバランサーの設定

リスナーとは、設定したプロトコルとポートを使用して接続リクエストをチェックするプロセス

S3を作成する

ストレージに特化しているので、容量を気にする必要がない。信頼性が高い。アクセスも高速。
画像をホストして、アクセスを分散させる。基本的に開発言語向けのパッケージを利用することが多い。

無料でAWSを利用する際の注意点

・EC2のマイクロインスタンスのみ利用する
参考:https://aws.amazon.com/jp/ec2/?ft=n

ドメインを取得して、S3と紐づける

URLから静的ページへ遷移する仕組みを作成する。

お名前.comからドメインを取得

ムームードメインなども有名、今回はお名前.comでドメインを取得した。

Route53を使ってS3とドメインを紐づけ

詳細はコチラに載っているので参考にすると良い

次回勉強すること

・S3の料金体系
・S3とEC2の違い、用途の違い、料金について
・EC2を用いた動的ページの作成
・EC2内で作業する為に必要なこと