かべぎわブログ

ブログです

ALBでターゲットが全てunhealthyとなったときの動き

ALBでの動作

ALBでは対象のターゲットがヘルスチェックでunhealthyとなっても通信がターゲットに対して行われます。
そして、ALBでは正常なターゲットが含まれているAZがない場合、すべてのターゲットにリクエストをルーティングします。

おそらくフェイルオープンのような思想で設計されているのだと思います。

なにか障害が発生した際に全面断にするような運用をしたい場合には、セキュリティグループで拒否したり、待受ポート番号を変更したりなど、バックエンドインスタンス側に手を入れる必要があるかと思います。

参考:CLBでの動作

CLBの場合はヘルスチェックに失敗したインスタンスにリクエストをルーティングは行われない仕様で、動作に違いがありますので注意が必要です。

ですので全面断をかんたんに実装したい場合にはCLBのほうが適しているかもしれません。

Amazon Web Services 定番業務システム12パターン設計ガイド

Amazon Web Services 定番業務システム12パターン設計ガイド

Route53でTTLに0を設定したときの動作

Route53のTTLの設定は0から2147483647の間で設定することができます。

0を設定した場合は以下のような動作になります。

Route53でTTLに0を設定したときの動作

キャッシュせずに毎回、名前解決が実行されます。
そして、Route53からはTTL:0のレコードが返却されます。

(ただし、TTLに従って名前解決を行うかはクライアントやDNSキャッシュサーバの設定などに依存します。)

一般的にレコードをキャッシュさせたくない場合にはTTLに0などの短い値を設定するのが有効です。

参考

Nginxでのデフォルトの設定ではTTLにかかわらず名前解決を起動後の1回のみしか実施しない仕様になっています。

papix.hatenablog.com

Amazon Web Services 基礎からのネットワーク&サーバー構築 改訂版

Amazon Web Services 基礎からのネットワーク&サーバー構築 改訂版

旧バージョンのAmazonLinuxを利用する

f:id:kabegiwakun:20171105100623p:plain

マネジメントコンソール上からでは最新版Amazon Linuxしか選択することができません。

基本的には最新版の利用でかまいませんが、現行環境と環境を統一したいときなど、古いバージョンのAmazon Linuxを利用したいときがあるかと思います。

今回は最新ではないAmazon Linuxを入手する方法をご紹介します。

手順

EC2インスタンスの作成時に、コミュニティAMIを選択します。
f:id:kabegiwakun:20171105103122p:plain

そして検索で「Amazon Linux 2016」のように過去のバージョンを検索すると、該当のバージョンが出てきますのでそのAMIを利用してインスタンスを作成します。
f:id:kabegiwakun:20171105103349p:plain

ただ、コミュニティAMIは公式以外の第三者もAMIを公開しています。
公式のものが利用したい!という場合には以下のAWS CLIを実行し、amazonと表示されれば公式のものです。

aws ec2 describe-images --image-ids ami-xxxxxxxx --region ap-northeast-1 --query 'Images[].ImageOwnerAlias'

Amazon Web Services企業導入ガイドブック -企業担当者が知っておくべきAWSサービスの全貌から、セキュリティ概要、システム設計、導入プロセス、運用まで-

Amazon Web Services企業導入ガイドブック -企業担当者が知っておくべきAWSサービスの全貌から、セキュリティ概要、システム設計、導入プロセス、運用まで-

  • 作者: 荒木靖宏,大谷晋平,小林正人,酒徳知明,高田智己,瀧澤与一,山本教仁,吉羽龍太郎
  • 出版社/メーカー: マイナビ出版
  • 発売日: 2016/06/10
  • メディア: 単行本(ソフトカバー)
  • この商品を含むブログを見る

AWSCLIでS3全体を暗号化する

AWSCLIのaws s3 cpコマンドではオプションで--sseを指定することでAES256で暗号化することが可能です。

この際にコピー元とコピー先に同一のパスを指定することでパスを変えずに、オブジェクトを暗号化することが可能です。
具体的には以下のようにコマンドを実行します。

 aws s3 cp s3://kabegiwa-bucket/ s3://kabegiwa-bucket/ --recursive --sse

