0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

AWSの初期設定/用語調査/インフラ環境構築まとめ

Last updated at Posted at 2022-02-11

#背景
AWSの勉強のためにアカウント作成や初期設定、調べた用語などをまとめておくことにする

#AWSの用語

  • リージョン:AWSの各サービスが提供されている地域のこと
  • アベイラビリティゾーン:AWSは世界各国にデータセンターを持っていて、それを複数束ねたのもの。どんなリージョンにもアベイラビリティゾーンは二つ以上存在している
  • VPC(Virtual Private Cloud):AWS上に仮想ネットワークを作成できるサービス
  • サブネット:VPCを細かく区切ったネットワーク
  • IPアドレス:ネットワーク上の機器を識別するためのインターネットの住所
  • CIDR(サイダー)表記

IPアドレスのネットワーク部が先頭24ビットである場合

192.228.126.0/24
  • サブネットマスク表記

IPアドレスの後ろに「/」を書き、ネットワークを部を表すビットと同じ部分を1、ホスト部を表すビットと同じ部分を0にする

IPアドレスのネットワーク部が先頭24ビットの場合

192.228.126.0
11111111 . 11111111 . 11111111 . 00000000
↓
192.228.126.0/255.255.255.0
  • EC2(Elastic Compute Cloud):AWSクラウド上の仮想サーバのこと。EC2から立てたサーバをインスタンスという
  • AMI(Amazon Machine Image):インスタンス起動に必要な情報が入ったOSのイメージ。サーバのテンプレートのようなもの
  • インスタンスタイプ:サーバのスペックを定義したもの。インスタンスタイプによってCPU、メモリ、ストレージ、ネットワーク帯域が異なったり、料金が異なる

<インスタンスタイプの構成>

m5.xlarge

m:インスタンスファミリー
5:インスタンス世代
xlarge:インスタンスサイズ

  • ストレージ:サーバにくっつけるデータの保存場所。EC2のストレージは2種類(EBS:Elastic Block Store、インスタンスストア)ある

  • ポート番号:プログラムのアドレス。サーバ(IPアドレスの例:10.20.20.100)の中でさらに、SSHサーバのポート番号は「22」、HTTPサーバのポート番号は「80」、SMTPのポート番号は「25」というようにポート番号が分けられる。ポート番号には、あらかじめ標準で決められている「ウェルノウンポート番号」と動的に決まるポート番号がある。ウェルノウンポート番号は、SSHが22番、SMTPが80番、HTTPSが443番などがあり、0〜1023のいずれかの整数値となる。動的に割り当てられる番号は49412〜65535のいずれかの整数値となる

  • ファイアウォール:ネットワークを不正アクセスから守るために、通してよい通信だけを通す、それ以外は通さないという機能。AWSではセキュリティグループがファイアウォールの役割を担っている

Elastic IPアドレス:インターネット経由でアクセス可能な固定グローバルIPアドレスを取得でき、インスタンスに付与できるサービス。そのインスタンスを削除するまでは、ずっとそのIPアドレスを使用することができる

#初期設定

##CloudWatchで料金アラートを設定する

料金アラートを設定するとAWSの利用料金が一定の金額を超えたときに通知してくれる

手順
1.請求ダッシュボードで請求アラートを受け取るように設定する
2.CloudWatchで料金アラートを設定する

1.請求ダッシュボードで請求アラートを受け取るように設定する

  • 「EメールでPDF版請求書を受け取る」にチェックする
  • 「無料利用枠の使用アラートを受信する」にチェックする

スクリーンショット 2022-02-10 23.49.17.png

このように設定することで無料で使用できる枠を超えてしまったとき通知を受信することができます。

2.CloudWatchで料金アラートを設定する

  • 「請求アラートを管理する」をクリックする

スクリーンショット 2022-02-11 8.26.31.png

  • 「アラームの作成」をクリックする

スクリーンショット 2022-02-11 8.36.06.png

  • 「10USD」より大きいとき通知アラートを受け取るように設定する

スクリーンショット 2022-02-11 8.48.13.png

  • 通知の送信先に自分のメールアドレスを入力する

スクリーンショット 2022-02-11 8.59.22.png

このあとアラートのタイトルなど入力するページでは、任意の名前などを入力する。

##IAMユーザで作業ユーザを作成する

この設定を行なうことでIAMユーザから請求情報へアクセスできるようになる。

ルートユーザ:そのアカウントの全てのAWSサービスとAWSリソースにアクセス権限を持つユーザ。アカウントの変更・解約、サポートプラン変更などで使用する。

IAMユーザ:作業ユーザ。認証情報とアクセス許可の権限はIAMユーザ毎に変更できる。また個別にユーザを作成することでいつ誰がどんな操作をしたのかログを残すことができる。

  • マネジメントコンソールから「アカウント」をクリックする

