【AWS】Amazon EC2 ~ 入門編 ~

 ■ はじめに

 * AWSを始めるにあたって、Amazon Linuxを構築してみる

目次

【1】関連用語
【2】EC2
 1)料金体系
 2)インスタンスタイプ
【3】構築環境
【4】構築手順
【5】AMI
【6】補足
 1)Amazon Linuxについて
 2)OSごとのユーザー名について
 3)EC2 に対して ping を通すには

 【1】関連用語

セキュリティを⾼める機能・サービスについて、取り上げる
詳細は、以下の関連記事を参照のこと。

https://dk521123.hatenablog.com/entry/2019/12/08/105415

セキュリティグループ

* ファイアウォール

Amazon VPC

* プライベートネットワーク

AWS IAM

* AWSリソースへのアクセス権限の管理

Amazon Elastic Block Store (EBS)

* EC2 インスタンスで使用するための
 ブロックレベルのストレージボリューム

https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/AmazonEBS.html

 【2】EC2

 1)料金体系

 * インスタンス利用料
 => インスタンスの状態が 起動中(Running) だった時間
 => Running状態だった場合のインスタンスタイプ、AMI、起動リージョンによる
 * データ転送量(OUT)

注意点

* インスタンスが停止中でもEBSの料金はかかるので注意

2)インスタンスタイプ

例:c6gn.2xlarge

c 6 g n . 2xlarge
1 2 3 4   5

[1] インスタンスファミリー

* 汎用・メモリ特化といった用途特性を示す
* 先頭の「c」「m」「p」
* 何を最適化しているインスタンスタイプかを表す
 + c : コンピューティングに最適化したインスタンス
 + r : メモリに比重を置くインスタンス

[2] 世代

* インスタンスファミリーの後ろの数字
 => 大きいものが最新

[3] プロセッサ

* プロセッサ の種類。
 + i : intel Xeon
 + a : AMD EPYC
 + g : Amazon Gravision

[4] 追加機能

* 追加機能
 + n : 広域ネットワーク
 + d : インスタンスストア

[5] インスタンスサイズ

* 「large」「xlarge」「8xlarge」
 => 大きいものほど、スペックが高い

 【3】構築環境

 * OS : Windows7
 * SSHクライアント:Tera Term

 【4】構築手順

http://qiita.com/hiroshik1985/items/f078a6a017d092a541cf

を見ながらやるとよさそう
動画だと、以下をみておくといいかと。

ただし、Windowsユーザは、サーバへの接続は「Tera Termを使った接続」を参考にした方がいいかも。

動画
http://dotinstall.com/lessons/basic_aws/9502

 EC2作成

[1] EC2を選択し、OSの種類を選ぶ(今回は「Amazon Linux」)

※タダで試したい場合は「無料枠のみ表示」にチェックするといい

 Tera Termを使った接続
http://dev.classmethod.jp/cloud/aws/aws-beginner-ec2-ssh/
https://recipe.kc-cloud.jp/archives/5971

が分かりやすい。以下、概要。

[1] 「ホスト」にEC2インスタンスのアドレスを入力し、「OK」ボタン押下
[2] ユーザー名、パスフレーズを入力

※注意:EC2インスタンス(OS)によって、変わる(ここではまった)

Amazon Linuxの場合

 ... 他のOSについては、以下の「■補足:OSごとのユーザー名について」を参照のこと。

 => ユーザー名 : 「ec2-user」、パスフレーズ : 無

[3] 「RSA/DSA/ECDSA/ED25519鍵を使う」にチェックを入れ、[秘密鍵]ボタン押下して
    ダウンロードした .pem を選択
[4] 接続完了
 (とりあえず、Hello World的に) Apacheを設定してみる

http://dotinstall.com/lessons/basic_aws/9506

を見ながらやるといい 
[0] (その前に初めは)システムの更新をし、終わったら再起動する
~~~
sudo yum update
sudo reboot
~~~

[1] 再起動後、Apacheをインストールする
~~~
sudo yum -y install httpd
~~~

[2] Apacheサービス自動起動を設定しておく
~~~
sudo chkconfig httpd on
~~~

[3] 任意のindex.htmlを 「/var/www/html」配下に置く (★何気に、ここではまった★ 詳細は以下の※を参照)
~~~
sudo vim /var/www/html/index.html

[コンテンツ内容例]
<html><body>Hello World!!?</body></html>
~~~

※
これを行わないと、立ち上げてもコンテンツがないっといって
サーバから400系が返ってしまい、healthyにならず、unhealthyのままになる

[4] AWSのページの「パブリックDNS」欄の値(結構長ったらしい)をコピーし、
    それをブラウザのURL欄にペーストし、アクセスする
 => 「Hello World!!?」って表示されたらOK

 【5】AMI

 * AMI(Amazon マシンイメージ)

用途

同一環境を作成したい場合

作成方法
https://docs.aws.amazon.com/ja_jp/toolkit-for-visual-studio/latest/user-guide/tkv-create-ami-from-instance.html

* インスタンスから AMI を作成するには

[1] AMI の基本として使用するインスタンスを右クリックして、
 コンテキストメニューから [Create Image (イメージの作成)] を選択します。
[2] [Create Image (イメージの作成)] ダイアログボックスで、
 一意の名前と説明を入力して、[Create Image (イメージの作成)] を選択します。
 デフォルトでは、Amazon EC2 はインスタンスをシャットダウンし、
 アタッチされていたすべてのボリュームのスナップショットを作成し、
 AMI を作成して登録し、インスタンスを再起動します。
 インスタンスをシャットダウンしない場合、[No reboot] (再起動しない) を選択します。

動画
http://dotinstall.com/lessons/basic_aws/9507
一般サイト
http://tech.lexues.co.jp/archives/1704

 【6】補足

1)Amazon Linuxについて

 * CentOS 6 ベース
  => CentOS7の systemctl / firewalld などは使用できない
  (systemctlの代わりに「service」「chkconfig」)

 2)OSごとのユーザー名について

# OS ユーザー名
01 Amaz-on Linux ec2-user
02 CentOS centos
03 Debian admin

パスワード設定

# ec2-userのパスワード
sudo passwd ec2-user

# rootのパスワード
sudo passwd root

 3)EC2 に対して ping を通すには

[1] [セキュリティグループ]-[インバウンド]-[編集] を選択
[2] ルールの追加]を選択
[3] 「すべてのICMP」を選択し、「保存」ボタン押下

http://a1-style.net/amazon-web-service/ping-icmp-setting/

関連記事

Amazon VPC ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2019/12/08/105415
Amazon EC2 ~ 基本編 / EC2メタデータ取得 ~
https://dk521123.hatenablog.com/entry/2018/02/03/120200
Amazon EC2AWS CLIでEC2を操作する ~
https://dk521123.hatenablog.com/entry/2017/12/08/225928
Amazon EC2amazon-linux-extras ~
https://dk521123.hatenablog.com/entry/2024/01/15/140655
EC2 Image builder ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2024/01/23/235028