AWSでprivate subnetからのインターネットサービスを利用する方法について

  • AWSでprivate subnetからのインターネットサービスを利用する方法について、簡単に列挙する。

前提

  • private subnet(インターネットゲートェイへのルート定義を持たないサブネット)は、内部からインターネットに接続できない。
  • そのため、そのままでは、S3やDynamoDbを使うことができない。ヤフーやグーグルも見れない。

改善するために方法が3つある。

NATインスタンス

  • メリット:EC2インスタンスを立てるため、柔軟な構成を取れる。
  • デメリット:フェイルオーバーを自分で考慮しないといけない。

NATゲートウェイ

  • メリット:管理が楽。
  • デメリット:マネージドサービスのため、柔軟な構成が取れない。

VPCエンドポイント

  • メリット:インターネット、NAT デバイス、VPN 接続、または AWS Direct Connect を経由せずに、VPC と他の AWS サービスとをプライベートに接続できる。
  • デメリット:S3のみ!DynamoDbがパブリックプレビューに(2017/4/19)

その他

  • SQS,SES,SNSなどのサービスもprivate subnetからだと使えない?使える? 要調査。
  • 料金的な比較もしたいが、嘘つきそうなので省略。
  • 疑問)セキュリティグループで外部からのアクセスを制限だけなのと、VPCサブネットを別にしてルート定義を分けるのと、どれくらいセキュリティ効果が違うものなのか?

続きを読む

AWS 認定ソリューションアーキテクト – アソシエイト 合格までに勉強したこと

概要

AWS 認定試験には「これを勉強すればいいよ!」という教科書があるわけではないので、何を勉強したらいいか分からず困っている人も多いと思います。
なので、私の勉強記録を共有します。

勉強前のスペック

AWSの初級者です。
EC2インスタンス起動やEBSのスナップショット取得の経験があるくらいでした。

勉強方法概要

AWS活用本を一冊読んで、
あとはAWS クラウドサービス活用資料集にある BlackBelt のスライド(PDF)を淡々と読みました。

その後、模擬試験を受けて本試験を受験しました。

勉強方法詳細

少し前に買っていた以下の本を読みました。分かりやすいです。

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

BlackBelt

自分が読んだ資料に○を付けました。
また、模擬試験と本試験を受けた経験から、各資料の重要度を評価しました。
※当たり前ですが、読んでいない資料の重要度は評価していません。また、重要度の正確性も保証しません。

コンピューティング

資料 読んだ  重要度 
[Amazon EC2] 
[Amazon EC2] Windows
[Amazon EC2] HPC
[Amazon EC2] リザーブドインスタンス
[Amazon EC2] スポットインスタンス
[Amazon EC2] Instance Store & Elastic Block Store
[Amazon EC2] VMImport/Export
[Elastic Load Balancing]
[Elastic Load Balancing] ロードバランサと Socket 接続を使用したイベント通知サーバの負荷分散
[Elastic Load Balancing] ELBを評価するためのベストプラクティス
[Auto Scaling]
[Amazon EC2 Container Service]
[AWS Elastic Beanstalk]
[AWS Lambda]
[AWS Lambda] update
[Amazon Lightsail]
[AWS Batch]

ストレージ & コンテンツ配信

資料 読んだ  重要度 
[Amazon EBS]
[Amazon S3] 
[Amazon CloudFront]
[Amazon CloudFront] Flash Media Server on AWS
[Amazon CloudFront] CloudFront 上限緩和申請 計算方法&申請手順
[Amazon CloudFront] まだ間に合う! Amazon CloudFront で ATS 対応
[Amazon Glacier]
[Amazon Glacier] 機能編
[AWS Storage Gateway]
[Amazon Elastic File System]

データベース

資料 読んだ  重要度 
[Amazon RDS]
[Amazon RDS] Aurora
[Amazon DynamoDB]
[Amazon ElastiCache]
[Amazon ElastiCache] Redis QA資料
[Amazon Redshift] 
[Amazon Database Migration Service]

ネットワーキング

資料 読んだ  重要度 
[Amazon VPC]
[Amazon VPC] VPN接続設定 参考資料
[AWS Direct Connect] 
[Amazon Route53]

開発者用ツール

資料 読んだ  重要度 
[AWS CodeCommit]
[AWS CodeBuild]
[AWS CodeDeploy]
[AWS CodePipeline]
[AWS SDK]
[AWS SDK] Java & .NET
[AWS SDK] PHP & Ruby & Boto(Python) & Javascript in Node.js
[AWS SDK] AWS Client side SDK Android & iOS & Javascript
[AWS CLI]
[AWS AWS Tools for Windows Powershell]

管理ツール

資料 読んだ  重要度 
[Amazon CloudWatch]
[AWS CloudFormation]
[AWS CloudTrail]
[AWS Config]
[AWS OpsWorks] AWS OpsWorksのご紹介
[AWS OpsWorks]
[AWS OpsWorks] ハンズオン
[AWS Service Catalog]
[Trusted Advisor] AWS サポート & Trusted Advisor
[Amazon EC2 Systems Manager]

セキュリティ & アイデンティ

