カテゴリー
2023年 Cron Linux LPIC コマンド コンピューター 技術一般 自動化

Linux の Cron の基本的な使い方


にほんブログ村

こんなことしたいと思ったりしませんか?

  • 毎日、ある時間にプログラムを実行したい。
  • 一時間に一回、コマンドを実行したい。
  • 毎月一度、バックアップを取りたい。

Linuxには、定期的にコマンドを実行するために cron と呼ばれるデーモンプロセスがあります。これを使うと、決まった時間にコマンドを実行させたりすることができて便利です。

今回は、Cron(クーロン)の基本的な使い方をまとめてみます。

cron は、「crond(デーモン)」と「crontab」 で構成されます。1分ごとに crond が起動され、crontab ファイルに定義されたスケジュールを調べて、そこに実行すべきジョブがあれば実行します。

スケジューリングの編集は、以下の2つの方法で行えます。

  • crontabコマンド を利用する
  • /etc/crontab に書き込む

今回は、Crontab に定義を書き込む形で設定していきます。

Crond が動いているか確認

まず、使用しているシステムで、Cronデーモンが動作している必要があります。

「systemctl status <デーモンの名前>」コマンドを使って確認します。

kkint@ubuntu:/etc$ systemctl status cron.service
● cron.service - Regular background program processing daemon
Loaded: loaded (/lib/systemd/system/cron.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2023-10-06 12:01:47 JST; 3 days ago
Docs: man:cron(8)
Main PID: 985 (cron)
Tasks: 1 (limit: 4555)
Memory: 1.3M
CPU: 841ms
CGroup: /system.slice/cron.service
└─985 /usr/sbin/cron -f -P

Crond が動いていれば、上記のように「active(running)」の表示が出ます。

もし動いていない場合は、以下のコマンドで起動できます。

systemctl start cron.service

Crontab で設定

「/etc/crontab」ファイルに書き込む方法での設定手順です。まずは、Crontab ファイルを開いて見て見ましょう。

cat /etc/crontab

「cat」コマンドで、Crontab ファイルを指定して開いてみます。

kkint@ubuntu:/etc$ cat /etc/crontab

/etc/crontab: system-wide crontab

Unlike any other crontab you don't have to run the `crontab'

command to install the new version when you edit this file

and files in /etc/cron.d. These files also have username fields,

that none of the other crontabs do.

SHELL=/bin/sh

You can also override PATH, but by default, newer versions inherit it from the environment

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

Example of job definition:

.---------------- minute (0 - 59)

| .------------- hour (0 - 23)

| | .---------- day of month (1 - 31)

| | | .------- month (1 - 12) OR jan,feb,mar,apr …

| | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat

| | | | |

* * * * * user-name command to be executed

17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#
kkint@ubuntu:/etc$

下の方に、「*」が 5つ並んでいる行が見えますね。ここに定義を記入していきます。

この「*」印ですが、左から順に「分、時、日、月、曜日、実行ユーザー、 実行するコマンド」となっています。
時間は24時間で表記をします。

指定できる値は、下記のようになります。

指定対象指定範囲
0〜59
0〜23
1〜31
1〜12 または jan〜dec
曜日0〜7 または sun〜sat

「分 時 日 月 曜日 ユーザー コマンド」の順に記入していきます。

< 記述例 >

1時に実行

  • 1 * * * [ユーザー] [コマンド]

13時に実行

  • 13 * * * [ユーザー] [コマンド]

5分おきに実行

*/5 * * * * [ユーザー] [コマンド]

1時、2時、5時、6時、7時、8時に実行

  • 1,2,5-8 * * * [ユーザー] [コマンド]

もう少し例を見ていきましょう。

kkint というユーザー権限で実行し、kkint ユーザーのデスクトップに test.txt を作成する例です。

1分ごとに実行

* * * * * kkint touch /home/kkint/Desktop/test.txt

1:00 – 1:59 まで1分ごとに実行

* 1 * * * kkint touch /home/kkint/Desktop/test.txt

毎日14:00 に実行

0 14 * * * kkint touch /home/kkint/Desktop/test.txt

毎月10日から20日の 00:00 に実行

0 0 10-20 * * kkint touch /home/kkint/Desktop/test.txt

毎週月曜日から金曜日の 13:00 に実行

0 13 * * 1-5 kkint touch /home/kkint/Desktop/test.txt

Cron のログを出力する

デフォルトでは、Cron のログは出力されないようになっていますが、これを出力するようにすると、動作確認の際に便利です。

「/etc/rsyslog.d/50-default.conf」ファイルの設定を変更します。

kkint@ubuntu:/etc$ cat /etc/rsyslog.d/50-default.conf | grep cron

#cron.* /var/log/cron.log  <<<<< この部分

cron,daemon.none;\

まず、vim などのエディターを使って、上記ファイルを開きます。

$ vim /etc/rsyslog.d/50-default.conf

次に、対象の部分のコメントを外します。

#cron.* /var/log/cron.log
        |
        *
cron.* /var/log/cron.log  <<<<< コメントアウトする

最後に、rsyslogを再起動して、変更を適用します。

$ sudo service rsyslog restart

ログの確認例

2分おきに df コマンドを実行し、その結果をテキストファイルに書き込み、デスクトップに保存した時のログの出力は、以下の通りです。

Crontab ファイルには、以下のように記載しています。

*/2 * * * * kkint /usr/bin/df -h > /home/kkint/Desktop/df_results.txt

ログを見ると、指定したコマンドが実行されているのが分かりますね。

kkint@ubuntu:/etc$ cat /var/log/cron.log
Oct 9 13:45:01 ubuntu CRON[9087]: (root) CMD (command -v debian-sa1 > /dev/null && debian-sa1 1 1)
Oct 9 13:55:01 ubuntu CRON[9164]: (root) CMD (command -v debian-sa1 > /dev/null && debian-sa1 1 1)
Oct 9 14:01:01 ubuntu cron[985]: (system) RELOAD (/etc/crontab)

Oct 9 14:45:01 ubuntu CRON[10567]: (root) CMD (command -v debian-sa1 > /dev/null && debian-sa1 1 1)
Oct 9 14:46:01 ubuntu CRON[10575]: (kkint) CMD (/usr/bin/df -h >> /home/kkint/Desktop/df_results)
Oct 9 14:46:01 ubuntu CRON[10576]: (kkint) CMD (date >> /home/kkint/Desktop/df_results)

面白かったら、フォローしてください!

関連するブログ:

最近の人気ブログ TOP 10:

最近の記事:

カテゴリー
2021年 Apple おすすめ販売 ガジェット コンピューター 家電

Apple AirTag を買ってみた

2021年6月10日更新


にほんブログ村

1ヶ月くらい前に、Apple がAirTagというものを発売するというニュースをネットで見つけ、見てたら欲しくなって、購入してみました。発売日には届かなかったのですが、本日やっと手元に届きました。

Apple が言うには、「見つける天才」。良いですね。どれくらいの天才なのか、見てみたくなります。

AirTagは、あなたの持ち物をあっという間に見つけます。

鍵に付ける。バッグに入れる。それだけで「探す」アプリがあなたの持ち物を探し出します。これは、Apple製デバイスを追跡したり、友だちや家族の場所を知るための方法と同じです。

www.apple.com/jp/airtag

AirTag でできること

財布が見つからない時、カギやカバンが見つからない時など、AirTag を入れたり付けたりしておけば、音を鳴らして、その場所を教えてくれます。

何億人もの iPhone の「探す」機能でネットワークを作ります。AirTag は、自分の近くにある「探す」ネットワーク上の iPhone が自分を検知できるように、Bluetoothで信号を送ります。

信号を受け取った iPhone は、AirTag の位置情報を iCloud に送信し、探している人は、自分の iPhone の「探す」アプリを開いてマップ上で、その AirTag の場所を確認できると言うわけです。

「正確な場所を見つける」機能に対応するデバイス

この機能は、対応デバイスが限定されているみたいです。

危ない危ない。これ、全く見てませんでしたが、私の iPhone は 11 なので問題ないですね。

  • iPhone 11
  • iPhone 11 Pro、iPhone 11 Pro Max
  • iPhone 12、iPhone 12 mini
  • iPhone 12 Pro、iPhone 12 Pro Max

AirTag 自体は、iOS 14.5 または iPadOS 14.5 以降を搭載し、2 ファクタ認証を有効にした iPhone、iPad、iPod touchをサポートしているとのことです。

事前準備

  1. iPhone iOS のバージョンを、14.5以降にアップグレードします(2021年5月24日時点での最新は、14.5.1 になります)。
  2. Bluetooth を ON にします。
  3. 位置情報サービスを ON にします。「設定」>「プライバシー」>「位置情報サービス」で有効にできます。
  4. AirTag を箱から取り出し、本体に被せてあるビニールのカバーを取り除きます。その際に、AirTag 本体に挟み込んである部分があるので、それを引き抜きます。ピピっと音がするはずです。

接続の仕方は、こちらに正式なドキュメントがあります。

こんな箱に入ってきます。

箱を開けると、こんな感じです。

AirTagの大きさは、500円玉よりも少し大きいくらいです。

真ん中にあるのが、AirTag です。このビニールのカバーを剥がします。

AirTag を設定

私の iPhone はシステム言語を北米英語で使っていますので、英語で表示されてますが、システム言語を日本語で使っていれば、日本語表示されますのでご安心ください。

AirTag を iPhoneに近付けると、「接続」が見えますので、それを押します。

リストが表示されます。ここから何にAirTagを付けるのかを選択します。

リストから持ち物の名前を選択するか、「カスタム名」を選択して AirTag に名前を付けます。

私は今回、財布にしました。クレジットカード用の財布に入れたいと思います。

「続ける」を押します。

Apple ID の情報が表示されます。

AirTag を Apple ID に登録するには、もう一度「続ける」をタップします。 

財布向けの設定が始まります。

地図が表示され、そこにAirTagの位置が表示されます。

「完了」をタップします。 

AirTag を使ってみる

では、実際に AirTag を使ってみたいと思います。

対象となる AirTag が表示されていることを確認し、「Items」をタップします。

機能としては、2つあります。

「音を鳴らす」と「探す」です。

まず、「探す」を押してみます。

AirTag の場所(位置)と、自分の iPhone と AirTag の距離を表示してくれます。

まず、位置を表示さえてみました。私の家の AirTag が置いてある部屋が正確に表示されてます。なかなかやりますね。

たまに位置がずれて、隣の部屋を表示したりしますけど。

次に、iPhone と AirTag の距離を表示してみたいと思います。

表示されましたね。目の前に AirTag があるので、当然、位置はすぐそばですけどね。

今度は音を鳴らしてみます。サウンドをタップします。

やや甲高い二種類の音が鳴りました。それほど大きな音ではないですが、室内では十分な音量です。

実際の音について、良い例がYouTubeにありました。

試しに、クレジットカードの財布の中に AirTag を入れて、引き出しの中にしまってみました。

再度、音を鳴らしてみたところ、ちょっと小さめではありますが、音は聞こえました。

ただ、屋外でうるさいと場所だと、何か聞こえるかなと思えるか、ひょっとしたら聞こえないくらいかも知れません。

室内であれば、十分の音量ではないでしょうか。部屋の中での探しものには向いていると思います。

次に、AirTag から離れて場所を探してみましょう。

iPhone の探すアプリで表示されているAirTagの名前をクリックすると、探すことができます。

探し始めました。ですが、信号が弱いようです。

これを試した時点では、私一人の iPhone しか周りにはありませんので、当然といえば当然ですね。

iPhone の向きを変えたり、少し位置を変えたりしたら、検知しました。AirTag までの距離を表示すると共に、AirTag が自分から見てどの方向にあるのかも表示してくれます。これは便利です。

さらに、AirTag の音を鳴らしてみれば、探しものが見つかるはずです。

まとめ

AirTag はBluetoothで信号を送っているため、信号の届く範囲は、見通し10メートルになります。この範囲に、誰かの iPhone がないと、正確な場所の特定ができません。

しかしながら、世界には数億台もの iPhone があります。特に日本は iPhoneユーザーの割合が多い(ちなみに、私の家族は6人全員 iPhone ユーザー!)です。この点は、よっぽど大丈夫でしょう。

AirTag は、面白く、使えるガジェットだと思います。

私の娘が、たまに自転車のカギをどこに置いたか忘れてしまい困ってますので、プレゼントしてみたいと思います。

2021年6月10日

4つセットの AirTag が本日届きました。早速、娘用に設定したいと思います。

AirTag アクセサリー

ケースは、Belkin 製の俺のブラックを買いました。作りはしっかりしてます。ラバー製のものだと、AirTag が取れてしまうというレビューもありましたが、これはプラスティック製です。表面と裏面をカチッとはめ込み、上部のストラップでさらに固定できます。

AirTag の疑問

疑問1

探しものに使えるのは分かった。そうであれば、子供に付けて、居場所を知るためのセキュリティーとして使えるんじゃないの?

アップルの公式ウェブでは、子供の追跡用ではないと記載があります。ですが、実際は、使えないこともないです。

デメリットを把握しておく必要があります。

AirTagは、ピアリングした iPhone から 10メートル以上離れ、最大3日経過すると、音を鳴らし続けます。

2021年6月10日 Appleはこの仕様を変更したとのことで、「8時間から24時間のランダムな時間経過すると」に変わるそうです。

また、Bluetooth を使って信号を送っていますので、AirTag の周り 10メートル以内に誰かの iPhone がないと、その場所を検出できません。表示できるのは、最後に 10メートル以内に iPhone に信号を送れた場所までになります。

以下のリンクで、実際に検証をしたという記事があります。こちらも参考にして、デメリットを把握した上で、自己責任で使ってみてください。

AirTagで子供を見守る方法【子ども用GPSとの比較】

疑問2

子供の追跡に使えないこともないとなると、他人の AirTag を知らないうちにカバンの中に入れられて、ストーキング目的で使われることもあるんじゃないの?

ここは、アップルも考えてます。自分がピアリングして管理していない AirTag が自分の持ち物に紛れている場合、約30経過すると、自分の iPhoneに、AirTag が検出されたと表示されます。

デメリットもあります。

検出が表示できるのは現時点ではアップル製品 (iPhone, iPad, iPod Touch など) のみです。Android では検知できません。

2021年6月10日 2021年年内に、Android 向けにも「探す」アプリを提供開始するそうです。これにより、Android でも検知できるようになります。

また、30分程度経過しないと検出のメッセージが出ませんので、その間は、誰かに自分の居場所を見らるでしょう。

以下のリンクで、これについて詳しく調べている人がいますので、これも参考にしてください。

他人から追跡されていると考えられるとき

疑問3

AirTag って、その他には安全性の問題はないの?

電池交換が簡単であることが問題視されています。小さい子供に持たせると、電池を簡単に取り出せてしまう可能性があるという点です。以前、ボタン電池を誤って飲み込んでしまうという事態が発生しているからです。

「安全上の懸念」でオーストラリア小売店から一時撤去

疑問4

落とし物を見つけられるのは分かった。でも、その落とし物を誰かが見つけた時に、それに付いている AirTag をその人が持って行ってしまい、リセットして自分用に使えちゃうんじゃないの?

これもアップルは考えています。

一旦 iPhone とペアリングされた AirTag は、そのユーザーの Apple ID と紐づけられ、アクティベーションロックされます。 このため、それを他人が盗んでリセットしたとしても、使用することはできません。

このため、AirTag を他人に譲るには、元のユーザーがピアリングの解除操作を行ってから譲る必要があります。

関連する記事:

最近の記事:

カテゴリー
2020年 AWS AWS Solutions Architect - Associate クラウド コンピューター 技術一般 認定資格

AWSを学ぶ(15)Glacier とは何か?どの様に使うのか?

AWS Glacier

Amazon Glacier (以下、Glacier)は、99.999999999の耐久性を持ちながら、容量あたりの費用を抑えたアーカイブストレージサービスです。価格は安いのですが、データの取り出しの際には時間がかかってしまうという特徴があります。

ちなみに、Glacier というのは、グレイシアと読み、日本語で「氷河」という意味です。

オンプレミスの環境ですと、磁気テープを使って長期のデータ保存を行いますが、磁気テープでのバックアップには、「長期保存」、「取り出しに時間がかかる」、「アクセス頻度は低い」といった特徴があります。Glacierは、このイメージで使用されます。

S3の様に、保存するデータに対して名前を付ける事はできず、自動採番された「アーカイブID」で管理されます。

Glacierへのデータの保存は、APIによる操作、またはS3のライフサイクル管理により行われます。

余談ですが、私は以前、クラウドバックアップ関連の製品を取り扱っていたのですが、その製品がS3 やGlacier にデータを保存することができました。Glacier を保存先とする時に、設定にちょっと困ったのですが、ここがポイントでした。Glacier はS3 のバケットを経由しないと、データの保存ができないです(API を使えば別ですが)。

Glacier の価格

Glacier は非常に低コストと言われますが、具体的に価格を見てみましょう。S3と比較してみます。AWSの公式サイトに価格が掲載されています。

S3 標準GlacierS3 Glacier Deep Archive
条件最初の50TB/月      1分から12時間の取り出し     年に1、2回のアクセスで、12時間以内でのデータ取り出し
GBあたりのコスト(USD)0.0250.0050.002
S3 と Glacier のコスト比較

ちなみに私の自宅のNASには、約2TBのデータが保存されています。これをAWSのクラウドストレージ にバックアップして保存すると想定してみます。

S3 と Glacier のコストシミュレーション

1ドル120円換算で計算していますが、S3 Glacier Seep Archive だと月にして4ドル(日本円で480円)です。確かにすごく安いですね。これなら個人でも可能な金額です。

Glacier の構成要素

Glacierは、以下の4つの要素から構成されます。基本的にはS3と同じ(ただし呼び方は異なる)です。

ボールト(S3: バケット)

アーカイブを保存するための領域です。ボールトで使われる名前は、リージョン、及びアカウント内で一意であれば良いため、たのアカウントで使用されている名前も利用できます

アーカイブ(S3: オブジェクト)

Glaceirに保存されるデータのことです。各アーカイブには一意のアーカイブIDとオプションの説明が割り当てられます。アーカイブIDには、138バイトのランダムな文字列が自動的に割り当てられ、ユーザーが指定する事はできません。

インベントリ

各ボールトに保存されているアーカイブの情報(サイズ、作成日、アップロード時に指定された説明など)を収集します。1日に1回の頻度で更新されるため、最新の情報が反映されるまでに時間がかかります。マネージメントコンソールから確認する事で、リアルタイムで状況が見られます。また、ListVaults API を使用することもできます。

ジョブ

アーカイブやイベントリに対して検索をしたり、データをダウンロードするといった要求に対して処理を実施し、それらの処理状況を管理します。

Glacier を使ってみよう

ボールトの作成

AWS 管理コンソールの検索から、「Glacier」を入力し、Glacierの管理コンソールにアクセスします。

「ボールトの作成」をクリックします。

ボールトを作成するリージョンを選択し、ボールトの名前を付けます。

イベント通知の画面が表示されます。

今回は「通知を有効にしない」を選択します。

確認画面が表示されます。

設定内容を確認し、「送信」をクリックします。

ボールトが作成されました。

ボールト名をクリックしてみると、ボールトの中が見られます。まだデータ(アーカイブ)は何も保存していませんので、アーカイブ数は 0 のままです。

アーカイブデータの保存

Glacier のボールトには、上述の通り、直接アクセスができません。API または、S3 のライフサイクルを使用します。

S3 の使い方については、AWSを学んでみる14で調べてみましたので、そちらをご参照下さい。

S3 上の指定したバケツにデータを保存します。

ストレージクラスで、「Glacier」を選択します。

設定内容の確認をし、「アップロード」をクリックして、データを転送します。

転送したデータの名前の「ストレージクラス」を見てみると、Glacier になっています。これでデータがアーカイブとして、Glacier 上に保存されました。

データの取り出しオプション

Glacierにアーカイブしたデータを閲覧するためには、「データの取り出しリクエスト」を行う必要があります。取り出しリクエストを行ってから実際に取り出しができる様になるまでの待ち時間に応じて、高速、標準、バルクの3種類のリクエストオプションがあります。

高速

1−5分程度後でのデータ取得

標準

3−5時間程度後でのデータ取得

バルク

5−12時間後でのデータ取得。次の日に見られれば十分というケースに使用

データの取り出し設定オプション

データ取り出し時の設定オプションは3つあります。Glacier 上のボールトを指定し、「設定」をクリックして設定ができます。

  • 無料利用枠のみ: 無料枠の範囲でデータの取り出しができます。それを超えるデータ量になると、取得リクエストは拒否されます。
  • 最大取得率: 1時間あたりの最大取得率で価格が変わります。
  • 取得制限なし: 制限をかけません。

Glacier Select

Glacier Select は、アーカイブデータに対してSQL を実施し、条件にあったデータを抽出する機能です。つまり、Glacier に保存されているデータを直接検索することができ、アーカイブ全体を取得する必要がありません。

特定のデータだけをアーカイブから取り出せる便利な機能なのですが、使用には、対象のアーカイブデータは非圧縮のSCV形式出なければならばならないなどの条件があります。

Glacier Select は、まもなく Amazon Athena と Amazon Redshift Spectrum と統合される予定とのことです。

データの暗号化

Glacier にデータ保存する時は、SSLを使ったデータ転送が行われます。またGlacier に保存されるデータは、標準で暗号化されます。

もし独自の暗号化方式を使用したい場合は、Glacierに保存する前にその暗号化方式で暗号化を行い、そのデータをGlacierに転送します。

データのセキュリティーに関して、AWSの公式サイトでは、以下の様に記載されています。

AWS では、お客様のプライバシーに絶えず注意を払っています。弊社のお客様はデータのセキュリティを重視しています。そのため、弊社にはシステムを 24 時間体制でモニタリングしている世界トップクラスのセキュリティ専門家チームがおり、お客様のコンテンツを保護しています。AWS により、暗号化、移動、保管管理機能を含め、常にデータを保有しているという認識を持って、最も安全なグローバルインフラストラクチャを構築できます。データセンターとリージョンを相互接続する AWS グローバルネットワークを流れるすべてのデータは、安全性が保証された施設を離れる前に物理レイヤーで自動的に暗号化されます。すべての VPC クロスリージョンピアリングトラフィックや、カスタマーまたはサービス間の TLS 接続などといった追加の暗号化レイヤーもあります。AWS Key Management System (KMS) が管理するキーを使用する、あるいは FIPS 140-2 レベル 3 検証済み HSM を使って CloudHSM で独自の暗号化キーを管理することにより、転送中および保存中のデータを簡単に暗号化して、許可されたユーザーのみがアクセスできるようにするツールを提供しています。AWS では、地域および地方のデータプライバシー法や規制を順守していることを示すために必要な管理と可視性も提供しています。グローバルインフラストラクチャの設計により、データが物理的に配置されている地域を完全に制御し、データ常駐要件を満たします。

AWS 公式ウェブサイト

この教材を使って勉強してます。

AWS認定資格試験テキスト AWS認定ソリューションアーキテクト-アソシエイト

AWS認定資格試験テキスト AWS認定 ソリューションアーキテクト-アソシエイト【電子書籍】[ 佐々木 拓郎 ]価格:2,618円
(2020/8/30 16:09時点)
感想(0件)
カテゴリー
2020年 AWS AWS Solutions Architect - Associate クラウド コンピューター 技術一般 認定資格

AWSを学ぶ(13)VPC、EC2、ELB、Route 53 を使ってみる

VPC、EC2、ELB、Route 53 と学んできましたので、これらを組み合わせて使って、動作確認をしてみます。

ドメイン名の取得

今回はドメイン名の取得に、「お名前.com」を使います。期間限定で無料のドメインが取得できたり、1円のドメインが取得できたりします。

以下のリンクから、ドメイン名の取得ができます。

ドメイン名取得の手順

お名前.comの管理画面にログインします。

「ドメインを登録する」をクリックします。

使いたいドメイン名を入力し、「検索」をクリックします。入力したドメイン名が実際に使用可能かのチェックを行います。

私の使おうとしているドメインですと、「.work」なら1円で使えますね。期間限定で0円というのもやっています。その時期を狙うのも手です。

今回は1円で進めます。「.work」をクリックして選択します。

「お申し込みへ進む」をクリックします。

内容を確認し、「次へ」をクリックします。

「申し込む」をクリックします。事前にクレジットカード等の登録が必要です。

処理が開始されます。

ドメインの取得は完了です。

ネームサーバーの登録

AWSの管理コンソールに移動し、検索テキストボックスに「Route 53」と入力します。Route 53 が表示されるので、それをクリックします。

Route 53 の管理コンソールが表示されます。

「DNS 管理」をクリックします。

ホストゾーンを作成していきます。

ドメイン名に、先ほど取得したドメイン名を入力します。

タイプは「パブリックホストゾーン」を選択します。

「ホストゾーンの作成」をクリックして、ホストゾーンを作成します。

ホストゾーンが作成されました。

NS(Name Server)のところに表示されているのが、AWSで使用できるネームサーバーです。これをメモします。

お名前.com管理画面のトップに戻り、「ネームサーバーを登録する」をクリックします。

先ほど取得したドメイン名が表示されますので、その名前のチェックボックスにチェックを入れます。

「ネームサーバーの選択」のところで、「その他」タブをクリックします。

「その他のネームサーバーを使う」のネームサーバーのテキストボックスに、先ほどのAWSのネームサーバーを入力していきます。

4つのネームサーバーの入力が完了し、「その他のネームサーバーを使う」が選択されていることを確認し、「確認」をクリックします。

再度、登録内容を確認し、「OK」をクリックします。

画面上部に「完了しました」が表示されれば、ネームサーバーの登録は完了です。これで、AWS側のネームサーバーを使用することになりなります。

レコードの作成

Route 53 の管理コンソールに戻ります。

「レコードの作成」をクリックします。

ルーティングポリシーの画面が表示されます。

今回は「シンプルルーティング」を使用します。「次へ」を押して進みます。

「シンプルなレコードを作成」をクリックします。

レコード名は空白のままにします。

今回はELBを使いますので、「値/トラフィックのルーティング先」で、ELBのインスタンス名を選択します。

「レコードタイプ」はAを選択します。

「シンプルなレコードを作成」をクリックします。

内容を確認し、「レコードを作成」をクリックします。

レコード一覧に、ELBにトラフィックを向けたAレコードが作成されました。これで、kk-test.work 向けに流れてくるトラフィックは、ELBに向かいます。

実際に確認してみましょう。

kk-test.work 向けにPingを打ってみます。返ってくるIPアドレスを確認してみて下さい。ELBのものになっています。

NSLOOKUPでも確認してみましょう。ドメイン名とIPアドレスが表示されますね。

DIGでも確認してみましょう。ドメイン名とIPアドレスが表示されますね。

ウェブサーバーの設定変更

ウェブサーバーにSSHでリモートログインし、HTMLディレクトリーに移動します。

cd /var/www/html

このディレクトリーに、「index.html」というファイルを作成します。

sudo vim index.html

ブラウジングした時に表示させる内容を記入します。

<html>
<body>
Hello World. This is Web-01.<br>
<?php echo 'hoge'; ?>
</body>
</html>

早速、ブラウザーで確認してみましょう。”http://kk-test.wok” にアクセスしてみます。

先ほど、index.html に記入した内容が見えますね。

Route 53 の管理コンソールに戻ります。

「レコードを作成」をクリックします。

シンプルルーティングを選択し、「次へ」をクリックします。

「シンプルなレコードを定義」をクリックします。

レコード名は「www」にします。

「値/トラフィックのルーティング先」は「レコードタイプに応じたIPアドレスまたは別の値」を選択し、テキストボックスにELBのDNS名を入力します。

「レコードタイプ」は「CNAME」を選択します。

「シンプルなレコードを定義」をクリックし、レコードを作成します。

CNAME レコードが作成されました。

レコード一覧にも追加されています。

またブラウザーで確認してみましょう。今度は、「http://www.kk-test.work/index.html」にアクセスします。

index.html の内容が表示されました。

この教材を使って勉強してます。

AWS認定資格試験テキスト AWS認定ソリューションアーキテクト-アソシエイト

カテゴリー
2020年 AWS AWS Solutions Architect - Associate クラウド コンピューター 技術一般 認定資格

AWSを学ぶ(7)Route 53 について

Amazon Route 53 とは

Amazon Route 53 (以下 Route 53) は、AWS が提供する DNS サービスのことです。Web コンソールや API から簡単にドメイン情報やゾーン情報を設定したり管理したり可能となります。

Route 53 は、以下の機能を持つ DNS です。

  • ドメイン管理機能
  • 権威 DNS 機能

権威 DNS なので、自分が保持しているドメイン名以外の名前解決は行いません。また、こういった情報を保持していない DNS を区別して、キャッシュ DNS と呼びます。

また、Route 53 は単にドメイン情報や DNS 情報を管理するだけでなく、ネットワークトラフィックのルーティングや接続先のシステムの状況に応じた接続先の変更も行えます。

Route 53 では、こういったオプションを使って、可用性やレスポンスを高めることができます。

Route 53 の特徴

信頼性

  • 高い SLA(100%と言われている)

この高い信頼性の部分ですが、4つのネームサーバーで構成されているため、4台のサーバが同時に障害になることはないということから、100% としているようです。

コスト

  • 使った分のみのコストで非常に安価

柔軟性

  • 7つのトラフィックルーティングポリシー

ドメインの管理

Route 53 を使って、新規のドメインを取得したり、更新したりの手続きができるため、ドメインの取得からゾーン情報の設定まで、一貫した管理が可能になります。

ドメインの年間利用料は、通常の AWS 利用料の請求に含めることができるため、自動更新機能を使って更新漏れも避けられます。

ホストゾーン

レコード情報の管理単位です。通常はドメイン名となります。

DNS では IP アドレスとドメイン名やホスト名を変換する「アドレス帳」を持っていますが、AWS ではこれをホストゾーンと呼んでいます。

例えば「kkinternal.com」のレコード情報を DNS で管理する場合、「kkinternal.com」がホストゾーンということになる。

レコード情報

「www.kkinternal.com」は「192.168.1.100」という IP アドレスを持つといったような、ドメイン名又はサブドメイン名と IP アドレスを変換するための情報のことです。

一般的な DNS のレコード:

DNS の基本レコードについては、以下のようなものがあります。

  • A レコード:ホスト名に対する IPv4 アドレスを定義(Address)
  • AAAA レコード:ホスト名に対する IPv6 アドレスを定義
  • CAA レコード:ドメインまたはサブドメインの証明書の発行を許可する認証機関 (CA) を定義(Certification Authority Authorization)
  • CNAME レコード:ホスト名やドメイン名の別名を定義(Canonical Name)
  • MX レコード:ドメイン宛てのメールサーバーのホスト名を定義(Mail Exchange)
  • NAPTR レコード: 動的委任発見システム (DDDS: Dynamic Delegation Discovery System) アプリケーションで、1つの値を別の値に変換または置き換えるために使用(The Naming Authority Pointer)
  • NS レコード:ゾーンを管理するネームサーバー名を定義(Name Server) 
  • PTR レコード:アドレスに対するホスト名(逆引き)を定義(Pointer Resource)
  • SOA レコード:DNS サーバの動作を決める基本情報を定義(Start Of Authority)
  • SPF レコード:送信ドメイン認証を定義(Sender Policy Framework)
  • SRV レコード:負荷分散サービスの提供や冗長性の確保、サービスポート番号(Service Location)
  • TXT レコード:ホスト名に関連づけるテキスト情報(文字列)を定義 (Text)

Route 53 が使える DNS レコード:

Route 53 で使用できるレコードは、上記の一般的なレコードの他に、Aliasレコードというものがあります。

  • Alias レコード:CloudFront(AWS が提供する CDN サービス)や ELB,、S3(AWS が提供するオブジェクトストレージの1つ)などといった AWS のリソースを FQDN 指定できる。
CNAME レコードでも同じようなことが可能であるが、Zone Apex にも登録できるという点が CNAME と異なる。

これ、正直なところ、私にはあまりピンときません。DNS に関する深い知識がありませんので。とりあえず、「CNAME レコードでは制限(Zone Apex には登録ができない)があるが、Alias レコードの方にを使うとその制限がない」くらいで理解しておきます(何事も学ぶことを進めていけば、後から分かるようになります!)。

DNS を深く理解している方は、こちらのサイトに違いについていろいろと記述がありますので、読んでみると理解が深まるかもしれません。

Zone Apex とは

ドメインそのものを指します。つまり、「kkinternational.com」が Zone Apex になります(「www.kkinternal.com」などがサブドメイン)。

「kkinternal.com」を S3 のウェブホスティングサービスにアクセスする独自ドメインとして利用したい場合、Route 53 以外の DNS では CNAME の仕様上、登録ができない。

トラフィックルーティングポリシー

DNS の名前解決の問い合わせに対して、どの様に応答するかを決めるルーティングポリシーが 7つあります。

このポリシーについては、トラフィックルーティングポリシーのAWS のサイトをしっかり読むことをお勧めします。

1. シンプルルーティング

  • 標準 DNS のレコードを使用
  • 標準的な 1対1 のルーティング(1つのリソースに対してトラフィックをルーティンング)

2. フェールオーバールーティング

  • アクティブ/スダンバイ方式
  • アクティブ側のシステムへのヘルスチェックが失敗した場合、スダンバイ側システムへルーティング
  • Sorry サーバーを登録しておけば、本番機の障害時に Sorry コンテンツを表示させることができる

3. 位置情報ルーティング

  • ユーザーの位置情報(DNS リクエストの位置情報)に基づき、トラフィックをルーティング
  • 日本からのアクセスは日本語のコンテンツの Web サーバーに接続させることができる

4. 地理的近接性ルーティング

  • リソースの場所に基づき、トラフィックをルーティング
  • トラフィックの発信元の地理的リージョンのサイズをバイアスという値で定義
  • トラフィックをある場所のリソースから別の場所のリソースに移動する際に使用

5. レイテンシールーティング

  • 複数箇所にサーバーが分散されて設置されている場合、遅延が最も小さいサーバーにリクエストをルーティング
  • 特定サーバーだけ高負荷になった場合にリクエストを分散

6. 複数値回答ルーティング

  • 1つのレコードに異なる IP アドレスを複数登録し、ランダムに接続させる
  • 複数のリソースへルーティングするため、ヘルスチェックで NGとなったサーバーにはアクセスをさせない
  • 正常に稼働しているサーバーに対してのみの負荷分散が可能

7. 加重ルーティング

  • 指定した比率で複数のリソースにトラフィックをルーティング(重みを使ってトラフィック負荷を分散)
  • 拠点をまたがってリソースの異なるサーバーが設置されている場合、リクエスト比率を調整することが可能
  • テストのために新しいサービスをリリースしたサーバーに、一定割合のユーザーを誘導するといった使い方もできる

その他の機能

トラフィックフロー

トラフィックルーティングポリシーを組み合わせると、どうしても複雑になってしまいます。

  • ルーティングポリシーを組み合わせることで、さまざまなルーティング環境を構築できる。
  • しかし、各レコード間の設定が複雑になる。

これを管理しやすくするためのツールがトラフィックフローになります。ビジュアル的に分かりやすく組み合わせるためのツールで、複雑なルーティングをビジュアルエディターで構成することが可能になります。

  • 複雑なルーティングをビジュアルエディターで構成することが可能
  • ルールのバージョン管理やロールバックも可能
  • 少々価格が高い(ポリシーあたり 50 USD/月)

DNS フェールオーバー

Route 53 が持つフォールトトレランスアーキテクチャーになります。システムに異常が発生した場合でも、被害を最小限に抑える仕組みを提供します。

稼働中のシステムに障害が発生しウェブサイトの閲覧ができなくなった場合、一時的に接続先を Sorry サーバーに切り替えるといった感じで動作させられます。

この教材を使って勉強してます。

AWS認定資格試験テキスト AWS認定ソリューションアーキテクト-アソシエイト

AWS認定資格試験テキスト AWS認定 ソリューションアーキテクト-アソシエイト【電子書籍】[ 佐々木 拓郎 ]

価格:2,618円
(2020/8/12 12:20時点)
感想(0件)

カテゴリー
2020年 AWS AWS Solutions Architect - Associate クラウド コンピューター 技術一般 認定資格

AWSを学ぶ(6)EC2 を使ってみよう

EC2 にインスタンスを起動

私は AWS を英語表示で使用していますので、日本語表示の時と表示が異なるかもしれませんが読み替えてください。

AWS のマネジメントコンソールにログインします。

検索のテキストボックスに、EC2 と入力します。EC2 の名前が表示されるので、それをクリックします。

EC2 の管理コンソールが表示れます。(画面が新しくなりましたね)

画面上部にあるリージョンの名前をクリックすると、使用できるリージョンの一覧が表示されます。

今回は東京リージョンを使用します。

EC2 の東京リージョンの管理コンソールが表示されます。

左側にあるメニューの中の「Instances」の中の「Instances」をクリックします。

インスタンスの管理コンソールが表示されます。

「Launch Instance」をクリックします。

利用可能なインスタンスの一覧が表示されます。

今回は、Windows サーバーを起動させてみましょう。上部の検索テキストボックスに「Windows」と入力して、エンターキーを押します。

利用可能な WIndows サーバーの一覧が表示されます。

今回は、一番上の Microsoft Windows Server 2019 Base を使います。

その名前の右側にある「Select」ボタンを押します。

インスタンスタイプです。今回は起動確認のテストですので、無償で使える小さいタイプを選択します。

画面右下の「Next」ボタンを押して進みます。

よく使う項目は、以下の3つでしょう。入力したり、プルダウンメニューから選択します。

  • インスタンスの数
  • ネットワーク
  • サブネット

今回は、以下のように設定します。

  • インスタンスの数 = 1
  • ネットワーク = VPC-TKY(私が東京リージョンに作成したVPC)
  • サブネット = ap-northeast-1a

上記以外にも、ドメインに参加させるかとか、ストップボタンを押した時にどうさせるかとかなど、いろいろ設定ができます。今回は起動確認テストですので、全てそのままにします。

画面右下の「Next」を押して進みます。

ストレージの設定画面が表示されます。

これから起動させる Windows サーバー 2019 が使用するストレージの設定です。Windows だとCドライブになります。

Cドライブ以外にもドライブが欲しい場合は、「Add New Volume」を押して追加が可能です。

今回は起動確認テストですので、30GB のまま進めます。

画面右下の「Next」ボタンを押して進みます。

ちなみに、「Volume Type」のところで、SSD なのか、HDD なのかといったストレージのタイプも選択が可能です。

タグの画面が表示されます。

タグは付箋のようなもので、後からみた時にどのインスタンスなのか分かりやすいようにするためのものです。

タグはオプションですので、なしでも問題ありませんが、インスタンス数が増えてくると管理が困難になってきますので、何らかの値を入れておくことがお勧めです。

「Add Tag」をクリックします。

タグは以下のように入力してみました。

  • Key = Win2K19-20200811
  • Value=test

「Next」を押して進みます。

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

Windows インスタンスの場合、初期状態で RDP を許可するルールが入っています。

「Add Rule」ボタンを押して、ルールを追加できます。

ルールには、以下の項目があります。

  • タイプ: TCP、UDP、ICMP、HTTP、HTTPS、SSH など、何を対象にするのかをいろいろと選べます。
  • プロトコル:TCP、UDP、ICMP で、タイプを選択すると、ここも選択されます。
  • ポートの範囲:CUstom TCP や Custom UDP などをタイプで選んだ場合、ポート番号を指定できます。
  • 送信元:通信の送信元を指定できます。どこからアクセスでもOKやこのIPアドレスのみなどです。
  • ディスクリプション:後から見て分かるように、このルールの説明を記述します。

以下は、カスタムTCPを選択して、ポート番号として 8088 から 9099 を許可した例です。

送信元は「全て」「特定の IP アドレスや範囲」が指定できますが、セキュリティーグループも指定できるところが特徴です。

今回は起動確認テストなので、RDP のみを許可して起動させます。

画面右下の「Review and Launch」ボタンを押して進みます。

さあ、最終ステップです。今まで自分が設定した内容を確認しましょう。

起動させるインスタンスのサイズは正しいですか?起動させるリージョン、VPC、サブネットは正しいですか?

インスタンスの詳細も確認してください。

インスタンスにアタッチするストレージの内容やタグの内容も確認します。

全ての内容が自分の設計通りであることが確認できたあ、画面右下の「Launch」ボタンを押して進みます。

最後にキーペアを設定します。

これは、インスタンスにログインする際に使用します。既存でキーペアがある場合は、それを使用することもできますが、今回は新規で作成します。

「Create a new key pair」を選択し、「Key pair name」にキーペアの名前を入力します。

「Download Key Pair」ボタンを押して、キーペアのファイルをダウンロードします。

キーペアのファイルのダウンロードが完了したら、「Launch Instances」ボタンを押して、インスタンを起動させます。

インスタンスの起動が始まります。

画面上部に見えるインスタンス ID をクリックします。

EC2 の管理画面に自動的に移動し、起動中のインスタンスが見えます。

ステータスが「Initializing」になっているのが見えると思います。「起動中」の意味です。インスタンスの起動までには、少し時間がかかります。このステータスの部分を見ておいてください。

ステータスが「2/2 Checks Passed」になれば、起動完了です。

起動させたインスタンスのグローバル IP アドレスも確認できますね。

インスタンスのログインパスワードの入手

画面上部のメニューの「Action」から、「Get Windows Password」を選択します。

以下のようなパスワード取り出し画面が表示されますので、Key Pair Path のところで「Choose File」ボタンを押し、先ほどダンロードしたパスワードファイルを指定します。

パスワードファイルを正常に読み込むと、以下のように証明書の内容が表示されます。

画面右下の「Decrypt Password」ボタンを押して、パスワードを表示させます。

パスワードが表示されました。パスワードをメモしたら「Close」ボタンを押して、画面を閉じてください。

インスタンスへのログイン

パスワードが入手できたので、今度はインスタンスにログインしましょう。

画面上部メニューの中の「Connect」ボタンを押します。

Windowsの場合、RDP のファイルをダウンロードすると簡単です。「Download Remote Desktop File」をクリックして、デスクトップに保存します。

RDP ファイルをダブルクリックして、RDP 接続を開始します。

私は Macbook を使用していますので、Windows とは画面が異なりますが、以下のようなパスワードを求める画面が表示されます。先ほどメモしたパスワードを入力してください。

AWS 東京リージョンの自分のVPC 内に起動させた Windows のデスクトップが表示されます。

インスタンスの削除

EC2 の管理コンソールに戻ります。

画面上部のメニューの中から、「Action」→「Instance State」→「Terminate」を選択します。

インスタンスを削除して良いかの確認画面が表示されます。

画面右下の「Yes, Terminate」ボタンを押して削除します。

インスタンスのシャットダウンが開始されます。

シャットダウンが完了するまで、しばらく時間がかかります。「Instance State」の部分を見ておいてください。

Terminated の表示になったら、インスタンスの削除は完了です。

インスタンスが完了したら、必ず EBS のストレージも削除されているかも確認することをお勧めします。

残っていたら、削除しておきましょう。インスタンスを削除しても EBS が残っているとお金がかかります。

この教材を使って勉強してます。

AWS認定資格試験テキスト AWS認定ソリューションアーキテクト-アソシエイト

AWS認定資格試験テキスト AWS認定 ソリューションアーキテクト-アソシエイト【電子書籍】[ 佐々木 拓郎 ]

価格:2,618円
(2020/8/12 12:20時点)
感想(0件)

カテゴリー
2020年 AWS AWS Solutions Architect - Associate クラウド コンピューター 認定資格

AWSを学ぶ(5)EC2の性能とコストの考え方

EC2の性能をどう考えるか

EC2ではインスタンスタイプというものがあり、インスタンスのスペックを選択することができます。

オンデマンドタイプですと、例えば、m5.largeとかp2.8xlargeなどがあります。AWSのサイトに、スペックと価格の記載があります。

この「m」とか「p」は、インスタンスファミリーと呼ばれ、「何に対して最適化しているのか」を示しています。

インスタンスファミリー何に対して最適化なのか
 t, m汎用
 cコンピューティング
 p, gGPU
 x, r, zメモリー
 i, dストレージ
https://aws.amazon.com/jp/ec2/pricing/on-demand

インスタンスファミリーの後ろの数字は世代を表します。つまり、数字の大きいものがより最新ということになります。

一般的には、世代の新しいもののほうがスペックが良く、価格も安いです。

「xlarge」や「4xlarge」の部分が、インスタンスサイズを表し、数字の大きいものの方がスペックが高いということになります。

以下のものが、2020年8月11日時点でのm5インスタンスファミリーの性能と価格です。性能と価格は変更されることがありますので、必ずAWSのサイトを参照してください。

汎用-現行世代

EC2のコスト

EC2では、インスタンスを使ったら使った分だけ課金される「従量課金型」です。

この「使った分だけ」ですが、以下の様な考え方になります。

  • インスタンスが「Running」状態であった時間
  • 「Running」状態であったインスタンスのインスタンスタイプやリージョン

インスタンスを稼動させるリージョンによっても価格が変わるので注意です。

インスタンスの状態は3つあります。

  1. Running: 起動中
  2. Stopped : 停止中
  3. Terminated:  削除済み

EC2では、起動しているインスタンスのみが課金対象になり、停止中や削除されたインスタンスに対しては課金されません

インスタンスの削除に関して、注意点としては以下の点があります。

  • 停止中のインスタンスでも、、EBS(EC2インスタンスにアタッチして使うブロックストレージ)の費用はかかる
  • インスタンスを削除してもEBSは残るものもあるので注意(インスタンスを削除した時は必ずEBSも確認する)

私も過去に、インスタンスを削除したにも関わらず、EBSのストレージが消えていなかったために、コストがかかってしまっていたという経験があります。

スポットインスタンスとリザーブドインスタンス

オンデマンド

  • インスタンスの利用時間によって、料金が発生するタイプです。
  • 短期間や限られたタイミングでのみ利用したいという時に合います。

スポットインスタンス

  • AWSが余らせているEC2リソースを、入札形式で安く利用できるタイプです。
  • ただし、他のユーザーから利用リクエストが増え、リソースの余がなくなると、インスタンスが自動的に中断されます。
  • 一時的にテストや開発で高いスペックのインスタンスを利用したいというケースには良いです。

リザーブドインスタンス

  • 長期利用を約束することで、割引が得られるタイプです(料金先払い)。
  • 例えば、1年間で購入すると40%程度も費用を削減できるケースもあります。
  • 最初はまずオンデマンドで利用し、これでもう大丈夫となったら、リザーブドインスタンスで本番稼動という形が良いのではと思います

この教材を使って勉強してます。

AWS認定資格試験テキスト AWS認定ソリューションアーキテクト-アソシエイト

AWS認定資格試験テキスト AWS認定 ソリューションアーキテクト-アソシエイト【電子書籍】[ 佐々木 拓郎 ]

価格:2,618円
(2020/8/12 12:20時点)
感想(0件)

AWS関連の記事:

関連する記事:

最近の記事:

カテゴリー
2020年 AWS AWS Solutions Architect - Associate クラウド コンピューター 認定資格

AWSを学ぶ(4)EC2を理解しよう

EC2とは

Amazon Elastic Compute Cloud の略で、AWSで提供されるコンピューティングサービスの1つです。

簡単に言えば、仮想マシンを起動させられるサービスです。

EC2では仮想サーバはインスタンスという単位で管理され、数回クリックすれば起動してくるため、サーバの調達までのリードタイムは大幅に短縮が可能となります。

EC2の便利さを考えるために、オンプレとの比較をしてみましょう。

オンプレ環境では、物理サーバを手配し、そこにOSをインストールし、ラックを増設し、ネットワークや電源の管理をするといった様々な作業が必要となり、新しいサービスをリリースするまでに、1ヶ月くらいはかかるでしょう。

そして、こんなに時間をかけて準備したにも関わらず、予想を超えるトラフィックやリクエストを処理できず、ビジネスチャンスの逃してしまったり、逆にリソースを余らせてしまい、結果として赤字になるなんてこともあり得えます。

EC2を使えばサービスの提供までのリードタイムを大幅に短縮させられます。

ビジネスにとって重要なところはどこなのでしょうか。サービスを用意するところではないですよね。サービスを如何に効率よく提供し続けビジネスを行うことです。つまり、ビジネス価値を生む行為に集中できる様になります。

AWSが提供するコンピューティングサービスには、以下のものがあります。

  • Amazon Elastic Compute Cloud (EC2)
  • AWS Lambda
  • Amazon Elastic Container Service (ECS)
  • Amazon Elastic Container Service for Kubernetes (EKS)
  • Amazon Fargate
  • Amazon Lightsail

EC2の仕組み

EC2では、使用したいイメージを選択しインスタンスを実行します。このイメージのことを、Amazon Machine Image(AMI)と呼びます。AMIは、 エイエムアイ、又はアミと呼ばれます。

EC2で使えるAMIには2種類あります。

  1. Amazon Linux、 Red Hat Enterprise Linux、Microsoft WindowsといったAWS が標準で提供しているのも
  2. 各ベンダーがサービスをプリインストールしたもの

ユーザーはインスタンスの断面をAMIにすることもでき、それをバックアップとすることも可能となります。

EC2のメリット

EC2には以下のメリットがあります。

  • 簡単にスペック変更
  • 従量課金でのコスト
  • サービス提供までの時間短縮
  • 簡単に冗長化

EC2の最大の魅力は、仮想インスタンスのスペックを簡単に変更が可能であることにあります。つまり、サービスのキャパシティーを柔軟に拡大や縮小が可能となります。

例えば、あなたのビジネスが夏によく売れる商品だとして考えてみましょう。

夏によく売れるのですから、夏時期にリクエスト数が増えるはずです。

この傾向が分かっている場合、どこを目安にサーバーのスペックを考えるべきでしょうか。

以下の様に、最低でも緑色のラインのリスエストをさばくことができるスペックが必要です。大抵の場合、それに1.2とか1.5とか掛けて、少し大きめのスペックでサーバーを用意すると思います。

それにより、ピーク時のリスエストには対応できる様にな離ますが、夏以外がそれほどリスエスト数がありません。無駄がありますよね。以下の黄色の部分は全て無駄になります。

EC2を利用すれば、必要な時に必要となるスペックと台数のサーバーを簡単に用意することができます。クラウドなので、使用したら使用した分だけの料金しかかかりません。コストも抑えられます。

EC2での冗長化

ビジネスを止めないためには、冗長化は非常に重要なポイントとなります。

ECCでの冗長化では、Auto Scalingを使用することができます。

Auto Scalingを使用すると、リクエストやトラフィックの増加に合わせて、EC2のインスタンス数を増加させたり減少させたりすることができます。

例えば、

  • CPU負荷が80%を超えたら、インスタンスを2台追加する
  • CPU負荷が60%を下回ったら、インスタンスを2台減らす

Auto Scalingの機能ですが、ELBと呼ばれるロードバランサーと一緒に使用されます。

ELB: Elastic Load Balancerはレイヤー4(L4)やレイヤー7(L7)で動作するロードバランサーです。EC2上で動作し、EC2のインスタンスに対してトラフィックを負荷分散するだけでなく、インスタンス自体の負荷を監視し、負荷がしきい値を超えたらインスタンスう数を増やしたり、しきい値を下回ったらシンスタンス数を減らしたりする機能を持ちます。

ELBには、以下の3つの種類があります。

Classic Load Balancer (CLB)Network Load Balancer (NLB)Application Load Balancer (ALB)
HTTP, HTTPS, TCP TCPHTTP, HTTPS
古いタイプのLB
リクエストレベル(L7)と接続レベル(L4)の両方に対応
接続レベル(L4)で動作
TCPトラフィックのロードバランシング
リクエストレベル(L7)で動作
HTTPとHTTPSトラフィックの高度なロードバランシング

EC2が分かってきたのではないでしょうか。EC2では、仮想インスタンスというサーバーを起動させられるのですね。これでプライベートサブネットとパブリックサブネットの2つの役割が分かったと思います。

アプリケーションは一般的に3ティアー構成を取っています。

フロントエンドのノードはエンドユーザーからのリクエストを受けますが、バックエンドのノードはエンドユーザーからのアクセスは不要であり、ノード間の通信のみとなります。

思い出してみてください。パブリックサブネットはIGWを経由してインターネットと通信ができましたよね。それに対して、プライベートサブネットは、IGWとは通信をさせませんので、インターネットとの通信はできません。

この教材を使って勉強してます。

AWS認定資格試験テキスト AWS認定ソリューションアーキテクト-アソシエイト

AWS認定資格試験テキスト AWS認定 ソリューションアーキテクト-アソシエイト【電子書籍】[ 佐々木 拓郎 ]

価格:2,618円
(2020/8/12 12:20時点)
感想(0件)

AWS関連の記事:

関連する記事:

最近の記事:

カテゴリー
2020年 AWS AWS Solutions Architect - Associate クラウド コンピューター 認定資格

AWSを学ぶ(3)ゲートウェイとセキュリティーについて

AWS上に作成される各サブネットには、それぞれ仮想ルータが用意されます。

この仮想ルータでは、ルートテーブルを管理する他に、ネットワークACLを使った通信制御も行います。

また、この仮想ルータは、サブネット内に稼働させられる仮想マシンのデフォルトゲートウェイにもなります。

AWSのルートテーブル

AWSのルートテーブルは、以下の特徴があります。

  • 個々のサブネットに1つずつ設定する
  • 1つのルートテーブルを複数のサブネットで共有はできるが、1つのサブネットに複数のルートテーブルを適用することはできない
  • VPCにはメインルートテーブルがあり、サブネット作成時に指定しない場合は、このVPCのメインルートテーブルが、デフォルトのルートテーブルになる

セキュリティーグループとネットワークACL

セキュリテーグループ

AWS上に稼働させる仮想マシン(インスタンス)自体に適用させる通信制御のルールです。

インスタンスには、必ず1つ以上のセキュリティーグループを適用する必要があります。通信の制御としては、2種類あります。

TCP/UDPなどのプロトコルやアドレス範囲、ポート番号などをルールに使えます。特徴的なのは、セキュリティーグループ自体をルールの中で指定できる(このセキュリティーグループからこのセキュリティーグループへの通信みたいな)ことです。

ステートフルであり、行きの通信を許可すれば、その通信の戻りも許可されます。

インバウンド:外部からVPC内への方向
アウトバウンド:VPN内から外部への方向

ネットワークACL(NACL)

サブネット毎の通信制御を行うルールです。

NACLでは、セキュリティーグループの様に、セキュリティーグループをルールで指定はできません。

またデフォルトでは、全ての通信を許可しています。

ステートレスであり、行きと戻りの通信を明示的に許可しなければ通信ができません。

ゲートウェイ

ゲートウェイは、VPNの内部と外部を通信させる出入り口です。

ゲートウェイは大きく3種類あります。

  1. IGW:インターネットを接続するインターネットゲートウェイ
  2. VGW:VPNやDirect Connectを使ったオンプレとの接続を行う仮想プライベートゲートウェイ
  3. NAT GW:グローバルIPアドレスを持たないインスタンスをインターネットと通信可能にさせるゲートウェイ
  4. 実はその他にもあったりする

GWは各VPCに1つだけ設定されます。

サブネットのルートテーブルで通信をIGWに向ける(一般的には0.0.0.0/0を向ける)と、その通信はインターネットと通信ができる様になります。

第2回で少し出てきたパブリックサブネットとは、これを行っているサブネットのことで、インターネットとの通信が可能となります。プライベートサブネットは、これを行いませんので、インターネットとの通信はできません。

その場合にも何らかの理由でインターネットとの通信が必要となった場合は、NAT GWを使うことになります。

VGWも各VPCに1つだけ設定できます。VPNやDirect Connectでの接続が複数あっても、1台のVGWで複数接続可能です。

さあ、これでサブネットやゲートウェイなどの仕組みが分かってきました。次はいよいよEC2を学んで行きましょう。

この教材を使って勉強してます。

AWS認定資格試験テキスト AWS認定ソリューションアーキテクト-アソシエイト

AWS認定資格試験テキスト AWS認定 ソリューションアーキテクト-アソシエイト【電子書籍】[ 佐々木 拓郎 ]

価格:2,618円
(2020/8/12 12:20時点)
感想(0件)

AWS関連の記事:

関連する記事:

最近の記事:

カテゴリー
2020年 AWS AWS Solutions Architect - Associate クラウド コンピューター 認定資格

AWSを学ぶ(2)VPCを作ってみよう

VPCの作り方

AWSはパブリッククラウドなので、比較的気軽に使えます。実際に手を動かして試してみるのが一番です。

ちなみに、私はAWSコンソールを英語表示で使用しています。日本語表示で使っている場合と少しだけ表示が異なりますが、そこは読み替えてください。

AWSの管理コンソールにログインすると、AWSで利用できるサービスの一覧が表示されます。非常にたくさんのサービスがあります。検索テキストボックスに「VPC」と入力してみると、VPCの名前が見えますので、それをクリックします。

VPCは何も設定をしなくても、AWSが用意してくれています。VPC画面では、自分のアカウント向けに提供されているVPCの一覧が表示されます。

例えば、シドニーリージョンをクリックします。VPC画面が表示され、シドニーリージョンにどのようなVPCが用意されているのかが見られます。

これをそのまま使っても良いのですが、アドレス範囲が自分の設計に合わないなどもあると思います。その場合は、手動でVPCを作成できます。「Create VPC」を押します。

VPC作成画面が表示されるので、「Name tag」にVPCの名前、「IPv4 CIDR block」にVPCで使用可能なアドレスの範囲を入力します。ここでポイントは、VPCで使用可能なサブネットの大きさはなるべく大きくすべきという点です。

なぜ大きくしておくべきなのかですが、サブネット内の最初の4つと最後の1つのIPアドレスはAWSで予約されていて、ユーザーは使うことができません。このたた、例えば28ビットでサブネット作った場合、ビット的には16個のIPアドレスがあるのですが、実際には11個しか使えません。

またAWSのサービスの中にはこの範囲内からのIPアドレスを必要とする物もあります。例えば、ELBと呼ばれるロードバランサーを使用する場合、IPアドレスを8個も使用します。

最大で16ビット、最小で28ビットを指定できますが、実際にサブネットを作成した際にそのサブネットないのアドレスをすべて使用できる訳ではありません。後から拡張する方法もあるのですが、めんどくさいみたいです。基本的には16ビットがお勧めです。

Createボタンを押すと作成できます。正常に作成できたら、Closeボタンを押して、VPC作成画面を閉じます。

VPCができましたね。一番上のものが、今作成したVPCです。

次に、VPCの中にサブネットを作って行きましょう。左側にあるメニューの中に「Subnets」が用意されていますのでクリックします。

AWSが用意しているサブネットがあるのですが、自分の設計で必要なサブネットを作りましょう。「Create subnet」を押します。

サブネット作成画面が表示されます。

「Name tag」にサブネットの名前を入力します。次に、そのサブネットを先ほど作ったVPC内に作成するのですが、VPCのところをクリックすると、今利用可能なVPCの一覧が表示されます。先ほど作成した「test-vpc-01」も見えますね。それを選択します。

次に設定するのがAvailable Zoneです。これって何でしたっけ?

第1回目でもお話しましたが、AZ: Availability Zoneとは、各リージョン内にあるデータセンターです。データセンター全体、が何らかの理由で使えなくなってもサービスを継続できる様に、リージョン内には2つ以上のAZが用意されているんでしたよね。

AWSを使う際のコツですが、VPCを複数のAZにまたがる様に設計することを推奨しています。サブネットを複数作成し、それぞれを別のAZ上に設置する様に指定します。AWSではこれをマルチAZと呼びます。

ここでは、test-subnet-01というサブネットを、ap-southeast-02というAZに作成します。

そして作成するサブネットの範囲を24ビットとします。Createボタンを押して、サブネットを作成します。

正常にサブネットが作成されたことを確認したら、Closeボタンを押して、サブネット作成画面を閉じます。

自分の設計通りのサブネットが作成されましたね。

この作業を繰り返して、自分の設計で必要となる数のサブネットを作って行きましょう。

ちなみに、サブネットには2種類あります。これは機能的に分けたものです。

パブリックサブネット

インターネットとの通信が許可されているサブネットで、もちろんVPC内も通信可能

プライベートサブネット

インターネットとの通信は許可されておらず、VPC内しか通信が許可されていないサブネット

なぜこんな2つのサブネットを使い分ける必要があるのか。EC2を学んで行けば、謎が解けるかも知れません。

この教材を使って勉強してます。

AWS認定資格試験テキスト AWS認定ソリューションアーキテクト-アソシエイト

AWS認定資格試験テキスト AWS認定 ソリューションアーキテクト-アソシエイト【電子書籍】[ 佐々木 拓郎 ]

価格:2,618円
(2020/8/12 12:20時点)
感想(0件)

ASW関連の記事:

関連する記事:

最近の記事: