Author: cyberarchitect

botocore.exceptions.ReadTimeoutError: Read timeout on endpoint URL

どうも自宅のネットワークの調子がおかしい・・ aws s3 cpでサイズ5GB越えのファイルをアップロードしようとするのだが、 表題のエラーでcpが失敗する。 –debugオプション付きで実行しても処理がabortしていることはわかるが、なぜabortなのかはわからない。 そこで、エラーメッセージは”Read timeout”と言っているのだから、 素直にAWS CLIのオプションで”–cli-read-timeout 0″(socket readをタイムアウトしない)にしたらアップロードできた。 aws s3 cp s3:/// –cli-read-timeout 0

AWS認定ソリューションアーキテクト試験対策を含む、『AWS認定アソシエイト3資格対策』という本を書きました

AWS Summit Tokyo 2019の期間中、 『AWS認定アソシエイト3資格対策~ソリューションアーキテクト、デベロッパー、SysOpsアドミニストレーター~』 という本が刊行されます。 AWSプレミアムコンサルティングパートナーの某大手企業のトップエンジニアの方々と共同で執筆し、 元AWSのSAの平山さん、元AWSのエヴァンジェリストの堀内さん、私の上司の福垣内さんに監修していただきました。 一冊の紙の本で「Solution Architect」「Developer」「SysOps Administrator」試験を 網羅した本はAmazon.comでもみつけられませんでしたので、 (たぶん)世界ではじめての試みなのではないかと思います。 執筆することになった経緯 今回の本の出版社さんは、 AWS認定試験が2018年にリニューアルされるまで AWS認定試験対策本としてド定番だった 『合格対策 AWS認定ソリューションアーキテクト -アソシエイト』 のリックテレコムさんです。 (この本、AWSの基本的な概念やベストプラクティスの考え方は変わりませんので、今でも良い本だと思っています) リックテレコムさんから平山さんに本の執筆の打診があり、 平山さんから堀内さん、鳥谷部さん、福垣内さんにお誘いがあり、 箱崎の某所で行われた企画会議に私も同席させてもらった、というのがきっかけです。 なぜ、3資格対策なのか? 実は、企画会議でリックテレコムさんから依頼があったのは、 「AWSのSysOpsアドミニストレーター試験の対策本を書いてもらえないか?」 というものでした。 実際、平山さんの方でもSysOpsアドミニストレーター対策書を前提に、章立てのたたき台を作成されており、 役割分担の相談などしていたのですが、最終的には 「やっぱり、アソシエイトレベルの3試験を網羅した本を書きません?」 となりました。 なぜそういう話の流れになったかは正直忘れてしまったのですが()、 ポイントとしては SysOpsアドミン試験「だけ」の対策書だと、マーケットに需要があるか、執筆陣も正直自信がない 需要としては「AWS認定ソリューションアーキテクト – Associate(Feb, 2018)」試験対策が 一番多いと思われるが、今後競合本も増えるだろうし、差別化が難しい(実際そうなった) アソシエイトレベルの3試験は勉強すべき内容で重複する部分が多々あるので、 1冊で3つともカバーしたらおもしろくない? という議論の流れだったかと思います。 特に3つめのポイントについて、平山さん、鳥谷部さん、福垣内さんが、 「多少大変になっても、おもしろくて役に立つ本を書きたいよね」 というノリだったのが大きいと思います。 1試験の対策書を書くのも大変なのに、3試験分をカバーする本を書こう、 となっても「ああ、おもしろいね」とあっさり賛成される、 技術レベルの高い方たちとご一緒できて、本当によかったと思います。 ソリューションアーキテクト(アソシエイト)だけでよくない? 昨年ぐらいからでしょうか、AWS関連の案件でお客様とディスカッションさせていただく時に感じるのですが、 4~5年前と比べて、AWSにお詳しいお客様が本当に多くなりました。 AWSのサービスアップデートも常にチェックされていますし、 Well-Architected.

“Stream to Amazon Elasticsearch Service” does not work

    なんということもない、CloudWatch LogsデータのElasticsearch Serviceへのストリーミングが動かない(というか設定できない)。 マネジメントコンソールの設定に沿って手順を進めると、 最後の”Start Streaming”のところでエラーが発生して ストリーミングが開始できない。 There was a problem There was an error creating your Lambda Function. Please try again.   CloudTrailを確認すると、 どうやら「CreateFunction20150331」なるファンクションが実行され、 それが「InvalidParameterValueException」で落ちている模様。 [wp_ad_camp_3]   実際のログを確認すると、 “errorMessage”:”The runtime parameter of nodejs4.3 is no longer supported for creating or updating AWS Lambda functions. We recommend you use the new runtime (nodejs8.10).

書評『PowerShell実践ガイドブック クロスプラットフォーム対応の次世代シェルを徹底解説』

    PowerShellやDSCの最新情報についていつも参考にさせていただいている @guitarrapc_techさんが本を出版されたとのことで、 これは買わねばなるまいと思っていました。 そんな時、マイナビ出版さんが先行レビューの希望者を募集されていましたので、 イチかバチかで申し込んでみたところ、 ご恵贈いただきました。 マイナビ出版さん、ありがとうございましたm(__)m   わたしの周辺のPowerShell事情   ここ数年、仕事ではもはやクラウド(主にAWS)関連のコンサルやデリバリーばかりやっています。 Serverless、Container等の新しい潮流は増えてきているものの、 わたしがビジネスを行っているエンタープライズ領域のシステム開発では、 未だWindowsやLinuxを利用するIaaSの活用が主流です。 当然ながら、ビジネスのバックエンドで動くシステムでは運用を自動化します。 AWSならLambdaのcronライクな機能を使って運用タスクのスケジューリングを行うこともできますが、 エンタープライズ領域ではオンプレミスに構築された統合ジョブ実行基盤(JP1、Systemwalker、WebSAM、Senju等)や、 クラウド上に構築したジョブ実行基盤を利用して運用タスクの自動化を行うケースがほとんどです。 運用タスクを自動化するスクリプトは、Linux環境であればbashやPythonが多いのですが、 Windows環境は近年やはりPowerShellがメインになってきています。   PowerShellが出始めた頃(2006年頃)は、どうもあのコマンドレットというものの羅列に馴染めず、 WSHやコマンドプロンプト(.bat)で十分、と思っていた時期が私にもありました。 が、Infrastructure as Codeが流行りだし、CloudFormationやAnsibleの勉強をする中で、 PowerShell DSCというものに出会い、少しずつPowerShellに触れるようになってきました。 慣れてくると、WSHや.batよりも、PowerShellの方がコードがすっきりしますし、 例外処理やOSの機能を活用するような処理もやりやすいですね。 現在、AWSのEC2上で運用スクリプトを書く場合は、PowerShellでAWS CLIをラップして 作成しています。 AWSでWindowsインスタンスを起動すると、AWS Tools for Windows PowerShellがプレインストールされているのですが、 敢えてAWS CLIをインストールしています。 理由としては、AWS CLIであればWindows環境で作成した運用スクリプトのAWS CLI部分を Linux環境に移植しやすいですし、 AWS CLIであれば、S3とEC2間のファイル転送時に最大同時リクエスト数やマルチパート処理が採用されるファイルサイズの閾値(デフォルト5GB)を変更できるからです。 (AWS Tools for Windows PowerShellではまだそこまで細かい制御はできない・・はず) AWS CLI.

Amazon Linuxでserverspec-initができない(`require’: cannot load such file — io/console (LoadError))

    Amazon Linuxでserverspecのインストールはできるが、 serverspec-initができない。 Amazon LinuxのAMI IDはamzn-ami-hvm-2017.03.0.20170417-x86_64-gp2 (ami-923d12f5)、 Rubyのバージョンはruby 2.0.0p648 (2015-12-16) [x86_64-linux]、 rakeのバージョンはrake, version 12.0.0。   serverspec-initを実行すると、 [ec2-user@ip-192-168-11-11 serverspec]$ serverspec-init /usr/share/ruby/vendor_ruby/2.0/rubygems/core_ext/kernel_require.rb:55:in `require’: cannot load such file — io/console (LoadError) from /usr/share/ruby/vendor_ruby/2.0/rubygems/core_ext/kernel_require.rb:55:in `require’ from /home/ec2-user/.gem/ruby/2.0/gems/net-ssh-4.1.0/lib/net/ssh/prompt.rb:1:in `’ from /usr/share/ruby/vendor_ruby/2.0/rubygems/core_ext/kernel_require.rb:55:in `require’ from /usr/share/ruby/vendor_ruby/2.0/rubygems/core_ext/kernel_require.rb:55:in `require’ from /home/ec2-user/.gem/ruby/2.0/gems/net-ssh-4.1.0/lib/net/ssh/key_factory.rb:2:in `’ from /usr/share/ruby/vendor_ruby/2.0/rubygems/core_ext/kernel_require.rb:55:in `require’ from /usr/share/ruby/vendor_ruby/2.0/rubygems/core_ext/kernel_require.rb:55:in `require’ from /home/ec2-user/.gem/ruby/2.0/gems/net-ssh-4.1.0/lib/net/ssh/authentication/key_manager.rb:2:in `’ from.

awspecでspecファイルをgenerateすると(中略)awsecrets-1.10.1/lib/awsecrets.rb:59:in `exist?’: no implicit conversion of nil into String (TypeError)

    Infrastructure as codeである。   「エンタープライズにAWS?早い早い」などという担当者の方の冷笑はいまや昔。 今日ではあの三菱東京UFJ銀行までがAWSを利用しようかというご時勢である。 そんな時流に乗り、弊社も忙しい。とっても忙しい。 手のぬくもりを大切にした環境構築ではもはや追いつかない。 そこで自動化を推進するわけである。 Terraformは以前からちょいちょい触っていたが、インフラ構築にもTDDをということで、 awsspecを検証してみた。   Amazon Linuxに2.x系のRubyを入れ(詳細は割愛する)、 gem install awspec mkdir awspec cd awspec awspec init ここまでは順調。 問題はこの後、 echo “require ‘spec_helper'” > spec/ec2_and_rds_spec.rb awspec generate vpc vpc-xxxxxxxxxc >> spec/ec2_and_rds_spec.rb しようとすると、 $ awspec generate vpc vpc-1871177c >> spec/ec2_and_rds_spec.rb /home/ec2-user/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/awsecrets-1.10.1/lib/awsecrets.rb:59:in `exist?’: no implicit conversion of nil into String.

参加の操作を正しく完了できませんでした。これは、既存のXXという名前のコンピューター アカウントが以前、別の資格情報で作成された可能性があります。

  EC2をベースにしたWindows Server 2012 R2のサーバをドメイン参加させようとしたところ、 参加の操作を正しく完了できませんでした。これは、既存のXXという名前のコンピューター アカウントが以前、別の資格情報で作成された可能性があります。別のコンピューター名を使うか、管理者に連絡して、競合を発生している無効なアカウントを削除してもらって下さい。エラー: アクセスが拒否されました。 なるエラーが発生し、ドメイン参加に失敗した。 始めて使うサーバ名であるため、コンピューターアカウントが競合するはずはない。 EC2で作ったWindows Serverのゴールデンイメージからsysprepして作った環境のため、 sysprepの失敗か?とも一瞬思ったが、原因は全然違った。   単純に、ドメイン参加時に入力を求められたアカウントに権限がなかっただけだった。 Domain Adminsグループに所属するアカウントで再度試行し、うまくいった。   標準テキスト Windows Server 2012 R2 構築・運用・管理パーフェクトガイド posted with amazlet at 16.06.18 SBクリエイティブ (2015-03-02)売り上げランキング: 21,493 Amazon.co.jpで詳細を見る  

error: Setup script exited with error: command ‘gcc’ failed with exit status 1

  Pythonの環境セットアップ中、MySQL-pythonインストール時にエラーが発生。 Writing /tmp/easy_install-ZkF3mY/MySQL-python-1.2.5/setup.cfg Running MySQL-python-1.2.5/setup.py -q bdist_egg –dist-dir /tmp/easy_install-ZkF3mY/MySQL-p ython-1.2.5/egg-dist-tmp-tMn2Zq _mysql.c:44:23: fatal error: my_config.h: No such file or directory #include “my_config.h” ^ compilation terminated. error: Setup script exited with error: command ‘gcc’ failed with exit status 1 gccは入っているだが・・と思ったが、 mysql-develのインストールを忘れていた・・orz   mysql-devel後。 zip_safe flag not set; analyzing archive contents… Moving MySQL_python-1.2.5-py2.7-linux-x86_64.egg to /usr/local/lib/python2.7/site-packages Adding MySQL-python.

TerraformでAWSのVPC環境の構築自動化

    Terraformとは Terraformは、HashiCorp社によって提供され、環境構築の一連の手順をスクリプトで記述できる 所謂Infrastructure as codeを実現するためのツール群である。   TerraformはAWSに特化したツールというわけではなく、 Azure、Google Cloud、OpenStackやVMware vSphereの環境構築にも活用できる。   最初、AWSの環境構築自動化をCloudFormationで実現すべくJSONをしこしこ書いていたわけだが、 クライアントの気まぐれにより、Terraformで書き換えることになった。 まあ、これも1つの勉強か。   Terraformのインストール   インストールというか、ダウンロードして解凍してパス上に配置するだけである。 1、Amazon Linuxを起動してログイン 2、terraformをダウンロードして解凍 $mkdir terraform $cd terraform $wget https://releases.hashicorp.com/terraform/0.6.15/terraform_0.6.15_linux_amd64.zip $unzip terraform_0.6.15_linux_amd64.zip 3、/usr/binの下に配置 $cd .. $cp terraform /usr/bin/ 4、環境変数の設定。PATHと、AWSのアクセスキー、シークレットキー、デフォルトリージョンを設定 $cd $vim .bash_profile .bash_profileの内容 [text highlight=”10,14-16″] # .bash_profile # Get the aliases and functions if [ -f.

WordPressのブログタイトル(title)の一文字目が大文字になる件

  ちょい前から気になってたんですけど、 ブラウザのタブに表示されるブログタイトルの一文字目が、 いつのまにか大文字になってたんですよ。 つまり、 昔は「cyberarchitect」だったのが、 「Cyberarchitect」になっとる、と。   いやまあ、英語的にはCapital letterで一文字目が大文字になるのは正しいのかもしれませんが、 わたし的には全部小文字に直したいんです!!!!!!!   原因はなんじゃ   最初はスタイルシート(CSS)だと思ったんですよね。 で、style.cssやらdefault.cssやらで titleタグにtext-transformが設定されていると思ったら、 そんな記述は存在しない。 なぜだ・・   犯人は貴様だ!!!   で、途方に暮れながらWordPressの設定やプラグインの設定を色々確認していたところ、 みつけました。 All in One SEO Pack~ やってくれるぜ。 Title Settingsに、”Capitalize Titles:”なるチェックボックスがある。 チェックボックスをオフにしたところ、 ブラウザタグのブログタイトル(つまりHTMLのtitle)が先頭含めて小文字になった!   これですっきりである。 プラグインを更新した際は、見た目等、リグレッション確認した方がいいな。   WordPress 仕事の現場でサッと使える!デザイン教科書 posted with amazlet at 16.05.07 技術評論社 (2015-06-23)売り上げランキング: 18,461 Amazon.co.jpで詳細を見る