lsした時のフォントカラーの変更
Office365 Outlookで他人のスケジュール表示を高速化
以下で指摘されている問題で、「共有フォルダーをダウンロード」設定をオフにする方法を説明する。
他のユーザーの予定表を表示するのが遅い – Outlook Support Team Blog JAPAN
Outlookで、ファイル→情報タブのアカウント設定→メールタブの変更→詳細設定ボタン→詳細設定タブを順にクリックすることで該当設定ページにたどり着ける。
GitHub上でブランチ・コミット間の差分を表示
時々、特定ブランチ・コミット間の差分を見たい場合がある。
画面からリンクを辿る方法は不明だが、以下の規則で対象リポジトリにアクセスすると、差分を表示できるページにアクセスできる。
https://github.com/{user_name}/{repository_name}/compare
アクセスしたら、該当ブランチを選択すればよい。 コミットの場合はコミットID(ハッシュ値)を指定すれば、選択できる。
差分が表示できることで、指定した両者の差分の行数も確認できる。
参考
- GitHubで特定のリビジョン間の差分を確認する方法 - Qiita
- ブラウザのURL直打ちでアクセスする方法が書いてある
AWS SDKサンプルプログラム(Python2)
Get S3 bucket list
# coding:utf-8 from boto3.session import Session import os session = Session( aws_access_key_id = os.environ['access_key'], aws_secret_access_key = os.environ['secret_access_key'], region_name = 'ap-northeast-1', ) s3 = session.resource('s3') for bucket in s3.buckets.all(): print(bucket.name)
Get kinesis shard IDs
# coding:utf-8 import boto3 import os # Get stream info client = boto3.client('kinesis') shard = client.describe_stream(StreamName = os.environ['kinesis_stream_name']) for x in shard['StreamDescription']['Shards']: print(x['ShardId'])
VPC内のLambdaから外部サービスにアクセスする方法
VPC内のEC2やRedshiftなどにアクセスするためにLambdaをVPC内に作成して実行すると、 今度は逆に外部のインターネットやS3, Kinesisなどにアクセス出来なくなる。
その場合の対応方法はAWSの公式ドキュメントに書いてある。
Configuring a Lambda Function to Access Resources in an Amazon VPC - AWS Lambda
日本語情報としては以下がある。
以下では上記サイトの補足を述べる。
設定方法について
いずれのVPC内からもアクセス可能に出来るわけではなく、private subnet内にLambdaを設置することが条件である。
public subnet にNATサーバを構築し、private subnet はNATサーバ経由でインターネットにアクセスする構成とする。 private subnetが参照するルートテーブルにおいて、0.0.0.0/0 をpublic subnetのNATサーバにルーティングするよう設定すればよい。 設定イメージは下記ページの図が参考になる。
NAT ゲートウェイ - Amazon Virtual Private Cloud
NATサーバの構築については以下を参照
ネットワーク構成の補足
private subnet と public subnet についてだが、インターネットに直接つながっているsubnetをpublic subnet、 つながっていないsubnetをprivate subnet と呼ぶ。subnetのルートテーブルで0.0.0.0/0をインターネット・ゲートウェイにルーティングしているとpublic subnetとなる。
NATサーバのセキュリティグループ
当然、S3やKienesisなどへのアクセスをNATで受けるため、インバウンドの該当ポートは開けておく必要がある。
LambdaのIAM Role
LambdaからKinesisにアクセスしたい場合は、それ用のIAM Roleを作成しておく必要がある。 RoleにはAWSLambdaKinesisExecutionRoleとAmazonEC2FullAccessが必要。
参考:ステップ 2.2: 実行ロール (IAM ロール) を作成する - AWS Lambda
EC2への権限は本当はもっと細かく絞れるらしいが試していない。詳細は以下参照
EC2にNATサーバ構築
本文
AmazonからはNAT Gatewayというマネージドサービスが提供されているが、お金が少しかかる。 そこで自前で用意する方法を説明する。
NATサーバの設定
NATサーバを構築するEC2インスタンスはパブリックIPがあり、外につながっているとする。 以下を設定。IPアドレスに関する部分は適宜、読み替えて設定すること。
# NATのログを出力する場合。ログは /var/log/messages に出力される sudo iptables -t nat -A POSTROUTING -j LOG # 設定 sudo iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE # 設定の確認 sudo iptables -t nat -nL # 設定の保存(保存しないと再起動で設定が初期化される) sudo service iptables save # forwardingの設定 vi /etc/sysctl.conf #—————————————————- #net.ipv4.ip_forward = 0 #↓ #net.ipv4.ip_forward = 1 #—————————————————- # 設定の適用 sysctl -p
ブラウザでAWSのマネジメントコンソールにログインし、該当EC2インスタンスを右クリック→ネットワーキング→送信元/送信先の変更チェックを無効にする。
クライアントの設定
クライアントとなるEC2はパブリックIPがなく、プライベートIPのみとする。以下を設定。
# デフォルトゲートウェイをNATサーバに設定 sudo route del default gw 192.168.0.1 sudo route add default gw 192.168.0.8 sudo vim /etc/sysconfig/network GATEWAY=192.168.0.8を追記設定 sudo service network restart ※少し時間がかかる # 接続テスト wget www.google.co.jp index.htmlが作成されれば成功
ちなみに、各インスタンスの基本的なポートの開閉などはAWSのセキュリティグループでやればよい。
参考サイト(もっと詳しい説明があります):習うより慣れろ! iptablesテンプレート集(2):natテーブルを利用したLinuxルータの作成 (2/6) - @IT
以下の方法もあるらしい。