CloudGarageの特徴と料金をAWSと比較

CloudGarageとは?

CloudGarage: https://cloudgarage.jp

CloudGarageはNHNテコラス株式会社が提供する定額型パブリッククラウドです。

特徴

  • 月単位の定額課金

    • プランはCPU/RAM/SSDのスペックとインスタンス上限数で決まる
    • 選んだプランに応じたスペックのインスタンスを上限数の範囲で自由に作成・削除できる
  • データ転送が無料・無制限(10Gbps共用・各インスタンスあたり1Gbps制限)
  • ロードバランサーも無料
  • DNSサーバは10ドメインまで無料

基本的には「VPSのような料金体系のクラウド」といった具合でしょうか。請求額はプランの金額から追加されるものがないので、非常にシンプルです。

AWSと比較

CPUやSSDのスペックが不明なので単純比較は難しいのですが、参考までにカタログスペックで簡単に見比べてみましょう。

CloudGarageの無料お試し枠の1GB/BOX3インスタンスは、CPUx1、RAM 1GB、SSD 50GBです。CPUx1、RAM 1GBは、AWSではt2.micro相当です(AWSの無料お試し枠でもある)。両者を比較してみます。

CloudGarage 1GB/BOX3 AWS t2.micro(northeast-1) オンデマンドインスタンス/Linux OSの場合
料金に関する詳細ページ CloudGarage AWS EC2
課金体系 月額固定 インスタンス稼働時間単位での課金
1インスタンスの料金(/h)1 0.66円 $0.016
(2017/08/10時点で約1.76円)
CPU 不明 詳細:T2インスタンスのCPUクレジットについて
バースト機能があり瞬間的なパフォーマンスは高い
インスタンスストレージ SSD 50GBが付属
性能は不明
インスタンスストレージなし(EBSが必須)
永続ボリューム なし EBSが最低1つ必要
汎用SSD50GBの場合 $6/Mo
固定IP なし(追加予定?) EIPが使用可能
インスタンスに関連付けられている場合は無料
ネットワーク料金 無料 インは例外を除いて無料、アウトは最初の1GBは無料で以後段階的にGB辺りの請求
データ転送 10Gbps共用・各インスタンスあたり1Gbps制限 共用ネットワーク(速度の保証なし)
ロードバランサー 無料 $0.027/実行時間+$0.008/GB
イメージ イメージ10個まで無料 保存先・データ量に依存(無料枠で済む場合もままあるが一概には言えない)
CLI API公開予定 CLI有り

なお、EC2にはリザーブドインスタンスというものがあり、1年または3年の契約をすることで料金が割引されます。期間や支払い方法にも依りますが、年間で40-60%ほど割引されます。詳細はこちらを見てください。

所感

ここからは個人の感想です。

料金体系が非常にシンプルで良い

AWSは請求額を算出するのがとにかくめんどくさいです・・・。CloudGarageの場合は月額固定で他に料金がかからないので見積もりが楽です。多くの場合1インスタンスだけってことはまずないでしょうし、最低でも3インスタンスの契約になるのはあまり気にはならない気がします。

「料金とかめんどくさいことを考えたくない個人の技術者」とかのニーズにすごく合っているのではないでしょうか。VPSっぽさがあります。

月単位での契約なので、常時稼働サーバは割安の可能性が高い

言うまでもないですが、AWSを含めた様々なクラウドベンダーのオンデマンドインスタンスをフル稼働するよりかなり安いです。t2.microですら1ヶ月フル稼働すると3500円くらいになります。1インスタンスで。

AWSのリザーブドインスタンスは最低でも年契約な上、途中でインスタンスタイプを変えられないクラスもあります。月単位での契約ですので途中でスケールしたくなっても対応しやすいですし、オンデマンドよりも安いので、ある程度要求スペックが安定しているような案件ではいい感じに使えるのではないでしょうか。

性能の詳細が分からない件

CPUやSSDがどういった性能なのか公式で言及されていません。

AWSにはストレージへの最適化インスタンスや、コンピューティングへ最適化されたインスタンスなど、様々なラインナップがあり、詳細なハードウェア要件を定めています。故に、要件に合わせて最適なインスタンスを選べます。要求がシビアな場合はCloudGarageよりもAWSの方がいいでしょう。

