AWSメモ
初期設定
AWSのアカウントを作成できる
料金アラート設定
###VPCネットワークを構築
-
全体像
- パブリックサブネット(ワードプレス等)とはインターネットと通信できるサブネットのこと。一般的にブラウザで展開される申し込みフォームのWebサーバー等
- プライベートサブネット(DB等)とはインターネットと通信できないサブネットのこと。
-
AWSネットワークの概念
- リージョンの選択
- リージョンによって使えるサービスが異なる(アメリカが機能大い、日本の場合は東京がおすすめ(通信が早い))
- アベイラビリティゾーン
- 独立したデータセンターのこと
- 複数設置されている
- VPC
- インターネット上に仮想ネットワークを作成できるサービス
- とても重要なサービス
- サブネット
- VPCを細かく区切ったネットワーク
-
ネットワークのIPアドレスを決める
-
IPアドレスとはインターネット上の住所
-
一意性
-
32ビットの整数値(2進数)→読みにくいので8ビットずつの4つの組みにわけ10進数で表示
2進数とは パソコン初心者講座 -
IPアドレスにはパブリックとプライベートがある
- パブリックはインターネットに接続する際利用する。ICANNという団体が管理していて全て一意のアドレス
- プライベートはインターネットで使用されないアドレス。範囲が決まっていて一意でなくても良い
-
IPアドレスの範囲
- ネットワーク部・ホスト部(可変)に区分けすることで範囲を表現できる
-
-
VPCを作成する
-
サブネットを作成
-
ルーティングを設定
- ルーターを通じてネットワークがどのIPアドレスにあるかを管理
- ルートテーブルは「宛先のIPアドレス」と「次のルーター(AWSではターゲット)」という書式で設定する
- local→自身のネットワーク(インターネットに接続できない)
- インターネットの接続にはインターネットゲートウェイの作成が必要
- ルートテーブルは各サブネットに対して設定できる。
- サブネットやインターネットゲートウェイ間にはルーターが動いている
-
ネットワーク設計で考慮すべきポイント
- プライベートIPアドレス範囲から指定する
- 作成後は変更できないので、大きめの設定(/28~/16、/16が推薦)
- オンプレミスや他VPCのレンジと重複いないように気をつける。
- 異なるシステムの場合はアカウントを分ける
- 同一システムの各環境は、VPCとアカウントどちらを分けるか?→同一アカウントで、VPCとリージョンを分けるのがよい(どちらでもよい)
参考
パブリックサブネットとプライベートサブネットの違い | システム担当の教科書
【EC2】Webサーバーを構築
-
EC2インスタンスを設置する
- EC2とは
- AWSクラウド上の仮想サーバー。インスタンスというのはEC2から立てられたサーバーの事。
- 特徴
- 数分で起動し、1時間または秒単位の従量課金。
- サーバーの追加・削除、マシンスペック変更も数分で可能。
- OSより上のレイヤについては自由に設定できる。
- 作成手順
-
AMIの選択
- AMIとは
- AmazonMachineImageの略。インスタンスに必要な情報が入ったOSのイメージ。
- AMIとは
-
インスタンスタイプの選択
- インスタンスタイプとは
- サーバーのスペックを定義したもの- インスタンスタイプにより、料金が異なる
- インスタンスタイプとは
-
ストレージの追加
- サーバーにくっつけるデータの保管場所。EC2のストレージには2種類ある。
- 1.EBS(高い可用性と耐久力を持つストレージ、他のインスタンスに付け替え可能、EC2インスタンスをStop/TerminateしてもEBSは保持可能、Snapshotを取得しS3に保存可能、EBSの費用が別途発生、OSやDBなどの永続性と耐久性が必要なデータを置く)
- 2.インスタンスストア(インスタンス専用の一時的なストア、他のインスタンスに付け替えることができない、EC2インスタンスをStop/Terminateするとクリアされる、追加費用なし、なくなってはいけないデータは置かない、一時ファイル・キャッシュなどなど失われても問題ないデータを置く)
- サーバーにくっつけるデータの保管場所。EC2のストレージには2種類ある。
-
セキュリティグループの設定
-
SSHキーペアの設定
-
- EC2とは
-
SSHについて
- サーバーにログインするとは
- 離れたところにあるサーバーにはいって、自分のパソコンから操作すること
- SSHでログインすると自分がまるでWebサーバーの目の前にいるかの様に自分のコンピューターからWebサーバーを操作できる。
- SSHとは
- サーバーにセキュアに接続する仕組み
- 暗号化されている
- サーバーにセキュアに接続する仕組み
- サーバーにログインするとは
-
公開会議認証について
- 誰でもサーバーに入れると困るので、サーバーの作成者本人だけがログインできるよう、EC2ではSSHログイン時に公開鍵認証を行なっている
- 公開鍵認証とは
- サーバーへのログイン時に認証を行う仕組み。
- ユーザー名とパスワード使用した認証と比べ、よりセキュリティが高い
- 公開鍵暗号(秘密鍵と公開鍵)を用いて認証を行う。
- 公開鍵はサーバーが保有。秘密鍵を持っているユーザーだけログイン可能。
- 公開鍵暗号の「暗号」とは?
- イメージは南京錠
-
SSHでECインスタンスに接続する
-
ポート番号について
- SSHでログインしてサーバーを操作できるのはなぜ?→ サーバー状でSSHぜつ族を受け入れコマンドを受け付けるプログラム(sshd)が動いているから
- サーバーにはたくさん起動しているプログラムがSSHのリクエストを受け付けるがどうやって選別しているのか?→ポート番号で選別している
- ポート番号はプログラムのアドレス。同一コンピューターで通信を行うプログラムを識別するときに利用される。
- 例)SSH:22
- どうやってポート番号を決めるか
- 2つキメ方がある。
- 1.標準で決められている番号
- ウェルノウンポート番号
- 代表的なプログラムが使うポート番号はあらかじめ決められている。
- 2.動的に決められている番号
- サーバーを提供する側(サーバー)はポート番号が決まっている必要があるが、クライアント側のポート番号は決まっていなくて良い
- クライアントのポート番号は、OSが他のポート番号と被らない様にランダムに決める。
[ec2-user@ip-10-0-10-10 ~]$ sudo lsof -i -n -P
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
rpcbind 2689 rpc 6u IPv4 16847 0t0 UDP *:111
rpcbind 2689 rpc 7u IPv4 16848 0t0 UDP *:736
rpcbind 2689 rpc 8u IPv4 16849 0t0 TCP *:111 (LISTEN)
rpcbind 2689 rpc 9u IPv6 16850 0t0 UDP *:111
rpcbind 2689 rpc 10u IPv6 16851 0t0 UDP *:736
rpcbind 2689 rpc 11u IPv6 16852 0t0 TCP *:111 (LISTEN)
chronyd 2698 chrony 1u IPv4 17108 0t0 UDP 127.0.0.1:323
chronyd 2698 chrony 2u IPv6 17109 0t0 UDP [::1]:323
dhclient 2919 root 6u IPv4 17829 0t0 UDP *:68
dhclient 3036 root 5u IPv6 18138 0t0 UDP [fe80::4ab:97ff:fe52:17c]:546
master 3173 root 13u IPv4 19031 0t0 TCP 127.0.0.1:25 (LISTEN)
sshd 3390 root 3u IPv4 20731 0t0 TCP *:22 (LISTEN)
sshd 3390 root 4u IPv6 20740 0t0 TCP *:22 (LISTEN)
sshd 4829 root 3u IPv4 108709 0t0 TCP 10.0.10.10:22->114.191.10.30:51866 (ESTABLISHED)
sshd 4846 ec2-user 3u IPv4 108709 0t0 TCP 10.0.10.10:22->114.191.10.30:51866 (ESTABLISHED)
(LISTEN)は待ち受けているポート
(ESTABLISHD)は通信中相手と通信中のポート
- Apacheをインストールする
Apacheとは
- 世界中で使用されているWebサーバーソフトウェア
- サーバーのにApacheをインストールすることでWebサーバーとしての機能(レスポンス等)ができる
Apacheとは?Webサーバーの仕組みと人気サーバーソフトを徹底解説 | カゴヤのサーバー研究室
アパッチ (Apache)とは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
[ec2-user@ip-10-0-10-10 ~]$ sudo yum update -y
yumの更新
yum linuxのパッケージ管理ツール(インストールや更新等)
-y はyesオプション。
[ec2-user@ip-10-0-10-10 ~]$ sudo yum -y install httpd
httpdはアパッチを構成する実行コマンド
[ec2-user@ip-10-0-10-10 ~]$ sudo systemctl start httpd.service
起動の確認
[ec2-user@ip-10-0-10-10 ~]$ sudo systemctl enable httpd.service
アパッチを自動起動設定する
-
ファイアウォールを設定する
-
ファイアウォールとは
- ネットワークを不正アクセスから守る為に「通してよい通信だけを通して、それ以外は通さない」機能の略称。
Elastic IPアドレスでIPアドレスを固定する
- ElasticIPアドレスとは
EC2インスタンスのパブリックIPは、起動・停止すると別のIPアドレスが割り当てられる。ElasticIPアドレスを利用すると、IPアドレスを固定できる。 - 特徴
- そのインスタンスを削除するまでは、ずっとそのIPアドレスを使用することができる。
- ElasticIPアドレスは、EC2に関連付けられていて、そのインスタンスが起動中であれば無料。逆に起動してなければ課金される。
【Route53】ドメインを登録する
#####構築するもの
ドメイン名でWebサーバーにアクセスできるようにする
ドメインについて
www.example.co.jp
第4レベルドメイン.第3レベルドメイン.第2レベルドメイン.トップドメイン
ドメインレベルに応じて各組織が管理している。
ドメイン名でアクセスできる理由
DNSについて
- DNSとはドメイン名をIPアドレスに変換するもの
- ネームサーバーとフルリゾバの2つから構成されている
- ①ネームサーバー
- ドメイン名とそれに紐づくIPアドレスが登録されているサーバー
- ドメインの階層ごとにネームサーバーが配置され、そのネームサーバーが配置された階層のドメインに関する情報を管理する。
- ②フルリゾバ(秘書の様なもの)
- 「どのドメインに紐づくサーバーか教えて」とおい合わせると、色々なネームサーバーに聞いてIPアドレスを調べて教えてくれる。
- ①ネームサーバー
Route53について
- Route53とは
- AWSのDNSサービス。ネームサーバーの役割を果たす。
- 重要概念
- ホストゾーン
- DNSのリソースレコードの集合。ゾーンファイルの様なもの
- ルーティングポリシー
- Route53がRecordSetに対してどの様にルーティングを行うかを決める
- シンプル、加重、レイテンシー、位置情報、フェイルオーバー等がある
- ヘルスチェック
- サーバーの稼働状況をチェック。
- ホストゾーン
Route53でDNSを設定する
mbair:~ okadaatsuyoshi$ ssh -i ~/Desktop/aws-and-infra-ssh-key.pem ec2-user@52.196.118.157
ec2へログイン
[ec2-user@ip-10-0-10-10 ~]$ dig aws-and-infraa.work NS +short
で現在のネームサーバーを確認。
現在はデフォルトでお名前.comのネームサーバーになっているので変更する。
###【RDS】DBサーバーを構築する
RDSについて
-
AWSがフルマネージメントでDBの管理やってくれるので運用が楽。
-
複数のアベイラビリティーゾーンにプライベートサブネットを作成することが推奨されている。
-
RDSとは
- フルマネージドなリレーショナルデータベース(いわゆるDB)のサービス。
- メリット
- - 構築の手間の軽減 - 運用の手間の軽減 - AWSエンジニアによるデータベース設計のベストプラクティスを適用 - ➡️コア機能の開発に注力できる
- 各種設定グループ
- DBパラメータグループ:DB設定値を制御
- DBオプショングループ:RDSへの機能追加を制御
- DBサブネットグループ:RDSを起動させるサブネットを制御
- 特徴
- 可用性の向上
- 複数のアベイラビリティゾーンを設定することで簡単にリスクを軽減
- パフォーマンスの工場が楽
- リードレプリカを簡単に構築
- 書き込みようのマスターと読み込み用のリードレプリカを別々で作成できるので読み込みの速度が向上向上
- リードレプリカを簡単に構築
- 運用不可の軽減
- 自動バックアップ(1日1回スナップショット)
- リストア(スナップショットを元にDBインスタンスを作成)
- 自動的なソフトウェアメンテナンス
- メンテナンスウィンドウで指定した曜日・時間帯にアップデートを自動実施
- 各種メトリクスを60秒間隔で取得・確認可能
- 可用性の向上
プライベーサブネットを作成
RDSを設置
RDSの作成準備
- セキュリティグループの作成(EC2)
- DBサブネットグループの作成
- DBパラメータグループの作成
- DBオプショングループの作成(機能を設定)