コピー元とコピー先にバケットを指定し、--recursiveで再帰的に--sseで暗号化しています。

また、このコマンドをcronなどに設定することで定期的にバケット全体を暗号化することが可能です。

Amazon Web Services企業導入ガイドブック -企業担当者が知っておくべきAWSサービスの全貌から、セキュリティ概要、システム設計、導入プロセス、運用まで-

Amazon Web Services企業導入ガイドブック -企業担当者が知っておくべきAWSサービスの全貌から、セキュリティ概要、システム設計、導入プロセス、運用まで-

  • 作者: 荒木靖宏,大谷晋平,小林正人,酒徳知明,高田智己,瀧澤与一,山本教仁,吉羽龍太郎
  • 出版社/メーカー: マイナビ出版
  • 発売日: 2016/06/10
  • メディア: 単行本(ソフトカバー)
  • この商品を含むブログを見る

AWSCLIでS3のオブジェクトをサーバーサイドで暗号化するやりかたまとめ

サーバーサイドでS3のオブジェクトを暗号化して格納する方法をご紹介します。
(クライアントサイド暗号化はSDKなどで実装する必要があるのですこし敷居が高いです)

SSE-S3で暗号化する

SSE-S3はデフォルトの暗号化方式ですのでオプションで--sse AES256と指定してあげるだけでかんたんに暗号化することができます。

aws s3 cp wawawa.txt s3://kabegiwa-bucket/ --sse AES256

以下のようにAES256の表記は省略することも可能です。

aws s3 cp wawawa.txt s3://kabegiwa-bucket/ --sse

SSE-KMSで暗号化する

まず、KMSを使って鍵を作成する必要があります。
鍵の登録方法はこちら

www.kabegiwablog.com

SSE-KMSで暗号化する際はオプションで--sse aws:kmsというオプションを指定し、--sse-kms-keyidで利用するキーのIDを指定します。

aws s3 cp wawawa.txt s3://kabegiwa-bucket/ --sse aws:kms --sse-kms-key-id aaaaaaaa-bbbb-cc12-3456-7890-dddddddddddd

Amazon Web Services 定番業務システム12パターン設計ガイド

Amazon Web Services 定番業務システム12パターン設計ガイド

KMSに鍵を登録する方法

KMSに鍵を登録する

すでに登録済みの鍵を利用する場合は読み飛ばしてください。
マネジメントコンソールで「IAM」の「暗号化キー」に移動し、「今すぐ始める」を選択します。
f:id:kabegiwakun:20171102234018p:plain

東京リージョンを選択し、「キーの作成」を選択します。
f:id:kabegiwakun:20171102234416p:plain

「エイリアス」と「説明」を入力し、「次のステップ」へすすみます。
f:id:kabegiwakun:20171102234641p:plain

タグは任意でかまいません。
f:id:kabegiwakun:20171102234813p:plain

このキーを利用するユーザを選択して、「次のステップ」へすすみます。
f:id:kabegiwakun:20171102234959p:plain

作成するキーのポリシーのプレビューがでるのでそのまま「完了」です。
f:id:kabegiwakun:20171102235125p:plain

Amazon Web Services パターン別構築・運用ガイド 一番大切な知識と技術が身につく

Amazon Web Services パターン別構築・運用ガイド 一番大切な知識と技術が身につく

S3で利用できる暗号化方式まとめ

S3にファイルを保存するときに利用できる暗号化方式をまとめてみました。

サーバーサイド暗号化

SSE-S3

AWSが管理する鍵をつかって暗号化する方法です。ユーザが鍵について意識する必要が無いのがメリットです。
AWSが提供するオプションです。

SSE-KMS

AWS KMSで管理されている鍵を使って暗号化します。SSE-S3と違い、ユーザごとに別の鍵を利用することも可能です。
鍵のアクセス権限の管理や、利用履歴などを確認することもできます。

SSE-C

