sidetech

インフラエンジニアの寄り道メモ。

Fortigate200D-v5.4.4 れびゅう

Fortigate54threatmap

先日?はFortigate100Dで遊んでいましたが、今回は200Dで、バージョンが5.4.4です。
前回と違ってGUIが刷新されたようなんですが・・・。
ちょっと使いにくいっすね。[E:coldsweats01]
 
今回は、site to site VPNの機能も試しました。Fortigateで初めてのVPNAWSとだなんて・・・。結構悩みました。何故かって・・・AWSからもらえるConfigでどーしてもエラーが出てしまう部分が2か所あったからです・・・[E:coldsweats01]
おかげでCLIの癖が少し分かりました。ハマると色々と試すから覚えますね。やっぱりマニュアル通りにやるより最初はトライ&エラーを繰り返す方が覚えが良いです[E:coldsweats01]
一番ビツクリしたのはCLIで「full-configuration」したときですかね・・・。どんだけ~っていうぐらい長い・・・統合しすぎじゃ・・・。
 
しかし、FortigateはFortiViewに力を入れているようで、通信ログは見やすいですね。
画像のThreatMapも面白いですね。常にどこからか不正な通信を受けているのが判りやすいです。

そういえば、AWSからFortigateのConfigを取るときに、CLIGUIと2つ取れるんですが・・・ちゃんと5.0+ってやつなんですけどね・・・うーん(゜-゜)
 
どっちもチャレンジしてみましたが、結果で言うとCLIが楽ですね[E:coldsweats01]
GUIの方はアプローチをテキスト記述してくれているのですが、名称がかみ合っていなかったりです。たぶん・・・バージョン5.?のどこかでGUIが刷新されたんですかね。
GUIでやっても一部CLIでやらなくちゃならん部分があって、結局なんだよっってなります[E:coldsweats01]
 
AWSから頂くConfigは読み替え必須なので、慣れていないときついスね。。。
 
コマッタのは、「set mtu」が指示通り入らない。IPSecのTunnelにset mtuを流し込めというのですが、流し込めない。インターフェースに対してだったらset mtuが出来ました。
あとは、BGPで使うrouter prefix-listでroute-idが入らない・・・という2か所が上手く行かなかったんですが、なんとかVPNは張れました・・・。
 
あとそうそう、GUIのConfig指示にはないのがCLI版にはありました。
BGPのところなのですが、「config network」ってのが出てきます。
これはAWS側のサブネット情報をぶち込む感じなんですが、こちらはroute-idが投入出来ました。
(GUI版にも指示がありました・・・)
 
なので?、FortigateでAWSVPN張る場合はCLIのConfigの方が良さげです。
ただ、CLI版でもPolicyの記述でPolicyIDがIPSec Tunnel #1の設定時とIPSec Tunnel #2の設定時で、なぜか同じPolicyIDを設定してしまう内容になっているので(というか読み替えろと言われているので)、PolicyIDにはお気を付けを(とおもったらこれはこれで間違いじゃない方法が・・・17/05/28)。
 
IPSec Tunnel #1での参考
config firewall policy
edit 5
set srcintf "vpn-xxxxxxx-0"
set dstintf internal  #「internal」も読み替え必須。Internal用インターフェースを指定の意
set srcaddr all
set dstaddr all
set action accept
set schedule always
set service ALL
next
end
 
IPSec Tunnel #2での参考
 
config firewall policy
edit 5
set srcintf "vpn-xxxxxxx-1"
set dstintf internal
set srcaddr all
set dstaddr all
set action accept
set schedule always
set service ALL
next
end
 
「edit 5」ってのがPolicy番号なんで・・・。
まだFortigateの癖が判っていないけど、Policy番号って飛び番が出来なさそうなんだよね。。。出来るのかな・・・僕がやったときは上書きしやがったんでアレれって思ったんだけど。
 
そいあFortigateのConfigなげーなぁ・・・って思っていたら部分的にshowが使えて必要分の表示してくれるから、このshowの使い方は少しだけ気に入った。
 
あとはNATの扱い方の感覚というか基本的なふるまいがSSGのようでそうでないようで・・・慣れるのにちょっと暇掛かりそう。
 
こうちょっとトライ&エラーやらないと身体に馴染まないね。も少し頑張る。
 
 

Cisco Meraki vMX100 ( Virtual MX for AWS )

と・・・GW明け・・・久々にMerakiネタです。

 
AWSってVPN張ろうとすると結構大変なんすよね。私は慣れてしまいましたが…BGPの設定とかムキャーってなります(慣れてないん)。
 
そしたらMerakiのお知らせでvMX100が出るんで宜しくねってのが・・・来ました・・・んで、
 