スクリーンショット 2022-02-11 9.33.10.png

  • 「IAMユーザ/ロールによる請求情報へのアクセス」の「編集」をクリックする

スクリーンショット 2022-02-11 9.51.38.png

  • 「IAMアクセスのアクティブ化」にチェックを入れて「更新」をクリックする

スクリーンショット 2022-02-11 9.55.01.png

  • ページ上部の検索ボックスに「IAM」と入力するとIAMユーザ用ダッシュボードが表示されるので起動する

スクリーンショット 2022-02-11 10.02.19.png

  • 「ユーザを追加」をクリックする

スクリーンショット 2022-02-11 10.07.41.png

  • ユーザ名を入力する
  • 「パスワード - AWS マネジメントコンソールへのアクセス」にチェックを入れる

※コマンドプロンプトなどのプログラムからアクセスする場合は「アクセスキー - プログラムによるアクセス」にチェックを入れる

スクリーンショット 2022-02-11 10.12.32.png

  • コンソールのパスワードを「カスタムパスワード」として入力する。
  • 「パスワードのリセットが必要」のチェックを外す

※ 「パスワードのリセットが必要」は、IAMユーザ本人以外がこのユーザ追加作業をする場合にチェックを入れる。チェックを入れると次回ログイン時に再度パスワードを設定することになる。

スクリーンショット 2022-02-11 10.20.06.png

  • 「既存のポリシーを直接アタッチ」を選択する

スクリーンショット 2022-02-11 10.31.18.png

  • 検索ボックスに「Administrator」と入力して「AdministratorAccess」にチェックを入れる

スクリーンショット 2022-02-11 10.34.02.png

  • このページはこのままでOK

スクリーンショット 2022-02-11 10.36.35.png

  • 内容を確認して問題がなければ「ユーザの作成」をクリックする

スクリーンショット 2022-02-11 10.39.30.png

  • IAMユーザを追加することができた

スクリーンショット 2022-02-11 10.47.51.png

##CloudTrailで操作ログを記録する

  • ページ上部の検索ボックスに「CLoudTrail」と入力してCloudTrailのページを起動する
  • 「証跡」をクリックする

スクリーンショット 2022-02-11 14.59.46.png

  • 「認証の作成」をクリックする

スクリーンショット 2022-02-11 15.03.41.png

  • 「証跡名」を入力する(ここでは仮にCloudTrail1と入力する)
  • 「新しいS3バケットを作成します」をクリックする

バケット:S3のフォルダの名前のようなもの。アカウントの変更・解約、サポートプラン変更などで使用する。グローバルでユニークなものを設定する。

スクリーンショット 2022-02-11 14.56.03.png

  • 「AWS KMS エイリアス」に任意の文字列を入力する
  • 他はデフォルトのままにする

スクリーンショット 2022-02-11 15.31.03.png

  • ここもデフォルトのままとする
  • 「次へ」をクリックする

スクリーンショット 2022-02-11 15.33.50.png

  • このページについてもデフォルトのままとする

スクリーンショット 2022-02-11 16.03.30.png

  • このページでは入力内容を確認する
  • 問題がなければ「証跡の作成」をクリックする

スクリーンショット 2022-02-11 16.10.17.png

#VPCを作成する

  • ページ上部の検索ボックスに「VPC」と入力するとVPCのダッシュボードが候補として表示されるので起動する

スクリーンショット 2022-02-11 19.20.43.png

  • リージョンを「東京」へ変更する

スクリーンショット 2022-02-11 19.27.07.png

  • 「VPC」をクリックする
  • AWSではデフォルトでVPCが作成されている

スクリーンショット 2022-02-11 22.03.36.png

  • 「VPCを作成」をクリックする

スクリーンショット 2022-02-11 22.15.16.png

  • 「名前タグ」を入力する
  • 「IPv4 CIDR」を入力する
  • 「テナンシー」を選択する(基本は「デフォルト」を選択)

テナンシー:物理ハードウェアを専有するオプション

スクリーンショット 2022-02-12 1.09.26.png

  • 「VPCを作成」をクリック

スクリーンショット 2022-02-12 10.17.48.png

  • VPCの作成が完了した

スクリーンショット 2022-02-12 15.15.21.png

#サブネットを作成する

  • IAMユーザでログインする
  • ページ上部の検索ボックスで「VPC」を検索してVPCのダッシュボードを起動する
  • 「サブネット」をクリックする
  • 「サブネットを作成」をクリックする

スクリーンショット 2022-02-12 16.33.40.png

  • 以下の項目を入力して「サブネットを作成」をクリックする

・VPC ID(先程作成したVPCのID)
・ サブネット名
・アベイラビリティゾーン
・ IPv4 CIDR ブロック

スクリーンショット 2022-02-12 17.06.50.png

#ルーティングを設定する

##インターネットゲートウェイを作成する

