Category Archives: Amazon Web Services

「クラウド写経」でアプリとインフラの境界を越えよう『Amazon Web Services クラウドネイティブ・アプリケーション開発技法 』

  JR品川駅の改札を出て、港南口のマイクロソフトの方に向かうと、 駅構内の柱に広告用のディスプレイが掲げられていて、 様々な広告映像が流れているわけですよ。 ある日、品川駅構内を歩いておりますと、某ハードウェアベンダの広告映像を目にしましてね、 こう言うわけです。   〇〇のクラウドシステムは、導入から稼働まで3時間   ぶっちゃけ、「遅っ!!!」って思いました。   3時間っていってもあれですよ、 導入しようと思うと先ず営業呼んで話を聞いて、大体の要件を伝えると 「じゃあ次は技術の者も連れてきますんで」となる気がしますね。 で、次、技術の者が来たら前回よりも突っ込んだ内容をヒアリングしてきて、 営業が「じゃあこれで一旦お見積り出しますんで」ってなる気がしますね。 ここまでで2週間ぐらいです。 そこから稟議通して発注してベンダの準備のリードタイムを確保して、 そこからやっと「3時間で稼働」、な気がするんですよ(妄想です)。   disりたいわけじゃないんですが(実質disってますが)、 これからのクラウドの皮を被ったベンダは大変だろうなあと思うと共に、 そこで働くインフラエンジニアの方々というのも、 職を維持できるかどうかという点で、非常に大変だろうなあと感じたわけです。 中の人でないにも関わらず、今後も「ITインフラエンジニア」の肩書だけで食っていくためには、 相当の経験と技術力がないと、正直キツいだろうなあという感覚を、 びりびりと感じてしまってちょっと身震いする気分でした。   Amazon Web Services クラウドネイティブ・アプリケーション開発技法   前著、『Amazon Web Services パターン別構築・運用ガイド』に引き続き、 待望の類書が発売されました。即買いしました。   今回は「アプリケーション開発技法」ということで、 アプリケーション開発者を読者層として意識した構成になっています。 紹介されているAWSのサービスとしては、 S3、API Gateway、SNS、DynamoDB、Lambda、Cognito、Machine Learning、 Kinesis、SQS、IoT、Mobile Hubと、 コードの匂いのするサービスが中心となっています。 所謂、「クラウドネイティブなアプリケーション」を開発するために 活用できる(すべき)サービス群ですね。 本書は、上記の各種AWSサービスの紹介と、これらサービスを組み合わせた アプリの実装方法の解説が大部分を占めています。   正直申しますと、本書で紹介されているAWSサービスの中で、 まだ触ったこともないサービスがたくさんあります。 「ヤバイ」 と思いました。   AWSの荒木さんが以前、JAWSの勉強会(確かテーマは「アンチパターン」)で 全部のAWSサービスを無理やり使おうとするのはアンチパターン。 やりたいことを見極め、最適なサービスを取捨選択しましょう 的なことを仰っていました。 取捨選択・・そう、、一人で全部を使いこなす必要はない、、と思いつつ、 AWSで飯を食うものとして、このままではマズイという思いがふつふつと湧いてきます。   そこで、「クラウド写経」ですよ。   クラウド写経とは   ブログ記事のタイトルに書いた「クラウド写経」はわたしが勝手につけたのですが、 本書はサービスの概要を解説だけで済ませるのではなく、 Java、OjbC、Swift、Node.js、PythonのコードがAWSサービスの設定方法と一緒に ふんだんに盛り込まれています。   わたしは頭が良い方ではないので、実際に自分の手で動かしてみないと、 新しい技術を理解することができないのですが、 本書は、実際に手を動かして、 「どうすればクラウドネイティブなアプリケーションを開発できるのか?」 を体感することができると感じました。 写経です。 写経することで、キャッチアップを目指すのです。   Appendixの「クラウドとエンジニア」   Appendixとして、著者の方々のクラウドとエンジニアのこれからの関わり方に関する思いが綴られています。 Twitterでしたか、著者の佐々木さんが「ポエム」と自嘲されていましたが、 わたしには実現しようもないポエムなどとは、到底思えませんでした。   2016年現在、まだ企業のAWS導入においては、 アプリはEC2のLinuxやWindowsで、 DBはRDSでMySQLやOracleを使って、というケースが多いため、 従来のインフラエンジニアも、インフラの仕事だけで食っていける余地が残っています。 ERPパッケージのインフラとして、EC2が使われるケースも多いですしね。   しかし、それだけで済む時代はそう長くは続かないという危機感があります。 なぜなら、EC2やRDSは、決してコスト的に安いサービスではないからです。(便利ですが。特にRDSは)   API GatewayやLambdaをフル活用するアプリが一般的になってきた時、 その驚異的なコスト効率や運用の簡便さが浸透し、 最早「わたしはインフラ担当です」「わたしはアプリ担当です」という境界は、消えてなくなってしまうでしょう。 その時仕事を失わないためには、勉強を続ける必要があると思います。 楽しみながらね。   最後に   私はKindleで購入したので最初は気づきませんでしたが、 書店で本書を見たときは、鈍器感が拭えませんでした。   それだけ読み応えのある本ですが、ご自身の興味のあるサービスの部分に絞って読み、 […]