取りあえずどんなもんかみてみるか・・・って速攻で特攻してみました。[E:coldsweats01]
 
 
 
Vmx10001
AWSコンソールのEC2のインスタンス作成でマーケットプレイスMerakiで検索すると出てきます。m4.largeを使うのね・・・。
んー・・・もしかして通常のMX100のライセンスと違うのかな・・・ソフトウェア費用が・・・0円になっちゃってますね・・・。これってハードウェアが仮想アプライアンスの時に幾らになる・・・ていう価格設定の場所のはずですが・・・。と調べたら毎時AWSライセンス無しってなってますね。だいぶ思い切ってますね。クラウド利用ライセンスもMX100と同じ価格ってことみたいですね・・・ほほぉ。
 
実はライセンスの相談をせずにセットアップに突入したんで、まだ幾らなのかしらないんす[E:coldsweats01] MX100は扱っているので調べればわかるんだけどね・・・。
 
まーとりあえずデプロイしてしまえー(本来のセットアップ手順ではありません)。
Vmx10002
とりあえず動作させたった。でもMerakiのシリアルもってない~。
 
Merakiダッシュボード側からアプローチかけてみればいいんかな・・。
新しいネットワークをクリエイトしてセキュリティアプライアンスでとにかく作る。
Vmx10003
お~。書いてありました。「先にライセンス入手しろやタコ。ライセンス投入してから来やがれこんちくしょう。」と書かれていますね。
多分、ライセンスを投入すると、[add vMX]というボタンが現れるんだと思います。
 
まだ想像だけど・・・AWSで可用性で構築する場合どうするんだろうね。
通常だと、MXを2台購入してもライセンスは冗長化の場合は1つで済むんです。
AWSはAZの考えがあるので、出来ればAZ-aとAZ-cに配置してHA組みたいですよね。
 
 
うーん・・・流れはわかったけど(先にインストレーションガイド見ろ)
冗長化出来るのかなぁ…。
 
5月16日(17日だそうです)にMXやらMVやらMSやらの新機能とか新モデル発表のウェビナーがAM9:00からあるようなので、興味のある方は申し込みしてみると良いかも。
私は・・・予定が詰まってて参加できない・・・orz...。
 
この仮想アプライアンスとなったvMX100による最大メリットはAutoVPN環境にAWSが加わるってことですね。
AWS標準のVPN機能は結構マゴマゴするのですが、これならイージーになるね。
うーん、どんな感じに動くのか見たーいっ[E:bearing]
 
 

Juniper SRX320でAWSとDirectConnect

うーん・・・AWS・・・ムズカシイネ。

そもそもBGPの書き方がアヤシイ私が、なんとか今まで、インターネットVPNで繋いできた状況で・・・DirectConnectなんて出来るのかしら・・・って思っていたんですが・・・
Awsdc
出来ました[E:coldsweats01]
ちなみに棚ぼたじゃないですが・・・
Srx320bgp
アクティブをDirectConnectにしてインターネットVPN経路をバックアップにする設計をしたいなぁ・・・と思っていたら・・・そうなりました・・・[E:coldsweats02]
ただ、問題はですね・・・
「flexible-vlan-tagging」が冗長化環境だと入らない・・・orz...
SRX320を冗長化してrethインターフェースで組んでいるのですが・・・どうやらrethは対応していないぽいと・・・。
いあだってさ?誰もそんな事教えてくれないんだってば・・・[E:crying]
AWS側で少し設定して機器のConfigをゲットして初めて知ったんだってば...( = =) トオイメ
flexible-vlan-taggingってのは、どうやらDualでTagVLANを解釈するモードっぽいんですが・・・そもそもそれって何?って感じっす。[E:coldsweats01]
散々VLANやってきたのに知らないVLANが出てきたよ・・・とほほ。
vlan-tags outer 0x8100.222 inner 0x8100.221;
なんじゃこれは・・・[E:wobbly]
でもね、AWSからのConfigを見る限りでは必要そうに感じないの・・・[E:despair]
でもきっと何処かで上手く行かなくなるんだろうな・・・。
とりあえず、今回で、なんとなく流れは読めたので、今度詳細を掲載します。
って、需要あるのかな。[E:coldsweats01]
しかし、仮想操作と物理操作ってなんとも不思議。
今回は先にインターネットVPNベースで苦労していた甲斐があったんでスンナリ行ったのかもねぇ・・・。ただMicrosoft Azuleでの接続時にも「flexible-vlan-tagging」って言葉が出てくるんで、rethインターフェースは諦めたほうがいいんだろうなぁ・・・。
もうちっと研究しまっす。今回は急拵えの間に合わせなんで。
つか、評価せねばならないFWががが・・・こいつもはよやっつけねば・・・[E:bearing]