資料 読んだ  重要度 
[Identity and Access Management (IAM)] 
[AWS CloudHSM] CloudHSM & Key Management Service
[AWS Key Management Service]
[AWS Directory Service]
[Amazon Inspector]
[AWS WAF]
[AWS Certificate Manager]

分析

資料 読んだ  重要度 
[Amazon EMR(Elastic MapReduce)]
[AWS Data Pipeline]
[Amazon Elasticsearch Service] Amazon CloudSearch & Amazon Elasticsearch Service
[Amazon Kinesis]
[Amazon QuickSight]
[Amazon Athena]

AI

資料 読んだ  重要度 
[Amazon AI]]

IoT

資料 読んだ  重要度 
[AWS IoT]

ゲーム開発

資料 読んだ  重要度 
[Amazon Lumberyard]

モバイルサービス

資料 読んだ  重要度 
[Amazon Cognito]
[Amazon Cognito] Amazon Cognito update
[Amazon Cognito] Amazon Cognito / Amazon Mobile Analytics
[AWS Device Farm]
[Amazon Mobile Analytics] Amazon Cognito / Amazon Mobile Analytics
[Amazon SNS] Amazon SNS/SQS
[Amazon SNS] モバイルプッシュ通知
[Amazon Pinpoint]  

アプリケーションサービス

資料 読んだ  重要度 
[Amazon API Gateway] 
[Amazon AppStream]
[Amazon CloudSearch] Amazon CloudSearch & Amazon Elasticsearch Service
[Amazon Elastic Transcoder]
[Amazon SES]
[Amazon SES] Amazon SES-Easy DKIM 設定サポート資料
[Amazon SQS] Amazon SNS/SQS
[Amazon Simple Workflow Service (SWF)]

エンタープライズアプリケーション

資料 読んだ  重要度 
[Amazon WorkSpaces]
[Amazon WorkDocs]
[Amazon WorkMail]
[Amazon Chime]

その他

資料 読んだ  重要度 
[Cost Explorer]
[AWS Management Console]

補足

重要度の低い資料も読んだ方がいいです。
なぜなら、マネージドサービス自体がAWSの活用事例であり、それらを知ることでシステム設計の勘所が分かるようになるからです。
また、重要度の高い機能との連携についての記載があることもあり、理解が深まります。

続きを読む

【Sophos】AWSに構築したVPNサーバ経由で社内PCにリモートアクセスするにはIPマスカレードを有効にする

はじめに こんにちは植木和樹@上越妙高オフィスです。クラスメソッドではリモートワークが盛んで、多くの人が自宅やコワーキングスペースで仕事をしています。 特に台風の日は交通機関の乱れが予想されるため自宅勤務に切り替え、作業 […] 続きを読む

[IPSec-VPN] クラウド間(GCP⇔AWS)通信

プロローグ

GCP(Google Cloud Platform)とAWS(Amazon Web Service)の間のSite-to-Site VPN通信(クラウド間VPN通信)は、超簡単にできる

  • GCPの「VPN接続」機能とAWSの「VGW(Virtual Private GW)」は、直結可能!
  • Azureの「仮想ネットワークゲートウェイ」とAWSのVGWは、(数年前は)繋げなかった…
    • 確か「どちらが先にグローバルIPアドレスを払い出す?」問題。
    • ARM版では未検証。
  • AWSのようにWindows-VPNを試してみたが、不発…
    • 詳細は(エピローグ中の)「gcpとAWSのNW観点の差異」をご参照。

手順

  1. [gcp] 外部IPアドレス(以下、この値をGIPと呼ぶ)を取得する。

    • AWSのVGWはグローバルIPアドレスが自動的に割り振られる(=Uncontrollable)なので、gcp側でControlする。
  2. [AWS] GIPに相当するCGW(Customer Gateway)を作成する。
  3. [AWS] VGWを作成し、VPCに紐づける。
    • このとき、VPCに紐づいているRouteTableにおいて、VGWの「Route Propagation」を「Yes」にしておくと、「AWS→gcp」のルートがAWS側に自動設定される。
  4. [AWS] SecurityGroupを調整する。
    • gcp側のプライベートNWからの通信を受け付けるべく開ける(テスト用ICMPとか)。
  5. [AWS] 上記のCGWとVGWをツナぐVPN Connection(VPNC)を作成する。
    • 「Routing Options」:まずは敷居の低い「static」で…
    • 「Static IP Prefixes」:gcp側のNWアドレス(CIDR)を指定。
  6. [AWS] VPNCのConfigurationをDownloadする。
    • AWS側グローバルIPアドレス/Pre-Shared-Key(2つずつ)は、AWSが自動割り当てする(=Uncontrollable)。
  7. [gcp] VPN接続を作成する。

    • gcp側のIPアドレスとして「GIP」を設定。
      20170607_VPN接続の設定① - コピー.jpg
    • AWS側がVPNトンネルを2つ用意しているので、トンネル設定は2本分設定。
    • 「IKEバージョン」:「IKEv1」を指定(「IKEv2」だと疎通しない。AWSが未対応?)。
    • 「事前共有シークレット」:AWSが自動割り当てしたPre-Shared-Key値を設定。
    • 「ルーティングオプション」:まずは敷居の低い「静的」で…
    • 「リモートネットワークIPの範囲」:AWS VPCのCIDRを指定。
    • トンネル1本目用の設定
      20170607_VPN接続の設定② - コピー.jpg
    • トンネル2本目用の設定
      20170607_VPN接続の設定③ - コピー.jpg
  8. 「作成」ボタンを押し、下記の画面になればOK!!
    20170607_VPN接続の設定RES.jpg

  9. ICMPで疎通確認のためには、下記を確認:

    • AWS側のRouteTable(Propageted指定なら追加作業なし)
    • AWS側のSecurityGroup
    • gcp側のルート(VPN接続作成時に自動作成されているはずなので、追加作業なし)
    • gcp側のファイアウォールルール(サブNW作っているとハマりがちなので注意)