ユーザが作成した鍵をAWSに送信し、AWSで暗号化する方式です。
AWSでは暗号化後、秘密鍵を破棄し、公開鍵のみを保持することで第三者の複合を防ぎます。

クライアントサイド暗号化

KMSのカスタマーマスターキーを利用する

単純にKMSのキーを利用して暗号化します。

クライアントのキーを利用して暗号化する

そもそもAWSの領域に入る前に自分で管理しているキーを利用して暗号化します。
この場合、暗号化された状態ですべての通信がおこなわれるのでよりセキュアな状態を保つことができます。

Amazon Web Services企業導入ガイドブック -企業担当者が知っておくべきAWSサービスの全貌から、セキュリティ概要、システム設計、導入プロセス、運用まで-

Amazon Web Services企業導入ガイドブック -企業担当者が知っておくべきAWSサービスの全貌から、セキュリティ概要、システム設計、導入プロセス、運用まで-

  • 作者: 荒木靖宏,大谷晋平,小林正人,酒徳知明,高田智己,瀧澤与一,山本教仁,吉羽龍太郎
  • 出版社/メーカー: マイナビ出版
  • 発売日: 2016/06/10
  • メディア: 単行本(ソフトカバー)
  • この商品を含むブログを見る

Cyberduckを利用してS3とファイルをやり取りしてみる

f:id:kabegiwakun:20171101215135p:plain

今回はCyberduckというGUIのFTPクライアントツールを利用してAWS上のS3バケットとローカルでファイルのやりとりをしてみたいと思います。

準備

Cyberduckのダウンロード

以下からダウンロードできます。
WindowsかMacか利用しているOSに応じてダウンロードCyberduckをダウンロード/インストールしてください。

https://cyberduck.io/index.ja.html?l=ja

CyberduckをS3とつなぐ

右上から「新規接続」を選択します。
f:id:kabegiwakun:20171101215812p:plain

どこに接続するのかを設定する画面が開くので上部のプルダウンメニューから「Amazon S3」をえらび、S3に接続するIAMユーザの「アクセスキー」と「パスワード」の欄にシークレットアクセスキーを入力します。
入力したら「接続」を選択します。
f:id:kabegiwakun:20171101220734p:plain

するとS3へ接続が行われ、バケットの一覧がでてきます。
f:id:kabegiwakun:20171101222245p:plain

バケット名をダブルクリックするとバケットの中身がみれます。
f:id:kabegiwakun:20171101222334p:plain

実際の操作

S3へファイルをアップロードする

ファイルをドロップするだけでS3へのアップロードが可能です。
f:id:kabegiwakun:20171101222621p:plain
f:id:kabegiwakun:20171101222635p:plain

S3からファイルをダウンロードする

ダウンロードしたいファイルを右クリックして「ダウンロード」でかんたんにダウンロードできます。
f:id:kabegiwakun:20171101222834p:plain

まとめ

マネジメントコンソールでもおなじようなことは可能ですが、このようなツールを利用することでより厳密なアクセス制限をかけることも可能なので検討してみるのもいいかもしれません。

補足

IAMロールをつかってCyberduckを利用する方法を書きました。 www.kabegiwablog.com

Amazon Web Services企業導入ガイドブック -企業担当者が知っておくべきAWSサービスの全貌から、セキュリティ概要、システム設計、導入プロセス、運用まで-

Amazon Web Services企業導入ガイドブック -企業担当者が知っておくべきAWSサービスの全貌から、セキュリティ概要、システム設計、導入プロセス、運用まで-

  • 作者: 荒木靖宏,大谷晋平,小林正人,酒徳知明,高田智己,瀧澤与一,山本教仁,吉羽龍太郎
  • 出版社/メーカー: マイナビ出版
  • 発売日: 2016/06/10
  • メディア: 単行本(ソフトカバー)
  • この商品を含むブログを見る

S3を社内のファイルサーバとして利用する

概要

S3を複数のユーザで利用するファイルサーバ(ファイルストレージ)として利用する方法をご紹介します。
S3を作成して共有するだけでファイルのやりとりは可能ですが、すべてのユーザがrootユーザとしてアクセスすることになるのでセキュリティ上よろしくありません。IAMユーザとIAMグループを作成し、適切に権限を付与させていきます。

