Skip to content

Instantly share code, notes, and snippets.

#!/bin/bash
set -ue
prefix=`basename $0`
timestamp_file=/tmp/$prefix.timestamp
cache_file=/tmp/$prefix.cache
timestamp=`date '+%s'`
cache_time=300
describe_images(){
@sechiro
sechiro / ec2ssh.sh
Last active August 29, 2015 14:06
ec2sshぽい何か。VPC内でPrivateDnsNameで接続する用。
aws ec2 describe-instances | jq -r '.Reservations[].Instances[]| (.Tags[] | select(.Key=="Name").Value) + " " + .PrivateDnsName' > /tmp/instance_list
OLDIFS=$IFS
while read line
do
IFS=" "
set -- $line
echo "Host $1
Hostname $2"
done < /tmp/instance_list > /tmp/ssh_config
IFS=$OLDIFS
@sechiro
sechiro / allow-manage-their-own-credentials.json
Last active July 16, 2018 08:10
ユーザに自分自身のパスワードやアクセスキー、VirtualMFAなどのクレデンシャルの管理権限を与えるポリシー。AWSのサンプルポリシーを元に作成。サンプルでは、ユーザアカウントのところを「ACCOUNT-ID-WITHOUT-HYPHENS」としているところを「*」に変更。これで問題ないが、気になる場合は自分のアカウント番号に書き換え。AWSが提供している「Power User」には、IAM関連の権限が含まれていないため、一緒に使うと自分のアカウントのみIAMが操作できる「Power User」ができる。 http://docs.aws.amazon.com/IAM/latest/UserGuide/Credentials-Permissions-examples.html
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowUsersAllActionsForCredentials",
"Effect": "Allow",
"Action": [
"iam:*LoginProfile",
"iam:*AccessKey*",
"iam:*SigningCertificate*"
@sechiro
sechiro / ec2-user-data-sample.yml
Created September 2, 2014 17:09
AnsibleのEC2モジュールで、user_dataを指定するときのメモ
---
- hosts: localhost
gather_facts: no
tasks:
- name: Create EC2 Instance with user-data
local_action:
module: ec2
region: ap-northeast-1
image: ami-efbe98ee # Ubuntu 12.04 LTS, hvm:ebs, 20140829.2
instance_type: t2.micro
@sechiro
sechiro / create-index.sh
Last active August 29, 2015 14:05
ISUCON3予選復習時の設定。
# ISUCON夏期講習からのコピペ
# 【メモ】この設定で試した場合は、以下のmemo_privateがない方がスコアが上がった。
# "ADD INDEX memo_private(user, is_private, created_at)"
# これを入れるとMySQLのCPUボトルネックとなるので、このIndexはデータ更新コストが大きいと考えらえる。
cat <<EOF | mysql -u isucon isucon
ALTER TABLE memos ADD INDEX (is_private, created_at),
ADD INDEX mypage(user,created_at),
EOF

tmux shortcuts & cheatsheet

start new:

tmux

start new with session name:

tmux new -s myname

Bitnami AMI を使って、Gitlabサーバを立てる際のはまりどころ

AMIからインスタンスを作成したのち、以下の作業が必要となったのでメモ。

0. 使用したAMI

  • GitLab powered by Bitnami 6.7.5-0 on Ubuntu 12.04.3 Previous versions | Sold by Bitnami
    • bitnami-gitlab-6.7.5-0-linux-ubuntu-12.04.3-x86_64-ebs-mp-0e511dbb-6e38-4d85-848a-de8b2997462b-ami-21f3ea48.2 (ami-07286906)

1. パスワードリセット

# Private IPを使うようにしたいので、そのためのオプションを入れたFork版のec2sshを入れる
# 1. gitからgemを入れるため、specific_installをインストール
# 最新のspecific_install + gem 1.8.25 の組み合わせが動かないため、古いバージョンを入れる
# https://github.com/rdp/specific_install/issues/21
sudo gem install specific_install -v 0.2.7
# 2. リポジトリとブランチを指定して、フォーク版のgemを入れる
sudo gem specific_install -l https://github.com/sechiro/ec2ssh.git -b private-ip-feature
@sechiro
sechiro / get_ec2_metrics.sh
Last active January 4, 2016 06:09
aws cliを使ってCPU使用率(もしくは第一引数で指定したMetric)の平均値を確認。jqを入れているのは、タイムスタンプ順にソートするため。スクリプト中の"instance_id"には自分のインスタンスのIDを入れてください。
#!/bin/bash
namespace=AWS/EC2
instance_id=i-a63f41a3
os_name=`uname`
now=`date -u "+%Y-%m-%dT%H:%M:%SZ"`
if [ $os_name = "Darwin" ]; then
yesterday=`date -u -v-1d "+%Y-%m-%dT%H:%M:%SZ"`
else
yesterday=`date -u -d "1 days ago" "+%Y-%m-%dT%H:%M:%SZ"`
fi
@sechiro
sechiro / get_aws_billing.sh
Last active April 1, 2019 06:55
aws cliを使って料金を確認。リージョンは「us-east-1」固定(※1)。 ディメンションも「--dimensions Name=Currency,Value=USD」が必須。jqを入れているのは、タイムスタンプ順にソートするため。※1 http://aws.amazon.com/jp/billing/faqs/#Can_I_view_estimated_charge_metrics_or_set_billing_alerts_in_a_region_other_than_US-East
#!/bin/bash
namespace=AWS/Billing
os_name=`uname`
now=`date -u "+%Y-%m-%dT%H:%M:%SZ"`
if [ $os_name = "Darwin" ]; then
yesterday=`date -u -v-1d "+%Y-%m-%dT%H:%M:%SZ"`
else
yesterday=`date -u -d "1 days ago" "+%Y-%m-%dT%H:%M:%SZ"`
fi
start_time=${1:-$yesterday}