エピローグ

gcpとAWSのNW観点の差異

  • gcpでは、ひとつのインスタンスは複数のNICを持つことはできない?(ひとつのNW/サブNWにしか収容できない?)
    ⇒複数NIC持つことできます。訂正。
    ⇒複数NICを持たせたうえで、Windows-VPNに再挑戦★

  • gcpインスタンス上でipconfig/ifconfigを実行すると下記の結果が出てプチ衝撃:

ipconfig
C:\>ipconfig
Windows IP Configuration

Ethernet adapter Ethernet:

   Connection-specific DNS Suffix  . : c.xxx.internal
   IPv4 Address. . . . . . . . . . . : 10.xxx.0.100
   Subnet Mask . . . . . . . . . . . : 255.255.255.255
   Default Gateway . . . . . . . . . : 10.xxx.0.1

C:\>
ifconfig
$ ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1460 qdisc pfifo_fast state UP qlen 1000
    link/ether 42:01:0a:8c:00:02 brd ff:ff:ff:ff:ff:ff
    inet 10.xxx.0.2/32 brd 10.140.0.2 scope global dynamic eth0
       valid_lft 80364sec preferred_lft 80364sec
    inet6 fe80::xxxx:xxxx:xxxx:2/64 scope link 
       valid_lft forever preferred_lft forever

⇒サブネットマスクが「/32(IPv4)」「/64(IPv6)」?
⇒全てのインスタンスは、GWインスタンスに直接ぶら下がっている(ハブ&スポーク構成)?

AzureとAWSの間のSite-to-Site VPN通信(クラウド間VPN通信)

  • ぱっと見たところ、Azure側仮想ネットワークゲートウェイにおいて、

    • パブリックIPアドレスは指定できる(「どちらが先にグローバルIPアドレスを払い出す?」問題は解消)。
    • Pre-Shared-Keyが指定可能か不可か、依然調査中…

AWSリージョン間接続を、VGW同士で…

できないですよね。グローバルIPアドレス/Pre-Shared-Keyを自動で割り当てられてしまう(=Uncontrollable)ので★

最後にひとこと

「gcpとAWSの間のSite-to-Site VPN通信」の方が「AWSのリージョン間のSite-to-Site VPN通信」よりもシンプル・早・易だと思いました♪

続きを読む

AWS VPCの料金

AWSのVPCおよびデータ連携に関する基本的な内容をまとめてみたものです。AWSのVPCやデータ連携に関する、Web上にすでにある解説コンテンツをまとめたサイトの抜粋です。
AWS VPCの料金

AWS VPCの料金体系

AWS VPCでは、
・VPNへの接続
・NATゲートウェイの利用
について料金が発生します。

VPNへの接続料金
・VPNに接続した時間について料金が発生します
・接続していた時間が1時間に満たない場合でも、1時間分の料金が課金されます
・VPNに接続して転送されるデータに対して、AWSのデータ転送料が発生します

NATゲートウェイの利用料金
・VPC内にNAT ゲートウェイを作成した場合、NATゲートウェイがプロビジョンされて利用可能であった時間分の料金が請求されます
・NATゲートウェイの利用時間が1時間未満でも、1時間分の料金となります
・NATゲートウェイで処理されたデータ量に対しても、ギガバイト単位で料金の計算が行われます

ただし、Amazon S3、Amazon RDS、Amazon Redshiftなどを利用する場合は、別途料金が請求されます。

料金が発生する接続と料金が発生しない接続

VPCインターネットゲートウェイを経由してAmazon S3などのAWSにアクセスする時はデータ転送料が請求される事はありませんが、VPN接続を経由してAWSのリソースにアクセスするとインターネットデータ転送料金が支払う必要が出て来ます。

Amazon VPCを利用する時は料金の発生する接続の仕方と、無料で使える接続の仕方を意識する事が大切です。

VPCの利用で注意する点

VPN接続に関する料金は利用可能な状態であった時に発生しますので、VPN接続を終了しないと料金が請求されてしまいます。
AWSマネジメントコンソールやCLIなどによって、VPN 接続の状態を確認する事が出来ます。

Amazon EC2などのAWSを利用した時はリソースの発行料金が必要となりますが、VPCのインターネットゲートウェイからAmazon S3などのAWSへアクセスする場合については、データの転送料は発生しません。

続きを読む