ただ、要求スペックとかなくてとりあえずCPUとSSDとメモリさえ最低限あれば細かいことを気にしない、というのなら関係ないです。少なくとも下手なレンタルサーバを借りてホームページ作るくらいなら1GB/BOX3の方が確実に安くて便利だと思います。

複合BOXが欲しい

超個人的な意見ですが、同じスペックのまとまりのBOXじゃなくて、BOX内のインスタンスごとにスペックを変えられたらいいなあと思いました。痒いところに手が届かない印象です。雑な例ですが、8GB/BOX10とかでサービス走らせてて、監視用のインスタンスを走らせたい時に、4Core/8GB/200GBとか要らんじゃないですか。かといって別途1GB/BOX3で新しくインスタンス借りるのもなあ・・・って感じです。

料金体系がシンプルな反面、柔軟性に乏しい感じです。

とりあえず試してみては?

1GB/BOX3が無料で試せるので、privateなgit鯖とか、VPNとか、余裕があればマイクロサービスでも構築してみたい感じです。


  1. 1ヶ月辺り31日で計算・税抜き 

続きを読む

[AWS] Point-to-Site VPN接続 (powered by VyOS)

Abstract

  • 「Windows10/Android等のVPN接続標準機能を使って、AWSにリモートアクセスVPN接続をしたい」という話です。
  • 今回はAWS側のVPNサーバとして「VyOS」を採用。
  • あらかじめ申し上げておきます。この方式はまだ成功しておりません世界中の方々が悩んでいる模様。
  • Windows7のレジストリ変更Microsoftサイトも効かず(ただ、これは別の方式(近日公開)で絶大な効果をもたらす!!)
  • ひとつトリッキーなソリューションがあるが、まだ未トライ(グローバルIPをプライベートIPのように使う(?)点がグレーに見える)
  • なんとなく、「Double NAT」というルート原因が立ちはだかっていそう…
  • また、VyOSは「異なるユーザによる同時VPN接続ができない」説があり、Point-to-Site VPNとしては、小生はOpenVPNやWindowsVPNやSoftEtherを推奨する次第。(小生はやったことないですが、strongSwanも候補?)
  • もの凄い猛者様は、CentOS上にL2TPを組み上げてしまうみたいです。

ここまでやって、詰んでいます。。。

この辺り:

を参考にさせていただきつつ、下記の設定をしましたが、成功しておりません…

configure
set system time-zone Asia/Tokyo

set interfaces ethernet eth0 address '10.0.11.250/24'
set interfaces ethernet eth1 address '10.0.12.250/24'

set vpn ipsec ipsec-interfaces interface eth0
set vpn ipsec nat-traversal enable
set vpn ipsec nat-networks allowed-network 0.0.0.0/0

set vpn l2tp remote-access outside-address 10.0.11.250 # Elastic IPアドレスも試してみた
set vpn l2tp remote-access outside-nexthop 0.0.0.0
(delete vpn l2tp remote-access outside-nexthop)

set vpn l2tp remote-access client-ip-pool start 192.168.110.1
set vpn l2tp remote-access client-ip-pool stop 192.168.110.100
set vpn l2tp remote-access ipsec-settings authentication mode pre-shared-secret
set vpn l2tp remote-access ipsec-settings authentication pre-shared-secret XXXXXXXX
set vpn l2tp remote-access authentication mode local
set vpn l2tp remote-access authentication local-users username XXXXXXXX password XXXXXXXX

set nat source rule 110 outbound-interface 'eth0'
set nat source rule 110 source address '192.168.110.0/24'
set nat source rule 110 translation address masquerade
(delete nat source rule 110)

こんなエラーが発生中

どうやっても、VyOSサーバから下記のエラーが消し去れません…

