zuntan02のはてなブログ

備忘録的なものです

既存のAWS CodeCommitに接続するアカウントを追加で作成したメモ

【サマリ】

既に存在するAWS CodeCommitリポジトリにIAMアカウントベースで接続する。
(筆者はCodeCommitはおろかGitにも明るくないので誤りがあるかもしれませんが何かの足しになれば)

【作業メモ】

gitのURLをhttpsでやるかsshでやるかで方法が異なります。

HTTPS

手順

1)マネージドコンソールより利用者のIAMを作成(共通)
2)マネージドコンソールより[IAM]-[ユーザー]-対象のIAM詳細-[認証情報]を選択(共通)
3)[AWS CodeCommit の HTTPS Git 認証情報] で、[生成] を選択します。
→CodeCommitにHTTPS接続する際のBasic認証情報が生成されるので保存・連絡

※CentOS6などでgit cloneする場合、basic認証が通らずエラーとなるため、AWS CLI認証情報ヘルパー(未検証)を用いるか、或いは以下のようにして自動的にbasic認証をパスしてみてください

vi ~/.netrc

machine git-codecommit.ap-northeast-1.amazonaws.com
login 認証ID
password 認証パスコード

AWS CLI認証情報ヘルパー
https://docs.aws.amazon.com/ja_jp/codecommit/latest/userguide/setting-up-https-unixes.html

SSH

手順

1)利用者はあらかじめ

cd ~/.ssh
~/.ssh$ ssh-keygen -t rsa -b 2048 -f codecommit

の様にして鍵ファイルを生成し、公開鍵(上記のコマンドであればcodecommit.pub)を確認します
2)マネージドコンソールより利用者のIAMを作成(共通)
3)マネージドコンソールより[IAM]-[ユーザー]-対象のIAM詳細-[認証情報]を選択(共通)
4)「AWS CodeCommit の SSH キー」で公開鍵の中身を貼り付ける
 →成功すると「SSHキーID]が発行されるのでこれを連絡
5)利用者は以下のようにしてsshのConfigを設定し、git clone可能となる
vi ~/.ssh/config

Host git-codecommit.*.amazonaws.com
  User APK*****************
  IdentityFile ~/.ssh/codecommit(秘密鍵名)

Windows10でHostsFileManagerを利用する(.Net Framework 3.5の導入)

【概要】

WindowsPCでhosts書き換えを行いながら現行サイト・構築中のサイトを比較していると結構手間。特にPCに詳しくないお客様はhosts切り替えの説明だけで結構な時間を取ることがある。
(過去にこんな記事も書いた)
これまでもお客様にhosts書き換えを依頼するときに、定番のツール
Hosts File Manager
を紹介してきた(※)が、Win10での導入に当たって.NET Framework 3.5が必要だったため下記のメモを残す
※ブラウザのHosts書き換えプラグインも試してみたけど権限の問題でhostsファイルが書き換えられないことが多くてダメ。

【導入手順】

1)ダウンロード

Vector
https://www.vector.co.jp/soft/winnt/net/se406523.html
よりHFM_2.00_x86_ja.zipをダウンロード

2)インストール

HFM_2.00_x86_ja.zip を展開し、Setup.exeをダブルクリックしてインストール
→「.NET frameworkの3.5を必要とします」と出る場合は
Windows 8、Windows 8.1、および Windows 10 への .NET Framework 3.5 のインストール | Microsoft Docs
より

キーボードの Windows キー Windows ロゴ を押し、「Windows の機能」と入力して、Enter キーを押します。 [Windows 機能の有効化または無効化] ダイアログ ボックスが表示されます。
[.NET Framework 3.5 (.NET 2.0 および 3.0 を含む)] チェック ボックスをオンにして [OK] を選択し、メッセージが表示された場合はコンピューターを再起動します。

を実施して有効化。

3)起動

[スタート]-[Hosts File Manager]-[Hosts File Manager]で起動
※UI自体は非常にシンプルなので迷うことはないかと思います。

■詳細な利用手順はこちら

beyondjapan.com

【AWS】東京リージョンで[t3.medium]を立てようとしたら制限数エラー

【概要】

東京リージョンでt3.mediumのEC2インスタンスを立てようとしたら以下の制限数エラーが出た。

作成失敗
You have requested more instances (1) than your current instance limit of 0 allows for the specified instance type. Please visit http://aws.amazon.com/contact-us/ec2-request to request an adjustment to this limit.

→参考
oreout.hatenablog.com
東京リージョンだと初期値0台とかひどい

【上限緩和申請】

サービス制限の緩和
http://aws.amazon.com/contact-us/ec2-request

f:id:zuntan02:20181019152032p:plain

→一時間くらいで以下のメールが返ってきた