Juniper SRX320とAWSでVPN接続-その2

今日も昨日の続きです。
最近Arduinoをいじれていないのですが、結局週末は機器には触っている日々です。

VPNは張れてたんですけどね・・・対象となるEC2にpingが届かないんですよ。

これはあっしがBGPを良く分かっていないからだな・・・と言う事で継続で今日はトライアンドエラーです。
結構アレンジしないと駄目なんですね。色々書き換えましたよ・・・。壊した構成を消すのもめんどくさい。それは明日にします。
今日は昼ぐらいから始めたんですが・・・SRXのナレッジ見たりBGPをなんちゃらを今勉強したり・・・格闘しつつ・・・タイムアップ。何かが足りない。
自宅に戻って・・・世界の果てまでイッテQを見てからリモートで会社に潜り込んで、SRXをじ~っと眺めていて、ポリシーにログを取れるようにしたのにログにICMPが乗っかってこないことに少しイライラしていました。
trustからuntrustに抜ける通信を他のセグメントでやってみると記録される。
でも対象のセグメントの記録が残らない。
[E:flair]もしかしてtrust to trustか。と思ってポリシーを作ったら・・・ICMP通りました[E:crying]
実はついさっき、上手くいきました[E:coldsweats02]
わたくし、結構1時間ぐらいハマっていることから離れるとカンが冴える時あるんです[E:coldsweats01]
でも中々そうなれないのが難しい所・・・[E:despair]
一通りの知能を絞りきってからじゃないと、このカンの効果が出ないのも難しい所[E:wobbly]
AWSから提供されるコンフィグもBGPの広告が0.0.0.0/0になっているんで、そこもちゃんとアレンジしてやらんといけないってのは日中には分かっていたんでアレンジしたりSRX側のStatic Routeもちゃんと書いてあげることで、AWS側に動的ルートが自動的に追加されていくところもわかりましたが・・・まさかSRXのポリシーとは・・・とほほ。
詳細は、まだVPNを組む機会がまだまだあるのでその時にキャプチャーするとして、とりあえずなんとかなりました。[E:coldsweats01]
こうやってハマれるのも本番稼働前の検証環境(ほぼ本番状態だけど)だからだし、ハマっておかないと覚えられない挙動とかもこういう時に確認出来るんでハマるのも悪くないよね。ハマっておくと、いざの本番構築時にハマる時間を少なく出来るしね。
失敗は成功の母とは言いますが、本当にそうだと思います。
あと、これをちゃんとやっておくと手順書型人間にならずに済みます。カンも鋭くなっていくしね。でも昔より検証期間とか勉強期間が設けにくくなったなぁ・・・。
この反復をあと最低6回はやらないといけないので身体に馴染んでくれるでしょうw
ただ、今日は本当はAWS側の作業をメインにしたかったのに全く出来なかったんで・・・うーんどうしよぉ[E:bearing]

Juniper SRX320とAWSでVPN接続

前回のSRX320の記事でBGPがどーちゃらと言っていたので、少しピンと来た人もいるかもしれませんが、実はAWSとのVPN接続を試したかったからです。

しかし・・・SRX320・・・シンドイ[E:sad]・・・AWS・・・シンドイ[E:wobbly]

結果的に出来たけどさ~・・・これ運用管理したくないよ?[E:coldsweats02]

まずSRX320ですが、冗長化構成(Active/Passive)は従来のSRXシリーズの方法で出来ますのであえて取り上げる事もない・・・かな?
ただ、GUIである程度リダンダント構成が組めるようになっていました。
問題はリダンダントインターフェースの組み方(作法)が私の知る限りでは2通りあるので、どちらを選択するかによると思いますが、rethインターフェースでの組み方でやる場合は結局はCLIが楽です。なんだかんだでrethによる冗長化設定をしておかないと言う事を聞いてくれないので、結果的には・・・GUICLIを駆使する事になります・・・。
あとfxp0の動きが中々シックリいかなかったですね・・・フェイルオーバーテストをした時も動きが・・・う”-む・・・なんだろう?!って感じでした。

さて、SRX冗長化構成でAWSとのVPN接続にすると、AWSが気を利かせてくれる「設定のダウンロード」にある情報ですが・・・このまま投入してしまうと動きません。泣きます。
Awsj01_2
AWSでのVPN接続は「VPN接続の作成」からアプローチすると比較的やりやすいと思います。。。画像はもう基本的な投入が完了してしまっていますが、入力しているのは、RemoteのIP(受け側のVPN機器:今回はSRX320)のグローバルIPを入れて、Remote側のネットワークセグメントと、BGP動的の設定と、VPNの対象とするVPCです(もう文字だけで説明しても分かりづらいよね・・・)。BGPはデフォルトのASNでいきませう。
なので、AWSサイドについてはVPCがあらかた組み終わっていて、何を最初の手順で行えばよいかが分かっていれば・・・カンタン?