手順

S3バケットの作成

マネジメントコンソールの「S3」から、「バケットを作成する」を選択します。
f:id:kabegiwakun:20171030213145p:plain

バケット名とリージョンを入力し、ウインドウ左下の「作成」を選択します。
f:id:kabegiwakun:20171030213343p:plain

バケットができました。
f:id:kabegiwakun:20171030213443p:plain

IAMユーザの作成

マネジメントコンソールの「IAM」を開き、サイドメニューから「ユーザー」を選択します。
f:id:kabegiwakun:20171030213954p:plain

「ユーザを追加」を選択します。
f:id:kabegiwakun:20171030214811p:plain

「ユーザ名」を入力して、「プログラムによるアクセス」にチェックをいれて「次のステップ:アクセス権限」へすすみます。
f:id:kabegiwakun:20171030215353p:plain

一旦アクセス権限は飛ばします。
そのまま「次のステップ:確認」へすすみます。
f:id:kabegiwakun:20171030220158p:plain

「ユーザの作成」を選択します。
f:id:kabegiwakun:20171030220256p:plain

するとユーザが作成され、アクセスキーとシークレットアクセスキーが表示されます。
この情報はS3とのファイルのやり取りに必要になりますので「表示」を押してメモをとっておくか、「.csvのダウンロード」で情報をダウンロードしておきます。

確認したら「閉じる」を選択します。
f:id:kabegiwakun:20171030220611p:plain

IAMグループの作成

サイドメニューから「グループ」にすすみ、「新しいグループの作成」を選択します。
f:id:kabegiwakun:20171030221310p:plain

「グループ名」を入力し、「次のステップ」を選択します。
f:id:kabegiwakun:20171030221814p:plain

「グループの作成」を選択します。
f:id:kabegiwakun:20171031203543p:plain

続いて作成したグループにユーザを追加します。
グループを選択して、「グループのアクション」から「グループにユーザーを追加」を選択します。
f:id:kabegiwakun:20171031204030p:plain

IAMユーザの作成で作成したユーザを選択して「ユーザの追加」でユーザーをグループに追加します。
f:id:kabegiwakun:20171031204256p:plain

IAMポリシーの作成

サイドメニューから「ポリシー」にすすみ、「ポリシーの作成」を選択します。
f:id:kabegiwakun:20171031204510p:plain

「独自のポリシー」を選択します。
f:id:kabegiwakun:20171031204906p:plain

ポリシー名に任意の名前をつけ、「ポリシードキュメント」の欄に以下のJSONをコピーします。
kabegiwa-bucketの部分はバケット名ですのでアクセス許可を与えたいS3の名前に変更してください。 それぞれ入力したら「ポリシーの作成」を選択します。
f:id:kabegiwakun:20171031210156p:plain

ポリシードキュメント例

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::kabegiwa-bucket",
                "arn:aws:s3:::kabegiwa-bucket/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:GetBucketLocation"
            ],
            "Resource": "arn:aws:s3:::kabegiwa-bucket/*"
        },
        {
            "Effect": "Allow",
            "Action": "s3:ListAllMyBucket",
            "Resource": "arn:aws:s3:::*"
        }
    ]
}

