セキュリティグループをつくるいろいろ
アカウントを新しく使いはじめる場合や、新しいサブネットを作成したときに、ベースのセキュリティグループをとりあえずセットアップしたいパターンはよくあると思う。 とりあえず、ログインするために、会社のIPからのアクセスを許可するとか。
以下のシナリオを考えてみる。
- ELB + WEBサーバ (EC2)+ DB (RDS) の構成
- Public Subnet, Private Subnetを定義
- 会社のIPからのSSHアクセスを許可する
これを元に以下の構成を考える。
NATインスタンスがいないとか、いろいろあるけど、今回のテーマではないので割愛。
aws cliコマンドライン
まず空のセキュリティグループを作成して、そこにルールを追加する形になる。
- aws ec2 create-security-group コマンドを叩いてセキュリティグループを作成。セキュリティグループIDを取得。
- aws ec2 authorize-security-group-ingressコマンドでIngressのルールを追加
コマンド実行の戻りを変数に入れて、というのがシェルスクリプトだとちょっと面倒です。楽しようと、上では--query
でGroupIdのみ取得していますが、エラーが起きた時のハンドリングができていません。
セキュリティグループを参照したり、変数の嵐となってつらいので上では1個だけ作成しています。
スクリプト (botoの場合)
セキュリティグループをルールに含めたセキュリティグループをつくるのはスクリプト楽ですね。
botoのboto.ec2.securitygroupは、ingress (inbound)前提となっていて、egress (outbound)も使う場合は、
ec2.connectionのauthorize_security_group
、authorize_security_group_egress
あたりを利用することになると思います。
他の各言語のAWS SDKなどでも、Create Security Groupして、そこに対してルールを追加する同様の感じとなります。
- AWS SDK for PHP: authorizeSecurityGroupIngress, createSecurityGroup
- AWS SDK for Ruby: Class: AWS::EC2::SecurityGroup — AWS SDK for Ruby
- AWK SDK for Java: createSecurityGroup
CloudFormation
CloudFormerで作成した例。CloudFormerについてはクラスメソッドさんのブログが分かり易い。
上のようなJSONを生成して、例えばAWS CLIでキックする。
aws cloudformation create-stack --stack-name generate-security-group --template-body file://generate-securitygroup.json
このJSONでは、VPC IDが決め打ちになっているが、もちろんVPC自体も作成できる。
問題点としては、リソース名 (Security Group Name)が、CloudFormationによる自動生成となること。タグで代替できるが、タグは重複を許容するのが、場合によってはあんまりよろしくない。 あと、CloudFormationスタックにセキュリティグループが紐付いているので、スタックを削除すると削除しちゃうので、適宜、Stack Policyを設定する。
まとめ
実際に運用する場合には、VPCと組み合わせて、
- Public Subnet、Private Subnetを定義し、NATインスタンスを起動させる
- 会社側のIP制限ルールのため、踏み台インスタンスを用意してElastic IPを付与したい
とかいろいろあると思う。
こうなってくると、登場人物が増えてくるのと、案件によって変わってきたりして、ちゃんとがっちり構築しようとすると厳しかったりするが、できるところから、ルールが決まっている部分について自動化しておくと、完全な自動構築までの道のりもクリアになる。
ハイレゾワイヤレススピーカーSRS-X9を購入
ついかっとなって、ソニーの新しいワイヤレススピーカーSRS-X9を購入した。
でかいかなと思ったけど、実際に見たらそうでもなかったので。 ざっくり感想を書いておく。
できること
- USB接続で、iPhoneやウォークマン、PCの音源を再生できる。ウォークマンとPCはドライバとか入れたらハイレゾ音源が鳴らせる。
- アプリを入れて、無線、優先LANでもPCから音が鳴らせる
- AirPlayとBluetooth対応。AirPlayは、 Apple Lossless codec with 44100 HzなのでBluetoothより音質はいいけどハイレゾにはならない。
- スマホアプリから、radikoとか流せて割とよい
音質
結局、マンションで聴く以上、そんなに大音量で聴けないわけだけど、低音の響きと高音の伸びがあって、まぁ値段相応かなと思う。
ネットワーク
- 前に買ったPanasonicのやつもそうだが、AirPlayスピーカーがネットワークからよく見えなくなるのは、たまにある
- 無線LANが5GHz帯に対応していない。PS4もそうだけど。
よくない点
- 音楽プレーヤーやPCはだいたい繋がるのだが、PS4やテレビをつなげようと思うと、光デジタル入力が無く、アナログ入力しかなくて、これは微妙すぎる。
参考
- ヘルプガイド | トップページ: 説明書
- 出版社/メーカー: ソニー
- 発売日: 2014/03/08
- メディア: エレクトロニクス
- この商品を含むブログ (1件) を見る
Signature Version 4 Key Derivation Sample in PHP5
Signature Version 4 Key Derivation SamplesにPHPが無かったのでメモ。
あけましておめでとうございます
新年あけましておめでとうございます。 今年の年越しは羽田→北九州のスターフライヤー機上 (大阪あたり)で迎えました。 機長によるカウントダウンとおいしいアップルジュースが振る舞われましたが、急な出来事でいまいち盛り上がらず。。
社会人となって上京したのが2004年の春。エンジニアとして満10年にそろそろなり、今月には 0x20 歳ということで成人を迎えてしまいます。 インターネットにハマり、インターネットの会社でwebエンジニアとなり、10年前には考えられないようなことをやってますが、それが楽しい。
昨年末で某社を退職しました。年明けからすぐに新しい企業で、またいままでとは違う職種のエンジニアとして働きます。どうなることやら。 前職の同僚のみなさま、転職活動の折にお世話になったみなさま。感謝しております。引き続き仲良くしてください。あと、飲みに行きましょう。
以上、北九州から。