Also posted in Books | Comments closed

Terraformで”Unknown root level key: resoruce”

  TerraformでAWSのシンプルなセキュリティグループとEC2の.tfファイルを書いたわけですよ。 しかしterraform planすると、 $ terraform plan There are warnings and/or errors related to your configuration. Please fix these before continuing. Errors: * 1 error(s) occurred: * module root: 1 error(s) occurred: * Unknown root level key: resoruce   この切り分けに超時間がかかった・・ググっても英語含めて情報ないし。 結局、根本原因はわからなかった。 “root level key”とあるので、公開鍵関連の定義が悪いのかと思ったが、 結局問題なかった。 色々コメントアウトしたりなんやらやって、 セキュリティグループを記述した箇所の何かが悪いところまでは追ったのだが、 文法的な間違いはないし、何が悪いのかさっぱりわからない。 最後は、以前動作実績のある.tfファイルを持ってきて、 今回記述したい動作で書き換えたら、planが通ったという・・。   なかなかTerraformと仲良くなれない。   Amazon Web Services クラウドネイティブ・アプリケーション開発技法 一番大切な知識と技術が身につく posted with amazlet at 16.04.16 NRIネットコム株式会社 佐々木 拓郎 佐藤 瞬 石川 修 高柳 怜士 佐藤 雄也 岸本 勇貴 SBクリエイティブ 売り上げランキング: 15,209 Amazon.co.jpで詳細を見る  

バッチ(cmd)でEC2のAMIを取得

  PowerShellの方が簡単なのに・・と思いつつ、 男には.batでやらねばならぬ時もあるのです。   Windowsのコマンドライン(create-image.bat)でEC2のAMIを取得してみましょう。 第1引数にNameタグを設定し、当該タグのつけられたインスタンスのAMIを取得する。 ※いろいろ端折ってるのでコピペして使う時注意。 [text] @echo off setlocal set TAG_NAME=%1 set AMI_ID= @REM タグ名を元にインスタンスIDを取得する set CMD=aws ec2 describe-tags –filters “Name=tag:Name, Values=%TAG_NAME%” “Name=resource-type, Values=instance” –query Tags[].ResourceId –output text set INSTANCE_ID= for /f “usebackq delims=” %%a in (`%CMD%`) do set INSTANCE_ID=%%a echo %INSTANCE_ID% @REM インスタンスIDを元にAMIを取得する set CMD=aws ec2 create-image –instance-id %INSTANCE_ID% –name %TAG_NAME%_%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2% –description %TAG_NAME%_%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2% –output text for /f “usebackq delims=” %%a in (`%CMD%`) do set AMI_ID=%%a echo %AMI_ID% endlocal exit /b 0 [/text]   取得したAMIのAMI IDも取れるので、それを元に別のタグをCreateTagsするもよし。   Amazon Web Services クラウドネイティブ・アプリケーション開発技法 一番大切な知識と技術が身につく posted with amazlet at 16.04.11 NRIネットコム株式会社 佐々木 拓郎 佐藤 瞬 石川 修 高柳 怜士 佐藤 雄也 岸本 勇貴 SBクリエイティブ 売り上げランキング: 49,995 Amazon.co.jpで詳細を見る