このポリシーは以下の3つのことを許可するポリシーです。

  1. kabegiwa-bucketのすべて(/*)に対してすべての許可であるs3:*を許可
  2. kabegiwa-bucketに対してs3:ListBucket,s3:GetBucketLocationでバケット一覧の取得とバケットの場所の取得を許可
  3. S3全体にs3:ListAllMyBucketsで存在するバケットの一覧取得を許可

IAMグループにポリシーをアタッチする

作成したポリシーから「アタッチされたエンティティ」タブを選択し、「アタッチ」をクリックします。
f:id:kabegiwakun:20171031212704p:plain

IAMグループの作成で作成したグループを選択し、「ポリシーのアタッチ」を選択します。
f:id:kabegiwakun:20171031212917p:plain

以上でAWS側の設定は完了です!

AWSCLIで実際にファイルのやり取りを行う

コンソールやコマンドプロンプトを開き以下のコマンドを実行し、ユーザ作成時に控えておいたアクセスキーとシークレットアクセスキーを入力します。
リージョンは東京リージョンの場合はap-northeast-1と入力します。
最後のoutput formatは空白のままそのままEnterでかまいません。

kabegiwa: ~$ aws configure
AWS Access Key ID [None]: アクセスキー
AWS Secret Access Key [None]: シークレットアクセスキー
Default region name [None]: ap-northeast-1
Default output format [None]: そのままEnter

そしてs3コマンドを使ってS3を操作します。

コピーする場合

kabegiwa: ~$ aws s3 cp wawawa.txt s3://kabegiwa-bucket/

移動する場合

kabegiwa: ~$ aws s3 mv wawawa.txt s3://kabegiwa-bucket/

バケットにファイルを置くことができました!

kabegiwa: ~$ aws s3 ls s3://kabegiwa-bucket
2017-10-31 21:31:14          0 wawawa.txt

まとめ

S3を利用してセキュリティを確保したファイルサーバを作成することができました。
CLIの利用が面倒な場合はCyberduckなどのGUIツールを利用するのがよいかもしれません。

Cyberduckを利用する方法はこちらから

www.kabegiwablog.com

Amazon Web Services パターン別構築・運用ガイド  一番大切な知識と技術が身につく

Amazon Web Services パターン別構築・運用ガイド  一番大切な知識と技術が身につく

AWS CloudFormationでIAMユーザを一気に作成する

AWSのCloudFormationを利用してAWSのIAMユーザを一気に作成してみようと思います。

コード

CloudFormation

コードのかんたんな説明

  • Groups - 作成するユーザの所属するグループを指定します(複数指定可)
  • Password - 初期パスワードを記載します
  • PasswordResetRequired - 初回ログイン時にパスワードを変更するかを決定します。Trueであればパスワードを変更します。
  • MangedPolicyArns - 作成するユーザに設定する管理ポリシーのARNを指定します。(複数指定可)
  • UserName - 作成するユーザの名前を指定します。

コードの例では2ユーザを一気に作成しています。
ブロックごとそのままコピペすることでもっとたくさんのユーザを一気に作成することも可能です!

Amazon Web Services企業導入ガイドブック -企業担当者が知っておくべきAWSサービスの全貌から、セキュリティ概要、システム設計、導入プロセス、運用まで-

Amazon Web Services企業導入ガイドブック -企業担当者が知っておくべきAWSサービスの全貌から、セキュリティ概要、システム設計、導入プロセス、運用まで-

  • 作者: 荒木靖宏,大谷晋平,小林正人,酒徳知明,高田智己,瀧澤与一,山本教仁,吉羽龍太郎
  • 出版社/メーカー: マイナビ出版
  • 発売日: 2016/06/10
  • メディア: 単行本(ソフトカバー)
  • この商品を含むブログを見る

6amLifestyle ペン立てを買ったのでレビュー

MONTBLANCの超高級なボールペンを頂いたのでいい感じにこのボールペンを飾ることのできるペン立てを探していたところこんなものをみつけました。

レビュー

Amazonで早速買って見ました。
超シンプルな箱です。
f:id:kabegiwakun:20171030205927j:plain

箱を開けてみます。
f:id:kabegiwakun:20171030210021j:plain

包装もはずすとこんな感じ。
シンプルなアルミの質感です。
f:id:kabegiwakun:20171030211025j:plain

ずっしりとした重量感があります。
f:id:kabegiwakun:20171030210535j:plain

裏面はゴムでできており、すべりにくくなっています。
f:id:kabegiwakun:20171030210451j:plain

ペンが入る部分にはスポンジがひいてあり、ペン先が傷つかないようになっています。
f:id:kabegiwakun:20171030210649j:plain

実際にペンをさしてみるとこんなかんじ。 f:id:kabegiwakun:20171030211153j:plain
f:id:kabegiwakun:20171030210732j:plain
f:id:kabegiwakun:20171030210804j:plain

安い値段だったのでそこまで期待はしていなかったのですが、なかなかしっかりした作りで質感もしっかりしています。

おすすめです!!!

AWSと社内LANをハードウェアVPNで接続する

VPCは仮想ネットワークですが、これを社内LANの物理的なネットワークとVPN接続していみたいと思います。

完成予想図

f:id:kabegiwakun:20171028225927p:plain

手順

仮想プライベートゲートウェイを有効にしたVPCを作成する

マネジメントコンソールのVPCから「VPCウィザードの開始」を選択します。
f:id:kabegiwakun:20171028230659p:plain

「プライベートのサブネットのみで、ハードウェアVPNアクセスを持つVPC」を選択します。
f:id:kabegiwakun:20171028231106p:plain

各設定を入力して「次」を選択します。
f:id:kabegiwakun:20171028231510p:plain

カスタマーゲートウェイの設定を行います。
カスタマーゲートウェイIPには社内LANのゲートウェイ(VPNルータ)のグローバルIPアドレスを入力します。
入力したら「VPCの作成」を選択します。
f:id:kabegiwakun:20171028231949p:plain

カスタマーゲートウェイの設定

マネジメントコンソールの「VPC」のサイドバーの「VPN接続」を選択します。

f:id:kabegiwakun:20171028233456p:plain

作成したVPN接続を選択して「設定のダウンロード」をクリックします。
f:id:kabegiwakun:20171028234018p:plain

社内LANのVPNルータのベンダーとプラットフォーム、ソフトウェアを選択して設定ファイルをダウンロードします。

これをVPNルータに読み込ませれば社内LANとAWSが接続できるはずです。
f:id:kabegiwakun:20171028234224p:plain

Amazon Web Services 基礎からのネットワーク&サーバー構築 改訂版

Amazon Web Services 基礎からのネットワーク&サーバー構築 改訂版

S3バケットを特定するためのURLの書き方まとめ

S3バケットを特定するためのURLの書き方にはいくつか種類があります。
今回はそれをご紹介します。

前提

  • バケット名 - kabegiwa-bucket
  • リージョン - ap-northeast-1(東京リージョン)

①バケット名のみ

もっとも基本的な形式です。
バケット名はグローバルで一意なので基本的にはバケット名だけで特定することが可能です。

http://kabegiwa-bucket.s3.amazonaws.com/

②バケット名+リージョン

バケット名とリージョン名を記載します。
複数のリージョンのバケットを使い分けている場合はこちらのほうがわかりやすいかもしれません。

http://kabegiwa-bucket.s3-ap-northeast-1.amazonaws.com/

③パス形式

バケット名をURLのパスとして指定します。
リージョンを明示してあげる必要があります。

http://s3-ap-northeast-1.amazonaws.com/kabegiwa-bucket/

サーバーレスシングルページアプリケーション ―S3、AWS Lambda、API Gateway、DynamoDB、Cognitoで構築するスケーラブルなWebサービス

サーバーレスシングルページアプリケーション ―S3、AWS Lambda、API Gateway、DynamoDB、Cognitoで構築するスケーラブルなWebサービス

プライベートサブネットからNATゲートウェイ経由でインターネットと通信する

セキュリティを考慮して、インスタンスを直接インターネットに接続するのではなく、NATゲートウェイを経由してインターネットと通信させてみます。

NATゲートウェイを経由させることでプライベートサブネット→インターネットの片方向通信を実現することができます。

完成予想図

f:id:kabegiwakun:20171026215523p:plain

手順

前提

VPCと各サブネットはもう作成済みであることを前提で手順を記載します。

NATゲートウェイを作成する

マネジメントコンソールの「VPC]から「NATゲートウェイ」を選択します。
f:id:kabegiwakun:20171026220049p:plain

「Create NAT Gateway」を選択します。
f:id:kabegiwakun:20171026220136p:plain

「Subnet」にパブリックサブネット、「Elastic IP Allocation ID」に任意のElasticIPを指定します。
ElasticIPに空きがない場合はその横の「Create New EIP」から新たにElasticIPを払い出します。
選択が完了したら「Create NAT Gateway」をクリックします。
f:id:kabegiwakun:20171026220610p:plain

NATゲートウェイが作成できました。
このままだとNATゲートウェイがそのままポツンと浮かんでいるだけなのでルートテーブルを編集してプライベートサブネットのデフォルトルートをこのNATゲートウェイゲートウェイに向けてあげます。

プライベートサブネットのルートテーブルの編集

プライベートサブネットのルートテーブルのルートに0.0.0.0/0のターゲットをNATゲートウェイにするルートを追加します。
f:id:kabegiwakun:20171026221508p:plain

これで完了です!

まとめ

NATゲートウェイを経由してインターネットと通信をすることができました。
これでプライベートな環境からでもNATゲートウェイを利用してyum updateなどを利用してサーバのアップデートができるようになりました。

そうしたたまにしかインターネットと通信をしないのであれば利用するときだけNATゲートウェイを稼働させるのが良いかと思います。
24時間動かしているとNATゲートウェイは結構馬鹿にならない料金になります…
また、セキュリティ的にもそのほうが安心です!

AWSエキスパート養成読本[Amazon Web Servicesに最適化されたアーキテクチャを手に入れる! ] (Software Design plus)

AWSエキスパート養成読本[Amazon Web Servicesに最適化されたアーキテクチャを手に入れる! ] (Software Design plus)

  • 作者: 吉田真吾,今井智明,大瀧隆太,松井基勝,冨永善視,藤原吉規,大栗宗
  • 出版社/メーカー: 技術評論社
  • 発売日: 2016/02/26
  • メディア: 大型本
  • この商品を含むブログを見る

AWSでVPCを作成してEC2インスタンスにsshログインするまでの手順

今回はAWSでVPCを新たに作成し、そこに作成したインスタンスにsshでログインするまでをやってみたいと思います。

完成予想図

f:id:kabegiwakun:20171025223314p:plain

手順

VPCを作成する

まずはVPCを作成します。
マネジメントコンソールからVPCを選択します。
f:id:kabegiwakun:20171025223848p:plain

サイドメニューからVPCを選択して、「VPCの作成」ボタンをクリックします。 f:id:kabegiwakun:20171025224218p:plain

作成するVPCの設定を行います。
今回はtest_vpcという名前で10.0.0.0/16の範囲で作成していますが、適当な名前と範囲でかまいません。
完了したら「はい、作成する」を選択します。 f:id:kabegiwakun:20171025224417p:plain

VPCがつくれました!
f:id:kabegiwakun:20171025225119p:plain

作成したVPCを選択して、上部のアクションから「DNSホスト名の編集」をクリックします。
f:id:kabegiwakun:20171026001312p:plain

「はい」を選択して保存します。
f:id:kabegiwakun:20171026001406p:plain

サブネットを作成する

サイドメニューからサブネットを選択して「サブネットの作成」ボタンをクリックします。
f:id:kabegiwakun:20171025225245p:plain

サブネットを作成する対象のVPCを選択して、CIDRブロックを入力します。
名前タグとアベイラビリティーゾーンは任意のものでかまいません。
f:id:kabegiwakun:20171025225440p:plain

サブネットができました!
f:id:kabegiwakun:20171025225846p:plain

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

インターネットに接続するためにインターネットゲートウェイを作成します。
サイドメニューからインターネットゲートウェイを選択して「インターネットゲートウェイの作成」ボタンをクリックします。
f:id:kabegiwakun:20171025230136p:plain

任意の名前を設定してインターネットゲートウェイを作成します。
f:id:kabegiwakun:20171025230459p:plain

作成したインターネットゲートウェイを選択し、「VPCにアタッチ」ボタンをクリックします。
f:id:kabegiwakun:20171025230717p:plain

アタッチするVPCを選択して、「はい、アタッチする」をクリックします。
f:id:kabegiwakun:20171025230832p:plain

ルートテーブルを作成する

アタッチしたインターネットゲートウェイを利用してインターネットと通信するためにルートテーブルの設定を行います。

サイドメニューからルートテーブルを選択し、「ルートテーブルの作成」ボタンをクリックします。
f:id:kabegiwakun:20171025231318p:plain

ルートテーブルに任意の名前を設定して、ルートテーブルを作成するVPCを選択します。
選択したら「はい、作成する」をクリックします。
f:id:kabegiwakun:20171025231734p:plain

作成したルートテーブルを選択して「ルート」タブを選択、「編集」をクリックします。
f:id:kabegiwakun:20171025232207p:plain

「別のルートを追加」を選択して送信先を0.0.0.0/0、ターゲットを先程作成したインターネットゲートウェイにして、ルートを追加します。
f:id:kabegiwakun:20171025232445p:plain

続いて「サブネットの関連付け」タブを選択して「編集」をクリックします。
f:id:kabegiwakun:20171026002411p:plain

作成したサブネットを選択して「保存」します。
f:id:kabegiwakun:20171026002522p:plain

インスタンスを作成する

マネジメントコンソールからEC2を選択します。
f:id:kabegiwakun:20171025232946p:plain

サイドメニューからインスタンスを選択し、「インスタンスの作成」をクリックします。
f:id:kabegiwakun:20171025233122p:plain

さて、インスタンスを作成していきます。
今回はAmazon Linuxを使っていきたいと思います。
Amazon Linuxの行で「選択」をクリックします。
f:id:kabegiwakun:20171025233309p:plain

任意のインスタンスタイプを選択して、「次の手順:インスタンスの詳細の設定」をクリックします。
f:id:kabegiwakun:20171025233753p:plain

インスタンスの詳細の設定ではネットワーク、サブネットにそれぞれ作成したVPC、サブネットを選択します。
また、自動割り当てパブリックIPを有効化しておきます。最後にこれを利用してインスタンスにsshログインします。
設定完了したら「次の手順:ストレージの追加」をクリックします。
f:id:kabegiwakun:20171025234246p:plain

ストレージを追加します。
とくにこだわりがないならそのまま「次の手順:タグの追加」にすすみます。
f:id:kabegiwakun:20171025234533p:plain

続いてインスタンスにタグをつけます。
これはインスタンスを識別しやすくするためのみなのでこだわりがなければそのまま次にすすみます。
タグを付ける場合は「クリックしてNameタグを追加します」をクリックします。
f:id:kabegiwakun:20171025234816p:plain

新しいセキュリティグループを作成するを選択し、任意のセキュリティグループ名を設定します。
ルールに画像のように任意の場所からのSSH通信を許可するように設定します。
設定したら「確認と作成」をクリックします。
f:id:kabegiwakun:20171025235017p:plain

いままでの設定内容の確認がでます。
問題ないようだったらそのまま「作成」をクリックします。
f:id:kabegiwakun:20171025235247p:plain

作成するインスタンスにログインするためのキーペアを作成します。
既存のキーペアの作成を選択して、任意のキーペア名を設定します。

名前を決定したら「キーペアのダウンロード」をクリックします。
キーが無事ダウンロードできたら「インスタンスの作成」を選択します。
f:id:kabegiwakun:20171025235522p:plain

インスタンスが作成できました。
f:id:kabegiwakun:20171026001620p:plain

インスタンスにSSHログインする

さて、作成したインスタンスにログインしてみます。
赤枠のアドレスをコピーします。
f:id:kabegiwakun:20171026001759p:plain

Teratermなどのコンソールエミュレータを起動して、ホスト名に先程コピーしたアドレスを貼り付けてOKをおします。
f:id:kabegiwakun:20171026001926p:plain

ユーザ名にec2-user、秘密鍵にダウンロードしたキーペアを選択してOKをクリックします。f:id:kabegiwakun:20171026002828p:plain

無事ログインできました!
f:id:kabegiwakun:20171026002918p:plain

Amazon Web Servicesではじめる新米プログラマのためのクラウド超入門

Amazon Web Servicesではじめる新米プログラマのためのクラウド超入門