Awsj02
問題はSRX側かな・・・画像はVPNウィザードなんですが、これが分かりにくい。今までNetscreenもSRXもこれ使ったことないので余計に分かりづらい。そしてAWSから提供されるのはCLIでの設定情報なんで、ウィザードに当てはめては使えません。

てことでCLIで挑む訳なのですが、リダンダントSRX環境なので一部読み替えて投入しなければなりません。

#set security ike gateway gw-vpn-1a23b567-x external-interface ge-0/0/0.0
こんな感じの設定内容で投入・・・ではなくてここでUntrustにあたるインターフェースを指定しなければならないのと、冗長化時でrethインターフェースの場合はreth0.0とかに書き換えねばならんす(実際には冗長化時は0.0は機器により強制的にfxp0だったりするので注意)。

SRXは0だったり0.0だったり分かりにくいよね。
IPSecの設定ではこのインターフェースの部分を気を付ければOK。

BGP側の設定はzoneに注意。
#set security zones security-zone trust interfaces st0.1
#set security zones security-zone untrust host-inbound-traffic system-services ike
#set security zones security-zone trust host-inbound-traffic protocols bgp

Juniper社会での標準ではtrust/untrustが主流ですが、ここでzone名を変更している場合はそのzoneに合わせて変更しないと駄目です。

それと当たり前の事なのですが、最初のIPSecであればこの程度の読み替えで済みますが、2つ目、3つ目と増やしていくと・・・読み替え範囲が多くなります。

あっしはBGP初心者なんでもうちょっと動きを勉強せねば・・・。

Awsj03
VPNが張れてるかどうかはMonitor画面で確認出来ます。StateがUPになっていますね。AWSIPSec2本掛けせねばならんので・・・ふぅ。

Awsj04
BGPもちゃんと動いていそうです。にわかインフラエンジニアな私でも出来ましたね[E:smile]

YAMAHA RTXでのBGPの事例は多いので私はやる予定はないのですが(ではなくて海外でも同じことをするのでJuniperを選んだまでで)、Configを見る限りではRTXの方が簡単に見えるんだよなぁ…。RTXって冗長化してBGP廻せるんだっけ?

Awsj05
てことで、AWS側もちゃんとステータスがUPになってBGPルートになりました。

うーん・・・。。。

これって2本分のIPSec通信が掛かるやん?

以前、Meraki MX100でも1本分だけ取りあえずVPN張ったんだけど殆ど無通信(IPSecのみ)で7000円位掛かるんだよね・・・。

倍[E:sign02]

勉強代高いなぁ・・・[E:coldsweats01]

とりあえず、SRXは15点台のファームになったけど・・・相変わらずツンツンしている感じでした[E:coldsweats01]
次はJuniper SRXのSD-WANな部分をやれればと思うんだけど・・・とりあえず遠隔指示書を書かねば・・・。

でも火曜日に納品されて今日にはもうVPN張れてるんだから早いっしょ?(笑)
届いてから構成を考えて・・・金曜日に冗長構成を仮組しておいて、今日環境に投入してAWSの接続まで。ちょこっと試験もしているのでだいたい1日仕事ですね。
これが委託している環境だと、まぁ~メンドクサイっ。これもSIしてもらおうとするとそれもまたメンドクサイ。結局自分でやるのが手っ取り早いのか・・・orz。

誰か安く面倒みてくれないかなぁ・・・。[E:coldsweats01]

冗長可用性による複雑性

今、ホテルのチェックアウト1時間前ぐらいです。
これから長い帰国の旅です。

今回は不可抗力?な延長戦もあり、ちょっとしんどかったです。
Beforeaftercore
チラ見だけってことで・・・

だいぶ構成が違うぞ・・・みたいな。[E:coldsweats01]
10年前と今回・・・なのですが。

今回、過去にないぐらいカテゴリーの適用をしたのですが、これら全て関連していて、一部即興でやっている感じです。

昔はですね・・・遠隔地という事もあって、あえて冗長化というのを採用せずにコールドスタンバイの手段をとりました。
現地の人間がシンプルにトラブルに対応できると思ったのと、冗長構成による予期しない挙動の経験値がイマイチ足りなかったんですね・・・。