ご依頼いただきましたとおり、 以下のように上限値を設定いたしました。

                      • -

サービス: EC2 インスタンス
リージョン: アジアパシフィック(東京)
プライマリインスタンスタイプ: t3.medium
制限の名前: インスタンス上限
申請する上限数: 5

                      • -

早い!

以上。

【AWS】EIPを付与しているのにパブリックDNSが出ない

【原因】

  • VPCの設定で有効にしてない
  • EIPかパブリックIPが割り当てられてない

VPCの設定】

EIPは割り当ててるのにパブリックDNSが出ない!っていう感じだったのでメモ。
[アクション]-[DNSホスト名の編集]-[DNSホスト名]が「いいえ」の場合は「はい」に。
f:id:zuntan02:20180831194316p:plain
f:id:zuntan02:20180831194322p:plain
以上

【AWS】ELB配下で時間のかかる処理をしている時に504 Gateway Time-out

【結論】
ELB(ALB)のアイドルタイムアウトを適度に伸ばすと解決した
f:id:zuntan02:20180829184608p:plain

【参考】
https://urashita.com/archives/20389

【AWS】AmazonLinux2のyumリポジトリにパッケージが少ない件

【概要】

AWSの新標準AMIと思われるAmazonLinux2について、yumのデフォルトリポジトリ(amzn2-core)
はなんかヤケにパッケージが少ない。
できるだけAWSが用意してくれるリポジトリに従っていきたいので、以下の2段構えで構築した。

1)Nginxなど主要なパッケージは「Extras Library」からインストールする
2)上記にない場合はEPELを追加する

【詳細】

1)Nginxなど主要なパッケージは「Extras Library」からインストールする

提供されているトピック(=ソフトウェア群)一覧を確認

# amazon-linux-extras

  0  ansible2                 available  [ =2.4.2 ]
  1  emacs                    available  [ =25.3 ]
  2  memcached1.5             available  [ =1.5.1 ]
  3  nginx1.12                available  [ =1.12.2 ]
  4  postgresql9.6            available  [ =9.6.6  =9.6.8 ]
  5  postgresql10             available  [ =10 ]
  6  python3                  available  [ =3.6.2 ]
  7  redis4.0                 available  [ =4.0.5  =4.0.10 ]
  8  R3.4                     available  [ =3.4.3 ]
  9  rust1                    available  \
        [ =1.22.1  =1.26.0  =1.26.1  =1.27.2 ]
 10  vim                      available  [ =8.0 ]
 11  golang1.9                available  [ =1.9.2 ]
 12  ruby2.4                  available  [ =2.4.2  =2.4.4 ]
 13  nano                     available  [ =2.9.1 ]
 14  php7.2=latest            enabled    [ =7.2.0  =7.2.4  =7.2.5 ]
 15  lamp-mariadb10.2-php7.2  available  \
        [ =10.2.10_7.2.0  =10.2.10_7.2.4  =10.2.10_7.2.5 ]
 16  libreoffice              available  [ =5.0.6.2_15 ]
 17  gimp                     available  [ =2.8.22 ]
 18  docker=latest            enabled    [ =17.12.1  =18.03.1 ]
 19  mate-desktop1.x          available  [ =1.19.0  =1.20.0 ]
 20  GraphicsMagick1.3        available  [ =1.3.29 ]
 21  tomcat8.5                available  [ =8.5.31 ]

インストール

amazon-linux-extras install nginx1.12
2)上記にない場合はEPELを追加する

ex.Rootkit Hunter

# EPELの有効化
yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

# RootkitHunberのインストール
yum install rkhunter

Nginxで拡張子指定で静的ファイルをキャッシュするときの注意

nginxの設定例で、以下のようにして静的ファイルをブラウザにキャッシュさせる記述を見かける

server {
  ~
        location ~ .*\.(jpg|jpeg|gif|png|css|js|ico|woff) {
          expires 1h;
        }
}

ただ、この正規表現だと、[.js*]がマッチしてしまうため
hoge.json.php
とか
fuga.js.php
といったようなphpファイルが静的ファイルとして扱われてしまい、実行されない(ダウンロードされてくる)。
具体的には、WebPushツールのOneSignalのWordpressプラグインにそういうのがあった
(参考:https://wordpress.org/plugins/onesignal-free-web-push-notifications/

明示的に拡張子であることを表現するため、末尾のメタ文字($)をつけて

server {
  ~
        location ~ .*\.(jpg|jpeg|gif|png|css|js|ico|woff)$ {
          expires 1h;
        }
}

とすると、hoge.json.phpはサーバサイドで動作(ダウンロードされない)します。


※念のため、変更後、jpgやjsなどについてはレスポンスヘッダの
Cache-Control: max-age=xxxx(expires 1hなら3600)を確認しておいてください