messages
MMM DD HH:MM:45 VyOS-AMI pluto[3082]: packet from XXX.XXX.XXX.XXX:500: ignoring Vendor ID payload [01528bbbc00696121849ab9a1c5b2a5100000001]
MMM DD HH:MM:45 VyOS-AMI pluto[3082]: packet from XXX.XXX.XXX.XXX:500: received Vendor ID payload [MS NT5 ISAKMPOAKLEY 00000009]
MMM DD HH:MM:45 VyOS-AMI pluto[3082]: packet from XXX.XXX.XXX.XXX:500: received Vendor ID payload [RFC 3947]
MMM DD HH:MM:45 VyOS-AMI pluto[3082]: packet from XXX.XXX.XXX.XXX:500: ignoring Vendor ID payload [draft-ietf-ipsec-nat-t-ike-02_n]
MMM DD HH:MM:45 VyOS-AMI pluto[3082]: packet from XXX.XXX.XXX.XXX:500: ignoring Vendor ID payload [FRAGMENTATION]
MMM DD HH:MM:45 VyOS-AMI pluto[3082]: packet from XXX.XXX.XXX.XXX:500: ignoring Vendor ID payload [MS-Negotiation Discovery Capable]
MMM DD HH:MM:45 VyOS-AMI pluto[3082]: packet from XXX.XXX.XXX.XXX:500: ignoring Vendor ID payload [Vid-Initial-Contact]
MMM DD HH:MM:45 VyOS-AMI pluto[3082]: packet from XXX.XXX.XXX.XXX:500: ignoring Vendor ID payload [IKE CGA version 1]
MMM DD HH:MM:45 VyOS-AMI pluto[3082]: "remote-access-mac-zzz"[107] XXX.XXX.XXX.XXX #66: responding to Main Mode from unknown peer XXX.XXX.XXX.XXX
MMM DD HH:MM:45 VyOS-AMI pluto[3082]: "remote-access-mac-zzz"[107] XXX.XXX.XXX.XXX #66: Oakley Transform [AES_CBC (256), HMAC_SHA1, ECP_384] refused due to strict flag
MMM DD HH:MM:45 VyOS-AMI pluto[3082]: "remote-access-mac-zzz"[107] XXX.XXX.XXX.XXX #66: Oakley Transform [AES_CBC (128), HMAC_SHA1, ECP_256] refused due to strict flag
MMM DD HH:MM:45 VyOS-AMI pluto[3082]: "remote-access-mac-zzz"[107] XXX.XXX.XXX.XXX #66: Oakley Transform [AES_CBC (256), HMAC_SHA1, MODP_2048] refused due to strict flag
MMM DD HH:MM:45 VyOS-AMI pluto[3082]: "remote-access-mac-zzz"[107] XXX.XXX.XXX.XXX #66: Oakley Transform [3DES_CBC (192), HMAC_SHA1, MODP_2048] refused due to strict flag
MMM DD HH:MM:45 VyOS-AMI pluto[3082]: "remote-access-mac-zzz"[107] XXX.XXX.XXX.XXX #66: NAT-Traversal: Result using RFC 3947: both are NATed
MMM DD HH:MM:45 VyOS-AMI pluto[3082]: "remote-access-mac-zzz"[107] XXX.XXX.XXX.XXX #66: Peer ID is ID_IPV4_ADDR: 'ZZZ.ZZZ.ZZZ.ZZZ'
MMM DD HH:MM:45 VyOS-AMI pluto[3082]: "remote-access-mac-zzz"[108] XXX.XXX.XXX.XXX #66: deleting connection "remote-access-mac-zzz" instance with peer XXX.XXX.XXX.XXX {isakmp=#0/ipsec=#0}
MMM DD HH:MM:45 VyOS-AMI pluto[3082]: "remote-access-mac-zzz"[108] XXX.XXX.XXX.XXX:4500 #66: sent MR3, ISAKMP SA established
MMM DD HH:MM:46 VyOS-AMI pluto[3082]: "remote-access-mac-zzz"[108] XXX.XXX.XXX.XXX:4500 #66: cannot respond to IPsec SA request because no connection is known for GGG.GGG.GGG.GGG/32===YYY.YYY.YYY.YYY:4500[YYY.YYY.YYY.YYY]:17/1701...XXX.XXX.XXX.XXX:4500[ZZZ.ZZZ.ZZZ.ZZZ]:17/%any===ZZZ.ZZZ.ZZZ.ZZZ/32
MMM DD HH:MM:46 VyOS-AMI pluto[3082]: "remote-access-mac-zzz"[108] XXX.XXX.XXX.XXX:4500 #66: sending encrypted notification INVALID_ID_INFORMATION to XXX.XXX.XXX.XXX:4500
MMM DD HH:MM:47 VyOS-AMI pluto[3082]: "remote-access-mac-zzz"[108] XXX.XXX.XXX.XXX:4500 #66: Quick Mode I1 message is unacceptable because it uses a previously used Message ID 0x01000000 (perhaps this is a duplicated packet)
MMM DD HH:MM:47 VyOS-AMI pluto[3082]: "remote-access-mac-zzz"[108] XXX.XXX.XXX.XXX:4500 #66: sending encrypted notification INVALID_MESSAGE_ID to XXX.XXX.XXX.XXX:4500
MMM DD HH:MM:48 VyOS-AMI pluto[3082]: "remote-access-mac-zzz"[108] XXX.XXX.XXX.XXX:4500 #66: Quick Mode I1 message is unacceptable because it uses a previously used Message ID 0x01000000 (perhaps this is a duplicated packet)
MMM DD HH:MM:48 VyOS-AMI pluto[3082]: "remote-access-mac-zzz"[108] XXX.XXX.XXX.XXX:4500 #66: sending encrypted notification INVALID_MESSAGE_ID to XXX.XXX.XXX.XXX:4500
MMM DD HH:MM:51 VyOS-AMI pluto[3082]: "remote-access-mac-zzz"[108] XXX.XXX.XXX.XXX:4500 #66: Quick Mode I1 message is unacceptable because it uses a previously used Message ID 0x01000000 (perhaps this is a duplicated packet)
MMM DD HH:MM:51 VyOS-AMI pluto[3082]: "remote-access-mac-zzz"[108] XXX.XXX.XXX.XXX:4500 #66: sending encrypted notification INVALID_MESSAGE_ID to XXX.XXX.XXX.XXX:4500
MMM DD HH:MM:58 VyOS-AMI pluto[3082]: "remote-access-mac-zzz"[108] XXX.XXX.XXX.XXX:4500 #66: Quick Mode I1 message is unacceptable because it uses a previously used Message ID 0x01000000 (perhaps this is a duplicated packet)
MMM DD HH:MM:58 VyOS-AMI pluto[3082]: "remote-access-mac-zzz"[108] XXX.XXX.XXX.XXX:4500 #66: sending encrypted notification INVALID_MESSAGE_ID to XXX.XXX.XXX.XXX:4500
MMM DD HH:MM:13 VyOS-AMI pluto[3082]: "remote-access-mac-zzz"[108] XXX.XXX.XXX.XXX:4500 #66: Quick Mode I1 message is unacceptable because it uses a previously used Message ID 0x01000000 (perhaps this is a duplicated packet)
MMM DD HH:MM:13 VyOS-AMI pluto[3082]: "remote-access-mac-zzz"[108] XXX.XXX.XXX.XXX:4500 #66: sending encrypted notification INVALID_MESSAGE_ID to XXX.XXX.XXX.XXX:4500
MMM DD HH:MM:28 VyOS-AMI pluto[3082]: "remote-access-mac-zzz"[108] XXX.XXX.XXX.XXX:4500 #66: Quick Mode I1 message is unacceptable because it uses a previously used Message ID 0x01000000 (perhaps this is a duplicated packet)
MMM DD HH:MM:28 VyOS-AMI pluto[3082]: "remote-access-mac-zzz"[108] XXX.XXX.XXX.XXX:4500 #66: sending encrypted notification INVALID_MESSAGE_ID to XXX.XXX.XXX.XXX:4500
MMM DD HH:MM:43 VyOS-AMI pluto[3082]: "remote-access-mac-zzz"[108] XXX.XXX.XXX.XXX:4500 #66: received Delete SA payload: deleting ISAKMP State #66
MMM DD HH:MM:43 VyOS-AMI pluto[3082]: "remote-access-mac-zzz"[108] XXX.XXX.XXX.XXX:4500: deleting connection "remote-access-mac-zzz" instance with peer XXX.XXX.XXX.XXX {isakmp=#0/ipsec=#0}
MMM DD HH:MM:43 VyOS-AMI pluto[3082]: packet from XXX.XXX.XXX.XXX:500: ignoring Vendor ID payload [01528bbbc00696121849ab9a1c5b2a5100000001]
MMM DD HH:MM:43 VyOS-AMI pluto[3082]: packet from XXX.XXX.XXX.XXX:500: received Vendor ID payload [MS NT5 ISAKMPOAKLEY 00000009]
MMM DD HH:MM:43 VyOS-AMI pluto[3082]: packet from XXX.XXX.XXX.XXX:500: received Vendor ID payload [RFC 3947]
MMM DD HH:MM:43 VyOS-AMI pluto[3082]: packet from XXX.XXX.XXX.XXX:500: ignoring Vendor ID payload [draft-ietf-ipsec-nat-t-ike-02_n]
MMM DD HH:MM:43 VyOS-AMI pluto[3082]: packet from XXX.XXX.XXX.XXX:500: ignoring Vendor ID payload [FRAGMENTATION]
MMM DD HH:MM:43 VyOS-AMI pluto[3082]: packet from XXX.XXX.XXX.XXX:500: ignoring Vendor ID payload [MS-Negotiation Discovery Capable]
MMM DD HH:MM:43 VyOS-AMI pluto[3082]: packet from XXX.XXX.XXX.XXX:500: ignoring Vendor ID payload [Vid-Initial-Contact]
MMM DD HH:MM:43 VyOS-AMI pluto[3082]: packet from XXX.XXX.XXX.XXX:500: ignoring Vendor ID payload [IKE CGA version 1]
MMM DD HH:MM:43 VyOS-AMI pluto[3082]: "remote-access-mac-zzz"[109] XXX.XXX.XXX.XXX #67: responding to Main Mode from unknown peer XXX.XXX.XXX.XXX
MMM DD HH:MM:43 VyOS-AMI pluto[3082]: "remote-access-mac-zzz"[109] XXX.XXX.XXX.XXX #67: Oakley Transform [AES_CBC (256), HMAC_SHA1, ECP_384] refused due to strict flag
MMM DD HH:MM:43 VyOS-AMI pluto[3082]: "remote-access-mac-zzz"[109] XXX.XXX.XXX.XXX #67: Oakley Transform [AES_CBC (128), HMAC_SHA1, ECP_256] refused due to strict flag
MMM DD HH:MM:43 VyOS-AMI pluto[3082]: "remote-access-mac-zzz"[109] XXX.XXX.XXX.XXX #67: Oakley Transform [AES_CBC (256), HMAC_SHA1, MODP_2048] refused due to strict flag
MMM DD HH:MM:43 VyOS-AMI pluto[3082]: "remote-access-mac-zzz"[109] XXX.XXX.XXX.XXX #67: Oakley Transform [3DES_CBC (192), HMAC_SHA1, MODP_2048] refused due to strict flag
MMM DD HH:MM:43 VyOS-AMI pluto[3082]: "remote-access-mac-zzz"[109] XXX.XXX.XXX.XXX #67: NAT-Traversal: Result using RFC 3947: both are NATed
MMM DD HH:MM:43 VyOS-AMI pluto[3082]: "remote-access-mac-zzz"[109] XXX.XXX.XXX.XXX #67: Peer ID is ID_IPV4_ADDR: 'ZZZ.ZZZ.ZZZ.ZZZ'
MMM DD HH:MM:43 VyOS-AMI pluto[3082]: "remote-access-mac-zzz"[110] XXX.XXX.XXX.XXX #67: deleting connection "remote-access-mac-zzz" instance with peer XXX.XXX.XXX.XXX {isakmp=#0/ipsec=#0}
MMM DD HH:MM:43 VyOS-AMI pluto[3082]: "remote-access-mac-zzz"[110] XXX.XXX.XXX.XXX:4500 #67: sent MR3, ISAKMP SA established
MMM DD HH:MM:43 VyOS-AMI pluto[3082]: "remote-access-mac-zzz"[110] XXX.XXX.XXX.XXX:4500 #67: cannot respond to IPsec SA request because no connection is known for GGG.GGG.GGG.GGG/32===YYY.YYY.YYY.YYY:4500[YYY.YYY.YYY.YYY]:17/1701...XXX.XXX.XXX.XXX:4500[ZZZ.ZZZ.ZZZ.ZZZ]:17/%any===ZZZ.ZZZ.ZZZ.ZZZ/32
MMM DD HH:MM:43 VyOS-AMI pluto[3082]: "remote-access-mac-zzz"[110] XXX.XXX.XXX.XXX:4500 #67: sending encrypted notification INVALID_ID_INFORMATION to XXX.XXX.XXX.XXX:4500
MMM DD HH:MM:43 VyOS-AMI pluto[3082]: "remote-access-mac-zzz"[110] XXX.XXX.XXX.XXX:4500 #67: received Delete SA payload: deleting ISAKMP State #67
MMM DD HH:MM:43 VyOS-AMI pluto[3082]: "remote-access-mac-zzz"[110] XXX.XXX.XXX.XXX:4500: deleting connection "remote-access-mac-zzz" instance with peer XXX.XXX.XXX.XXX {isakmp=#0/ipsec=#0}

一旦、Step back…また戻ってくる日は来るか???
(戻ってきたときのための、備忘録★)

続きを読む

アップルに続きアマゾンも中国に「屈服」、ネット規制回避のVPN使用やめるよう顧客に指示―米メディア

米アマゾン・ドット・コムのクラウドサービス「アマゾン・ウェブ・サービス(AWS)」の中国現地パートナーである北京光環新網科技(Sinnet)はこのほど、当局による … 続きを読む

カテゴリー 未分類 | タグ

Aurora小ネタ/MySQLレプリケーションでのしくじりポイント

先に、オンプレMySQL~RDS for MySQL/Aurora間のレプリケーションにおけるタイムゾーン設定という記事を書きましたが、それ以外にもAuroraでのMySQLレプリケーションでいくつか問題に遭遇しましたので、書き残しておきます。

しくじり1. そもそもレプリケーションが開始できない

Auroraがマスターになるケースで、

  • バイナリログの出力をON(MIXEDまたはROW)にした
  • バイナリログの保存期間も設定した(mysql.rds_set_configurationプロシージャで)
  • スレーブに対してREPLICATION SLAVE・REPLICATION CLIENT権限を付与した
  • スレーブ側でCHANGE MASTER TOコマンドはエラーにならずに通った

にもかかわらず、スレーブ側でSTART SLAVE後にレプリケーションが開始されない場合、セキュリティグループやNACL、ルートテーブル、(オンプレ環境にレプリケーションする場合)オンプレ側のファイアーウォールポリシーなどのネットワークの問題ばかり気にしがちですが(実際、そちらに原因があることも多い)、

「MySQLのレプリケーションで設定可能なマスターホスト名は60文字までである」

という制限に引っかかっていることもあります。

東京リージョンでAuroraのクラスターエンドポイント(IPアドレスではなくFQDN指定で)を使う場合、

  • 読み書き可能 : 【クラスター識別子】.cluster-XXXXXXXXXXXX.ap-northeast-1.rds.amazonaws.com
  • 読み取りのみ : 【クラスター識別子】.cluster-ro-XXXXXXXXXXXX.ap-northeast-1.rds.amazonaws.com

ということで、クラスター識別子以外の文字数が、前者で54文字、後者で57文字もあります。

つまり、「クラスター識別子を極端に短く設定しないと、クラスターエンドポイントをMASTER_HOSTに指定できない」(指定できるけど動かない)ということになります。

このクラスターエンドポイント、パブリック公開しない(=プライベートIPアドレスが返る)場合でも外部から引くことができるので(RFC的にどうなの?というツッコミは一旦置いておいて)、オンプレ環境のスレーブサーバーとVPN等経由でレプリケーションする場合にも便利なのですが、こういうトラップもありますので、注意しましょう。

なお、最初のほうにさらっと、

  • バイナリログの保存期間も設定した(mysql.rds_set_configurationプロシージャで)

と書きましたが、この設定を忘れると(何事もなくレプリケーションを開始できてしまうのですが)予期せぬタイミングでレプリケーションが続行不能になる可能性があるため、こちらも注意が必要です(単位は日数ではなく時間=hours)。

しくじり2. レプリケーションが途中で止まる

こちらも、原因は色々ありますが(レプリケーションを開始するときのマスター/スレーブの状態に差があった、読み込むバイナリログの開始ポジションを誤った、マスター側/スレーブ側でアクセス権限に差があるのに、うっかりマスター側にしか存在しないユーザーを変更/削除しようとした、など)、

「Auroraでは、MySQL(5.6)の既知のバグが全てフィックスされているわけではない」

点に注意が必要です。

私の場合、MySQLのBug #69861(MySQL 5.6.15でBug #17234370とともにフィックス)に引っかかって、

[1]オンプレ ⇒ [2]Aurora ⇒ [3]オンプレ

の環境で、[3]オンプレへのレプリケーション時に「LAST_INSERT_ID()の実行結果が0になる」不具合に遭遇しました。

[2]のAuroraでバイナリログの形式をMIXEDからROWに変更することで解決しましたが、このようなレアなユースケース(まさか、AuroraをMySQLレプリケーションの「中継サーバー」に使うとは、AWSの中の人も思わない…?)で問題になるようなバグはフィックスされていない可能性があるので、本家MySQLのChangelogとAuroraのバグフィックス情報を見比べて確認しておいたほうが良いでしょう。

続きを読む

AWS 認定ソリューションアーキテクト – プロフェッショナル を受験した感想

先日、AWS 認定ソリューションアーキテクト – プロフェッショナル を受験してきました。

結果は残念ながらの不合格ですが、今後受験する人の参考になればと簡単に試験の内容と対策などをまとめられたらと思います。

試験概要

詳細な内容は 公式サイトにあるのですが、簡単にまとめると、AWS の各サービスを使って、高い可用性・耐障害性なアーキテクチャを与えられた要件に基づいて選択・設計できるかを確認する試験です。

勉強期間

1ヶ月ぐらいです。
だいたい仕事の前と終わり、土日は気が向いたら喫茶店とかで勉強するスタイルでした。

勉強法

この資格の一番辛いところは参考書がないとこです。
そのため、AWSが提供している、ホワイトペーパーだったり、BlackBelt、各サービスのドキュメントを中心に読み込みつつ、デザインパターン周りの本を読んで各サービスの仕様と使い所を覚えていきました。

その他にサンプル問題と模擬試験も合わせて受験し、実際にどういった問題や時間配分で問題を解いていけばいいかも確認。

試験当日

当日は早めに試験会場付近の喫茶店に到着して、軽く復習してからのレッドブルで頭をキレキレにして試験に臨みました。

試験結果

総合スコア: 53% 

トピックレベルのスコア: 

1.0 High Availability and Business Continuity: 58% 

2.0 Costing: 50% 

3.0 Deployment Management: 62% 

4.0 Network Design: 50% 

5.0 Data Storage: 58% 

6.0 Security: 43% 

7.0 Scalability & Elasticity: 53% 

8.0 Cloud Migration & Hybrid Architecture: 57% 

どの分野も平均的に 50% ですが、よく見るとデプロイ周りが他より少しできているのは、実際に業務でデプロイ関連のサービスを使ったことがあるのが要因の一つかもしれません。

ちなみに、合格ラインに関してはAWS側からは特別公表していないようなので正確な合格ラインはわからないのですが、いろんな人の受験したブログや記事を読むとどうやら 65% あたりが合格ラインのようです。

試験の振り返り

試験内容は模擬試験とほぼ変わらず(似た問題もチラホラ)、択一選択問題、複数選択問題、状況把握問題となっていて、内容も各AWSサービスの詳細な仕様を問うのではなく、その仕様を理解した上で、求められている課題をどうやって解決できるのかを問う問題ばかりでした。そこは、やはりアソシエイトの試験とは大きく違うところだと思います。

その他に試験全体の傾向として、オンプレとAWSの連携が絡む問題が多く (VPNやダイレクトコネクトなど)、ネットワークの知識が弱いと少し苦戦する印象でした。- 自分がそう(悲)

まとめ

なんでもそうですが、結果ではなくそこに到達する過程が大事だと思っています。(言い聞かせてます)
不合格になってしまったのは気持ち的にも金銭的にもかなり辛いですが、また機会があればリベンジして合格を勝ち取りたいと思います。

続きを読む

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の活用事例であり、それらを知ることでシステム設計の勘所が分かるようになるからです。
また、重要度の高い機能との連携についての記載があることもあり、理解が深まります。

続きを読む