今回は、Meraki MXはActive/Passiveにして、コアスイッチは、2台追加して、3台のバーチャルシャシー構成に。
スイッチが1台壊れてもよいように、3台のうち1台は殆どスペアとして動いています。
これ以外にESXi構築してPOSTFIX構築してAD建てて、既存ADの修繕して、DNS作り直して、結構盛りだくさんにやりました。

取り組んでいる最中に断念したのはLACP(LAG)の設定ぐらいです。
一応、LAGの割り当てはしてあるのですが、使うのは辞めました。

とにかく可用性を上げる為に沢山のポートを消費し、判りやすくするために無駄にポートを消費させている部分もあり、メンテナンス性との兼ね合いで悩みました。

現地のIT管理者と話していて面白かったのは、中途半端に動いている事の方が調子が悪いという話でした。

例えば3台のVC構成でも、2台目が壊れたとすると、1台目と3台目は通信してしまっているので、何が原因なのかを判断するのに難しくなる・・・というものでした。
ナルホド成程なるほど。確かに一理あります。

なるべく、その負担も減るようにドキュメントにはどのポートが何に繋がっているかも記しているのですが、そうではなく、IT管理者が不在時にトラブルがあると、誰かしらに支援してもらわなければならない状況で、対応が難しくなる・・・というものでした。

私としては少しでもオンラインでいられるような構成や配慮を考えていたのですが、そうではないということです。(゜-゜)うーん。難しいですね。

まぁ、今回はサーバ関係の可用性は出来ていないので、ちょっとアンバランスなんですけどね…。

で、今回も例の監視で見ています。
Canadaeng
GMTの対応が出来るんで、こちらの時間でグラフが見られるよと言ったら喜ばれました。
ただ、VPN経由での監視なので、アラートはOFFにしておきました。これがちょっと課題なんだよねぇ・・・。そういえば夏時間対応されているのかな?!
とりあえず、ネットワーク機器だけ先行登録しときました。あとは帰国後で・・・[E:coldsweats01]

あと、現地の管理者に、私はGLOBALを含めて全部のインフラを見ているのか?と聞かれたので、YESと答えたら、「ビッグ・ブラザー」だなぁと言われました。
偉大な力で見守っているという意味らしいのですが・・・調べたらありました。。。たぶんこの架空の人物の事を指しているのだと思う。

https://ja.wikipedia.org/wiki/%E3%83%93%E3%83%83%E3%82%B0%E3%83%BB%E3%83%96%E3%83%A9%E3%82%B6%E3%83%BC

英語って難しいですね・・・。

さて、これから長いフライトにはいるのでここらへんで・・・。

System Answer G2でAWSのアカウント別のBilling情報を取得

ふぅ。やっと出来ました。
AWSで連結アカウントで管理している場合で、アカウント別で情報を取りたい場合とかあると思うのですが、ようやっと取り出せるところまで来ました。

と、いっても前回既に全体合計金額は取得出来る様にしていたので、スクリプトでdimensionの部分の構文を少し工夫しただけです。

Awsbillall00
対象としている課金情報を基に

Awsbillall01
パラメータを入れて・・・あ、今回はグラフはスタックでやってみました。
SystemAnswerG2のカスタムグラフでスタックが出来るんですが、これが後から追加が出来ません。取得したい項目数が事前に決まっている必要があります。

Awsbillall02
こんな感じで。まだ取得できたばっかりなんで取り急ぎですがぁ・・・。色のセンスがイマイチですかね[E:coldsweats01]

と、言う訳で今週はスクリプトを書いてばっかりだったような・・・?

他の監視ツールのカスタムスクリプトとソース共有は出来る様にしていませんが、かるーく見た所では、MuninさんとかCactiさんとかZABBIXさんとは少し改修すれば行ける様な気はします。ただそれぞれ誰かしら情報公開をしていますね。

で、次回(?!)は、SystemAnswerG2にしかない機能でどうやって活用するのかをご紹介します?次回が何時になるかはわからない[E:coldsweats01]

System Answer G2でAWSのBilling情報を取得

くはーっ[E:bearing] ハマったハマった。
でも取りあえず原因もわかって何とかなった。1時間掛からないだろうと思ったのにほぼ1日ついやしてしまった[E:crying]

はい。えーと、AWSの話なのですが、AWSを利用していると、課金が気になるじゃないですか。AWSのコンソールから請求画面に行けば取りあえずは色々判りますが、いちいち見に行くのもカッタルイ。それに色々とサービスの利用が増えたり減ったりしている過程も良くわからない。パッと見て、止めておかなくちゃと思ったものも忘れてしまいますよね。