ルーティング:インターネットでは、ルーターがIPアドレスの行き先を管理しているので、ネットワークとネットワークがIPアドレスを通じて接続することができる、という仕組み

  • ページ上部の検索ボックスで「VPC」を検索してVPCのダッシュボードを起動する
  • 「インターネットゲートウェイ」をクリックする
  • 「インターネットゲートウェイの作成」をクリックする

スクリーンショット 2022-02-12 20.28.33.png

  • 「名前タグ」を入力して「インターネットゲートウェイの作成」をクリックする

スクリーンショット 2022-02-12 20.32.38.png

  • インターネットゲートウェイの作成が完了した

スクリーンショット 2022-02-12 20.51.14.png

##インターネットゲートウェイをVPCにアタッチする

  • アクション-「VPCにアタッチ」をクリックする

スクリーンショット 2022-02-12 23.37.13.png

  • VPCを選択して「インターネットゲートウェイのアタッチ」をクリックする

スクリーンショット 2022-02-12 23.42.26.png

##ルートテーブルを作成してPublicサブネットに紐付ける(まとめ中...)

  • 「ルートテーブル」をクリックする
  • ルートテーブルの行にチェックを入れる

スクリーンショット 2022-02-12 23.50.26.png

  • 「ルート」タブをクリックすると以下のようなことがわかる

・リクエストされたIPアドレスが「10.0.0.0/16」だった場合自身のネットワーク(local)へ接続する
・それ以外のIPアドレスの場合破棄する

  • ページ右上の「ルートテーブルを作成」をクリックする

スクリーンショット 2022-02-12 23.54.15.png

  • ルートテーブルの名前を入力する
  • VPCを選択する
  • 「ルートテーブルを作成」をクリックする

スクリーンショット 2022-02-12 23.59.03.png

現在ルートテーブルはVPCに関連付けされているので、Publicサブネットにも関連付ける

  • ルートテーブルの行にチェックを入れて「サブネットの関連付け」タブをクリックする
  • 「サブネットの関連付けを編集」をクリックする

スクリーンショット 2022-02-13 0.05.05.png

  • Publicサブネットにチェックを入れて「関連付けを保存」をクリックする

スクリーンショット 2022-02-13 0.08.37.png

  • ルートテーブルの行にチェックを入れる
  • 「ルート」タブをクリックする
  • 「ルートを編集」をクリックする

スクリーンショット 2022-02-13 0.11.35.png

  • 送信先「0.0.0.0/0」ターゲット「インターネットゲートウェイ」のルートを追加する
  • 「変更を保存」をクリックする

スクリーンショット 2022-02-13 13.57.03.png

#EC2インスタンスを配置する

  • ページ上部の検索ボックスに「EV2」と入力してEC2ダッシュボードを起動する
  • 「インスタンス」をクリックして「インスタンスを起動」をクリックする

スクリーンショット 2022-02-14 13.31.57.png

  • 「クリックスタート」の「Amazon Linux 2 AMI」の「選択」をクリックする

スクリーンショット 2022-02-14 13.47.21.png

  • インスタンスタイプを選択して「次のステップ:インスタンスの詳細の設定」をクリックする

スクリーンショット 2022-02-15 12.35.38.png

  • 「ステップ3:インスタンスの詳細の設定」について入力して「次のステップ:ストレージの追加」をクリックする

スクリーンショット 2022-02-15 16.05.18.png
スクリーンショット 2022-02-15 16.06.30.png
スクリーンショット 2022-02-15 16.06.52.png

  • ストレージを追加する必要があれば追加して「次のステップ:タグの追加」をクリックする

スクリーンショット 2022-02-15 16.48.07.png

  • タグを追加して「次のステップ:セキュリティグループの設定」をクリックする

スクリーンショット 2022-02-15 16.52.36.png

  • セキュリティグループの設定について入力して「確認と作成」をクリックする

スクリーンショット 2022-02-15 19.30.43.png

  • 内容を確認して「起動」をクリックする

スクリーンショット 2022-02-16 0.42.34.png

  • 「新しいキーペアの作成」を選択してキーペア名を入力する
  • 「キーペアのダウンロード」をクリックする

スクリーンショット 2022-02-16 1.05.17.png

  • ここまで完了したら「インスタンスの作成」をクリックする

  • インスタンスが作成できた

スクリーンショット 2022-02-19 10.20.23.png

#Apacheをインストールする(MacOSの解説)

Apacheをインストールするために、まずはSSHでサーバのログインする必要がある

SSH:サーバと自身のPCをセキュアに接続するサービスのこと
EC2にログインするときはSSHを使用する

また、誰でもサーバにログインできると困るので、ログインできる人を限定するために公開鍵認証というものがある