と、考えていた先人の方々が色々と情報を残してくれていたので、私もチャレンジしてみました。
とりあえずプロトタイプなので、これから細かい修正をしていきますが、先人の方々の資料は手段が色々あるもんで多岐にわたっており、Rubyだったりawslightだったりaws-sdkやら、あれこれと色々と使われています。監視ツールはZABBIXとMuninぐらいが参考例がありました。

で、私はPerlで書こうとしています。Rubyでやるやつも一応作りましたが、最後の最後でボツにしました[E:coldsweats01] そもそもRubyを書いたのも初めてだったんで色々とめんどくなった。

ただねぇ・・・おもったよりもちょっとモッサリしているんでどうしようかな。
やってて全然わからないのがPeriodという値。AWSの課金情報の更新がどうも4時間毎ぽいんですよねぇ・・・。SystemAnswerG2は取得インターバルの最大は15分です。せめて1時間毎に出来ればなぁなんて思ったんですが、そこは空廻しするしかないかな。

まだグラフを書き始めたばかりなのですが、取得出来たぞってことで…
 Awsbilling01


Awsbilling02
グラフの見え方が違う2種を出してみました。どっちがいいかは好み?

それと、この取得した値が正しいかを確認しときましょ。
Awsbilling03
大丈夫そうですね。使い物になりそうです。


で、実際の準備としては・・・「aws-cli」です。Pythonの流れなんじゃないかなってことで、awscliにしてみたんですが、おかげで苦労しました・・・[E:weep] jqをそのまま使った・・・というかインストールの手間を省いたのが敗因だった・・・。

てことで、AWSCLIをインストールです。監視エンジンサーバにインストールします。

#yum install python-pip
#python-pip awscli
#aws configure (AWS Access Key IDとAWS Secret Access Keyの設定のみ)

一部の書き方だけ(といいながらこれが中枢の全てでもあるw)。

###AWS-Billing-GET
my $start_time = strftime "%Y-%m-%dT%H:%M:%S", gmtime(time-(4*60*60));
my $end_time = strftime "%Y-%m-%dT%H:%M:%S", gmtime;

open (AWS, "aws cloudwatch --region us-east-1 get-metric-statistics --namespace \'AWS\/Billing\' --dimensions \"Name\=Currency\,Value\=USD\" --metric-name EstimatedCharges --start-time $start_time --end-time $end_time --period 900 --statistics \'Average\' |") || die "Value=$!";
while (<AWS>) {
/"Average": (.+),/ &&  ($awsget = $1);
};
close (AWS);
chomp($awsget);
print "value=".$awsget.";";
###
こんな感じで書きたくりました。

ポイントとしては・・・なるべく直近のデータを引っ張る様にしたかったので、AWSUTCだったかとおもうので、gmtimeでGMTUTC)にしています。で、スタート時間を現時間から4時間マイナスしています。1日でデータを引っ張ってみたのですが、4時間毎にしかデータを吐いていなかったので。もしかしたら、取得するパラメータによっては違うかもしれない。まだそこまで頑張れてない[E:coldsweats01]
periodは、何分間隔のグラフにするのかみたいなパラメータかと思うんだけど、そもそも4時間毎だから4時間を超えて見たいときに値を変更する必要があるのかな。まだ研究中でございます。ここはググってもみんなパラメータが違うのでちょっと困りました。

まぁこれはまだプロトタイプなんで、まだまだ改造していきますが、取り敢えず取得できたんでホッとしました。[E:confident]
これで見せたい方々に見せやすくなるっすよ[E:wink]

AWS-VPN接続にハマる

もう2月・・・。月日はあっという間ですね。

さて今回は、ろくにマニュアルを見ずにAWSVPN接続に挑戦っす。
というかマニュアルを読んでもピンとこない表現が多いんで実践で体で覚える方式です[E:happy02]

最近AWSを触って、調べものをググって思う事は・・・古い記事がイマイチ参考にならない[E:coldsweats02]
AWSの新機能やら改善が著しいようで、1年前のドキュメントでも画面と一致しないとか。クラウドサービスは厄介ですな。ググって生きてきた人にはツライ世の中になりましたw

動きを理解してしまえばどうってことないんですが中々ね・・・。

んで、VPNの接続自体はウィザードがあります。というかやり方とかが色々な場所からできてしまうので、取り敢えずザックリというと、VPCをカスタムで作る時にまとめてウィザードでやっちゃいます。
Awsvpn00
このパターンね。色々な設計に対応出来る様にしている為か、vCloud Airよりも大変[E:coldsweats01]
この例では、Public SubnetとPrivate SubnetとVPNをやっちゃうウィザード。

まぁ、言いなりでやれば全て勝手に終わります。

ハードウェアVPNというのは自分のとこのVPNルーターね。今回はテストということで、Meraki MX100でやりました。AWSVPN接続時の推奨機器リストにはありません。何故かというと・・・Meraki MXはBGPに対応していない[E:weep]

Awsvpn01
でも繋がるには繋がります。問題はMeraki MXだとトンネル2への接続方法がない。[E:crying]
今度RTX1210で冗長構成でやるっすよ・・・。なので、今回はBGPではなくStaticでやってます。

んで、ここまでは良かったんです。。。
この後EC2インスタンスを立ち上げて・・・pingしたんですが・・・応答なし。
pingが通らへんやん![E:pout]』

半日考えました。

Awsvpn02
アレコレとルーティングやらフィルターやらみていたんですが、セキュリティグループの送信元でデフォルトで入っている「sg-xxxxxx」ってのがなんじゃらほいと。

pingを打つ社内アドレスにしてみるか・・・とエントリーを足してみた所・・・。
Awsvpn03
キタ━(゚∀゚)━!

いやぁトラップ多すぎっす。[E:wobbly] デフォルトのなんちゃらってのが紛らわしい。親切な部分もあるけどさぁ・・・あと初心者がウィザード使うと、構造を理解せずに使えちゃうから危ないね。

もうねVPC廻りも何回も作り直したってのぉ~[E:weep]

仮想ネットワークって結構考え方が違うのねぇ。AWSで育ったインフラエンジニアはハードが逆に分からないって言うかもね。[E:coldsweats01]

とりあえず暫くはVPCと戦います[E:shock]

AWSでRedmineをサクッと動かす

うーん[E:despair] 怖い時代になりましたね。

ちょっとRedmineの検証をしてみたいと思って、何か無いかな~AWSのAMIにあるかな~と思ったらありまして。

「Redmine 3.0のAMIをAWS東京リージョンで公開」

Redmineと言うのは古くからある?OSSなプロジェクト管理ツールです。私はビギナーですので、詳しくは本家のRedmine.JPを見てください。

取り急ぎ、機能と動作を見てみたいだけだったんで、簡単に構築出来ないかなと思っただけなんですが。

んでAWS
Redmineのバージョンが現在は3.2らしいのですが、ちゃんとAWSにもありました。

Awsredmineconsole
まだ、AWSの世界はかるーく本を読んだ程度なんですが、Redmineが動くまでに20分掛からなかったです。

Awsredmine