公開鍵認証:
①サーバへのログイン時に認証を行なう仕組み
②ユーザ名をパスワードを使用した認証と比べてセキュリティが高い
③公開鍵暗号(秘密鍵+公開鍵)を用いて認証を行なう
④公開鍵はサーバが保有しており、秘密鍵を持つユーザのみがログイン可能となる

##SSHでサーバへログインする

  • ターミナルを起動する

スクリーンショット 2022-02-19 18.26.12.png

  • ターミナルに下記コマンドを入力して、EC2インスタンス作成時にダウンロードした秘密鍵のファイル権限をオーナー以外は使えないよう変更する

※pemファイルのディレクトリが「Desktop/aws-infra-ssh-key-2.pem」の場合

chmod 600 Desktop/aws-infra-ssh-key-2.pem
  • EC2インスタンスにチェックを入れて「パブリックIPv4アドレス」をコピーする

スクリーンショット 2022-02-19 18.32.43.png

  • ターミナルに下記コマンドを入力して、SSHでEC2インスタンスに接続する

ここでユーザ名は「ec2-user」とする

ssh -i Desktop/aws-infra-ssh-key-2.pem ユーザ名@パブリックIPv4アドレス
  • 「Are you sure you want to continue connecting (yes/no/[fingerprint])?」と聞かれたら「yes」と入力してEnterキーを押下する

  • ターミナルにこのように表示されたら、接続できたということになる

スクリーンショット 2022-02-19 19.11.33.png

ここでログインに失敗する原因は
①秘密鍵の情報が誤っている
②秘密鍵の権限が変更されていない
③パブリックIPアドレスが間違っている
であることが多い

  • サーバからログアウトするときはターミナルに「exit」と入力してEnterキーを押下する

##ポート番号に対応するプログラムを確認する

SSHでサーバにログインする

ターミナルに下記コマンドを入力すると、ポート番号に対応するプログラムを確認することができる

sudo lsof -i -n -P

もし上記コマンドを実行してパスワードを聞かれたら、PCのログインパスワードを入力する

lsofコマンド:ポート番号に対応するプログラムを確認する
-iオプション:ネットワークソケットファイルを表示する(サーバの待機ポートとプロセスを一覧で表示する)
-nオプション:IPドレスをホスト名に変換しない
-Pオプション:ポート番号をサービス名に変換しないオプション

##Apacheを起動する

SSHでサーバにログインする

  • ターミナルに下記コマンドを入力して、EC2インスタンスのライブラリをアップデートする
sudo yum update -y

yum:Linuxのパッケージ管理ツール
-yオプション:Yesと聞かれる手間を省く

  • ターミナルに下記コマンドを入力して、Apacheをインストールする
sudo yum -y install httpd
  • ターミナルに下記コマンドを入力して、Apacheを起動する
sudo systemctl start httpd.service
  • ターミナルに下記コマンドを入力して、Apacheが起動したかを確認する
sudo systemctl status httpd.service
  • ターミナルに下記コマンドを入力して、プロセスを確認する
ps -axu

psコマンド:Linux上で起動しているプロセスを確認する
-axオプション:全てのプロセスを表示する
-uオプション:CPUやメモリ使用率を合わせて表示する

##Apacheが自動で起動するように設定する

  • ターミナルに下記コマンドを入力して、プロセスを確認する
sudo systemctl enable httpd.service
  • 自動起動が設定できているかを確認する
sudo systemctl is-enabled httpd.service

#Elastic IPアドレスを確保する

  • 「Elastic IP」をクリックして「Elastic IPアドレスを割り当てる」をクリックする

スクリーンショット 2022-02-21 14.08.53.png

  • 「割り当て」をクリックすると自動生成されたEladtic IPアドレスを取得できる

スクリーンショット 2022-02-21 14.11.29.png

  • 取得したIPアドレスを選択して「アクション」-「Elastic IPアドレスの関連付け」をクリックする

スクリーンショット 2022-02-21 14.45.26.png

  • 「インスタンス」「プライベートIPアドレス」を入力して「関連付ける」をクリックする

スクリーンショット 2022-02-21 14.57.04.png

これが完了すると、取得したElastic IPアドレスをアドレスバーへ入力して
Webページへアクセスすることができるようになる

先程おこなった「Elastic IPアドレス関連付け」「Elastic IPアドレス」は解除(解放)、また「インスタンスの停止」をしておかないと料金が発生してしまうので、勉強のためにこの記事を参考にした場合は必ず解除しておくこと

#まとめ

  • AWSは従量課金制なので使用した時間分料金を支払う。料金アラートを設定しておくことで想定外の支払いが請求されるのを防ぐ
  • AWSにはルートユーザとIAWユーザがあり、ルートユーザは全ての権限があるのに対して、IAMユーザは個別に権限を付与することができる
  • ユーザ毎に操作ログを管理することができる。不正な操作があったときログを確認ことで原因や解決策を導き出す
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?