昔ならですね、空いてるハード(サーバー)がないかな?から始まり、最近では、仮想サーバーが主流なんで、リソースはだいじぶかな?ぐらいで、OSインストールして、必要なパッケージをインストールして、各種設定をゴリゴリしてとかコンパイルエラーやらモジュールがたりないやらを苦労して・・・(*´Д`)ハァハァ。。。が、

20分で終わる世界。徹夜してインストール作業していた日々よグッバイ[E:happy02]

いやいや、おっかない世界です。求められている能力が変わってきてるっす。

自宅に頑張ってサーバーを組む時代じゃないってことね?

ネットワークもストレージもあれもこれも全て仮想でサービスモジュールも仮想。

自己投資の意識も変えなければならないですね。

ただ、物理(オンプレ)屋からみたAWSは、共通知識としては必要なのと、AWSの構造やら色々な癖は理解しないといけんですね。

今日のブログの内容も、「立ち上げる」というタイトルなもんで、本題は既に動いているんで終わっちまってますよ[E:coldsweats02]

まぁこのままだと、チョー簡単なんだ!で終わるんですが、結局ちゃんとAWSを理解して使わないと痛い目は金額となってみる事になります。これだけは注意ですね。あとは用意しなければならないものは自分で考えられなければならないと。バックアップどうする?という話だってAWS環境やOSなど色々な知識がなければすぐに痛い目みます。

まぁ今回は私も演習なので、今後は色々とAWSやアプリのネタも増えてくると思います。

今までAWSにあまり縁がなかったんですが、今年からガッツリ入っていきますよん~[E:wobbly]

 

ついにAWSに着手?!

なかなか着手する暇がなかったのと、利用後のコストの読みにくさと、私が興味を持ち始めた時はローカライズが英語のみだったので少し敬遠気味だったのと、周りにAWSを活用している人があまりいなかった・・・ナドナド色々な理由があって中々手を出す事が出来ておりませんでしたが、やはり、新しい思考の世界は傍目では理解出来ぬということで、今までのポリシー通りに「さわって理解」を実践するべく、登録をしました。クレジットカードでの登録の問題もとりあえず、個人のカードで登録して、最悪勉強料になっても良いやと思えるようになってきました。

実は、AWS環境に興味をもって環境攻めをし始めたのは昨年のはじめ頃になります・・・。つまり1年以上もほったらかし。1年分を取り返さねばなりませんだ。ただ来年の私の立場でいうと、あまり突っ込んで弄ることが出来るかどうか。。。と嘆いていても仕方ない。理解を深めるには触ってナンボじゃいと、Amazon宣教師に背中を押されたこともあり、おっぱじめますよ!

まずはアカウントの登録からですな。

AmazonさんもビビりなITエンジニアの為に、無料で使えるサイズと12ヶ月の期間をもうけてます。あとは、時期によってはクーポンやらキャンペーンもある模様。私は25$分のキャンペーンに登録しましたよん。

「AWS クラウド 無料利用枠」

ここから「まずは無料で始める」でステップを進めると良いかと思います。
とりあえず、無料と言っても人質として「クレジットカード教えろや!」って言われますんで、クレジットカードは必須です。

登録が終わって「AWSマネージメントコンソール」を開くと、たくさんたくさんのメニューに襲われます。ここでだいぶゲンナリして戦闘意欲を失いますが(笑)、クラウドの環境でこれだけのメニューを持っているのはAmazonさんだけです。色々なサービスを時間貸ししているサービスといえばいいんですかね。
Aws01

とりあえず、最初にやっておきたいこと。
赤枠で囲いましたが、IAMからMFAの登録をしときましょう。。。
もう意味の分からない略語が出てきましたね。ざっくり言うと、アカウントに2要素認証(ワンタイムパスワード)を付けましょうという話です。

AWS上にサーバーを建てるというのはいいんです。それぞれにlinuxだったらrootとかあると思うんですが、今回作成したAWSのアカウントは全ての基盤を利用するためのSuperuserなアカウントです。このアカウントがヤラれてしまうと、いくらサーバーのセキュリティをしっかりしていても、根っこからヤラれます。

なので、日頃ワンタイムパスワードの仕組みが嫌いな私でも、こればっかしはちゃんとやっときます。ただ、専用のハードデバイスを用意するのは大変なんで、iPhoneでやっちゃいます。

利用するのは「Google Authenticator」です。さくさくっと登録出来ます。
「ルートアカウントのMFAを有効化」から「MFAの管理」をクリックしてステップ通りに勧めましょう。iPhoneなどでやる場合は「仮想MFAデバイス」となります。

するとQRコードを読み取る画面になるので、Google Authenticatorから読み取ると6桁の数字が表示されるので、認証コード1と認証コード2に表示された数字を入力します。2つ目の認証コードは、待てば勝手に番号が変わりますので、それを入力するですよ。

さて、先ほどrootアカウントの話をしましたが、こちらもセキュリティの関係上、利用出来ません。IAMアカウントというのを使うことになっています。

誰ですか~AWSは簡単なんていう人は~。慣れれば簡単かも知れませんが、慣れるまでが大変そうですね・・・(汗)。

ただ、慣れてしまえば物理的な話が出てこないので、例えばですが、とあるプロジェクトで、サーバーとストレージとネットワークと回線と・・・OSとSQLと等色々な条件によるスケーラブルなお話になったとします。そういった時に、将来を見越した構成を組むのが大変な時や、構築に物理環境の設計・調整・設置・構築・稼働と・・・土台を作るだけでも内容によりけりですが、そう簡単に短時間では出来ないですよね。細かい話だと配線どうする~から保守内容からと色々と気を使います。そういった総合的な内容が、WEB画面で全て実施出来て、全容が判っていれば1日と掛からずに作れてしまうでしょう。

おそろしい[E:shock]

今まではサーバー屋・ストレージ屋・ネットワーク屋なんてのがあって、その中でもFW屋がいたり、DNS屋がいたり、SQL屋やらなんやらといて、アプリ屋も色々な言語屋がいました。
でも、AWSクラウドの世界では、アプリ屋でも、全貌を理解出来てしまえば、インフラ屋は要らないんですね。私の商売上がったりですよ[E:wobbly]

でも安心してください。AWSもそんな優しい子ではありません。インフラ屋がAWSの全貌を理解してあげることが、アプリ屋へとの短時間の架け橋になると思います(たぶん)。

またインフラ屋もハードとアプライアンスRFC・規約・規制にしがみついては生きていけない時代になりました。色々な連携要素を理解してオンプレとクラウドとDC環境・コスト・時間を考えてベストを提供しなければ、存在価値は危ぶまれる時代になっていくかと思います。

今はまだまだ有給すら消化できない忙しさだけど、いずれは鼻歌歌いながら構築出来るようになりたいですね[E:smile]