- 1. aws configure profileはenvの前に無力
- 2. [AWS]Direct ConnectとTransit Gateway
- 3. TerraformでAWS VPCを変更する(outパラメータによる変更プランの変更と適用)
- 4. AWS App2Container で既存アプリケーションをコンテナ化しよう
- 5. AWS Toolkit for VS Codeのセットアップ
- 6. AWS Lambda 待望の RDS Proxy を CloudFormation で作ってみる
- 7. Rails5.2から導入されたcredentials.yml.encの使い方
- 8. PHPでAWS S3 の大きいファイルの読込
- 9. AzureAD SAML SSOを使うときの SAMLRequestを生成する
- 10. クラウド上のPython2系のスクリプトを3系に移行しアップデートする作業メモ
- 11. AWS EC2でデプロイ時に使うコマンド
- 12. 【AWS】CloudFormationでS3バケット作成とライフサイクルルールを設定する
- 13. AWS IAMまとめ
- 14. 会員制ライブ動画配信サイトの骨組をAWSで作ろう
- 15. AWS無料枠のつもりが請求が来てしまった話
- 16. 【RDS/Rails】Railsサーバ(AWS Cloud9で構築)とRDS(MySQL)間の接続を確立する
- 17. AWS SAA対策メモ(EC2, Lambda & IAM編)
- 18. CDKでLambda作ってSAMでローカルで動作確認したメモ
- 19. 初めての共同執筆で学んだことと失敗談
- 20. [AWS] AWS 利用費 の変遷をふり返ってみる
aws configure profileはenvの前に無力
# 環境
macOS Catalina 10.15.5
zsh# tl;dr
[AWS CLIの設定切替方法と、AWS_DEFAULT_PROFILEとAWS_PROFILEの違いについて](https://qiita.com/shonansurvivors/items/1fb53a2d3b8dddab6629) でAWSのPROFILEを切り替えようとして切り替わらなかった原因と対策## 切り替わらないよ?
Valueのところが「default」から「personal」に変わっているのに、access_keyとsecret_keyが切り替わらない。“`zsh
% aws configure list
Name Value Type Location
—- —– —- ——–
profile default
[AWS]Direct ConnectとTransit Gateway
#Direct Connectとは
一言で言うと、**オンプレ環境とAWSを繋ぐ専用線**、です。#ユースケース
AWSとオンプレ環境を繋ぐには以下の3種類があります。
・Direct Connect
・VPN
・HTTPS・SSHそれぞれで主に以下のような使い方をします。
Direct Connect・・・オンプレとAWS間で大量の通信が発生する場合
VPN・・・コストを抑えたい場合
HTTPS/SSH・・・通信要件がない場合、通信は暗号化して接続する、くらいの感覚回線で括ると、以下のように分けられます。
「インターネット接続」はVPN、HTTPS/SSH
「専用線」はDirect ConnectVPNの場合インターネット回線なので、ベストエフォートとなり速度が安定しない場合があります。
なので業務通信やオンライン処理が必要な場合はDirect Connectを選択した方が良いです。#利用料金
Direct Connectは通信キャリアによってサービスとして提供されます。
専用線として1G、10Gを引くことになるので構成にもよりますが月10〜20万くらいはいく
TerraformでAWS VPCを変更する(outパラメータによる変更プランの変更と適用)
TerraformでAWS VPCを変更するコード(コマンド)
「-out」パラメータでプランを保存した場合、コードとのズレや、環境とのズレが発生していた場合にどのような挙動やメッセージとなるのかを確認する。
下記の4パターンの挙動を確認する。
パターン① 環境も変更したい内容もズレは無し
パターン② 環境にズレがある(変更したい内容と競合する部分)
パターン③ 環境にズレがある(変更したい内容と競合しない部分)
パターン④ main.tfに更新がある## 実行環境
– Windows 10 Home (1919)
– Git Bash (git version 2.25.1.windows.1)
– AWS CLI (aws-cli/2.0.3 Python/3.7.5 Windows/10 botocore/2.0.0dev7)
– Terraform (v0.12.26)## パターン① 環境も変更したい内容もズレは無し
#### 変更前の状態
“`
$ aws ec2 describe-vpcs –region=us-west-2
{
“Vpcs
AWS App2Container で既存アプリケーションをコンテナ化しよう
## はじめに
2020/7/1 に 既存の.NET および Java アプリケーションをコンテナ化するための
AWS App2Container というツールがリリースされました。**AWS App2Container の発表 – アプリケーションをコンテナ化して AWS クラウドに移行する**
https://aws.amazon.com/jp/about-aws/whats-new/2020/07/announcing-aws-app2container/AWS App2Container は、起動中アプリケーションとその依存関係をコンテナイメージに
パッケージ化してECS タスクと Kubernetes ポッド定義を生成します。
またこれらをAWS 上にデプロイするための CloudForamtion テンプレートおよび、
CI/CD パイプライン用のテンプレートまで作成することもできます。AWS App2Container 自体は無料で利用可能で、デプロイする AWS リソースに対し
通常の利用料金が発生します。
Javaアプリケーションのコンテナ化、ECS on
AWS Toolkit for VS Codeのセットアップ
ユーザーガイドを見て解決
https://docs.aws.amazon.com/ja_jp/toolkit-for-vscode/latest/userguide/aws-tookit-vscode-ug.pdf
AWS Lambda 待望の RDS Proxy を CloudFormation で作ってみる
2020/06/30、RDS Proxy がプレビューを終了し、ついに GA (正式リリース) となったことが[発表](https://aws.amazon.com/jp/blogs/aws/amazon-rds-proxy-now-generally-available/)されました。
これまでアンチパターンと言われていた、AWS Lambda と RDS との接続について解決策のひとつとなることから、サーバーレス界隈では待望の機能であったと思います。
この記事では、CloudFormation でこの RDS Proxy を作ってみたいと思います。が、その前に、RDS Proxy について少し振り返ってみたいと思います。
# RDS Proxy は AWS Lambda にとって何が嬉しいのか
AWS Lambda はいわゆるサーバーレスのサービスです。そのため、常在的に起動しているリソースは基本的にありません。なんらかのイベントが発生したことを契機に、Lambda 上で実装したアプリケーションを動作させるためのリソースがスピンアップするので、例えば HTTP 要求が着信し
Rails5.2から導入されたcredentials.yml.encの使い方
Rails5.2では新規アプリを作成した時にconfig/secrets.ymlが生成されず
代わりにconfig/credentials.yml.encが生成されるようになったみたいです。既に本番環境などでRailsの古いバージョンで運用していてRails5.2にアップグレードする場合は
config/secrets.ymlではなく、config/credentials.yml.encの仕組みが使われるみたいです。Rails5.2までは従来のconfig/secrets.ymlを使用するやり方などもあるみたいですが
Rails6アップグレードのことも考えconfig/credentials.yml.encを導入してみましたので
忘備録のために投稿します。## 1. credentials.yml.encとmaster.keyの生成と設定
credentials.yml.encは直接エディタから編集する事はできないので、ターミナルでエディタを指定して作成、編集する。“`
$ EDITOR=vim bundle exec credentials:edit
“`ちな
PHPでAWS S3 の大きいファイルの読込
## やりたいこと
– amazon s3 から大きめのファイルをダウンロードしたい
– いちどに取得しよとすると大変そうなので少しずつ取得したい。
– PHP で取得を行う## 接続情報を準備する
“`php
define(‘S3’, [
‘KEY’ => AWSのS3のKEYを設定する,
‘PASS’ => AWSのS3のパスワードを設定する,
‘DIR’ => AWSのS3のディレクトリを設定する(s3://[/ ]))
]);
“`## 接続を行う
– `AWS SDK for PHP` を使用して接続する
– `Amazon S3 ストリームラッパー` を使用して接続操作を行う“`php
require_once ‘aws/vendor/autoload.php’;// S3 接続を行う
$s3 = S3Client::factory([
‘credentials’ => [
‘key’ => S3[‘KEY’],
‘secret’ => S3[‘PASS’
AzureAD SAML SSOを使うときの SAMLRequestを生成する
# 前提
– SAML初心者です
– 全体的によくわかってないけれどやってみた結果をまとめてみました
– ちょっと冗長です# 経緯
– AzureADをIDプロバイダ(IdP)、AWSをサービスプロバイダ(SP)として使う設定をします
– [Microsoftのチュートリアル](https://docs.microsoft.com/ja-jp/azure/active-directory/saas-apps/amazon-web-service-tutorial) に沿って設定しました
– https://myapps.microsoft.com へアクセスし、Azureログインした上で、AWSアイコンをクリックすると、AWSへ設定したロールでアクセスできました![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/53115/21fe49bf-cbd2-f9f9-3cf1-9e0dda81d2ca.png)
– IdP側に各SPへのメニューがあるので、これで使えるのでまあ問題ないと思う
クラウド上のPython2系のスクリプトを3系に移行しアップデートする作業メモ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/110571/a73b4899-0882-63f5-df12-de3b073326e1.png)
# これは何
– ~~いまだに動いている~~ Python2系のスクリプトを3系にアップデートするときの作業(事前準備含む)の備忘メモ# 前提
– pyenvを使用してPythonのバージョン管理を行っている
– Dockerやvirtualenv, Pipenvは未使用# 概要
1. 移行するPythonを決める
2. ローカルで検証する
3. 本番(stg)でバージョンを上げる# 手順
– 以下で簡単に移行手順を示します## 事前調査
### 現在の動作環境を確認
– 使用しているOSによってアップデートする先のPythonのバージョンが限られているので、事前に調査する
– サーバ上で `pyenv install –list`して、移行できるPythonのバージョンを確認する
– 以下はLinuxのOSが `Linux
AWS EC2でデプロイ時に使うコマンド
#EC2 serverへ
“`terminal:local
$ cd .ssh
$ ssh -i XXXX.pem ec2-user@xx.xxx.xx.xxx
“`#nginx再起動
“`terminal:本番環境
$ sudo service nginx restart
“`#mysql restart
“`terminal:本番環境
$ sudo service mysqld restart
“`#kill unicorn
“`terminal:本番環境
$ ps aux | grep unicorn
↓
ec2-user 6906 1.0 10.5 431816 106508 ? Sl 06:49 0:02 unicorn master -c /var/www/chat-space/current/config/unicorn.rb -E deployment -D$ kill 6906
“`
#deploy
“`terminal:ローカル
$ bundle exec cap production deploy
【AWS】CloudFormationでS3バケット作成とライフサイクルルールを設定する
CloudFormationでS3バケット作成、ライフサイクルルール・バケットポリシーの設定をしたのでCloudFormationのテンプレート紹介と説明をしていきます。(CloudFormationはCFnと以下略)
そもそもS3バケットの作成目的はCloudWatch LogsからS3へエクスポートするためでした。
その前提で、バケットポリシーを設定しています。
いずれCloudWatch LogsからS3へエクスポートするLambdaを開発したブログも書こうと思っています。# 構築内容
– S3バケット作成
– ライフサイクルルールの設定
– 30日後にストレージクラスを標準IA
– 1年後に削除
– バケットポリシー
– CloudWatch LogsからS3へエクスポート可能# CFnテンプレート
GitHub Gistにもあげておきました -> [s3.yml](https://gist.github.com/homoluctus/4bd215d7fa6a6e4d07f69fb55c39afe9)
“`yaml
AWSTemplat
AWS IAMまとめ
# はじめに
AWSのIAMについて自分なりに理解が曖昧な部分があったので、
備忘を兼ねてまとめようかと思います。# IAMとは
IAMとは「Identity and Access Management」の略です。
AWSのリソースへのアクセスを安全にするため**認証/認可**サービスです。# AWSアカウント
IAMを理解する上でAWSアカウントについて知る必要があります。
AWSには大きく分けて2種類のアカウントがあります。### 1. ルートアカウント(AWSアカウント)
AWSヘのサインアップ時に作成されるアカウント。
AWSの全サービスに対してネットワーク上のどこからでも操作できる権限を持っている。
**請求、セキュリティ、ネットワークに関して独立している**。
非常に強力なアカウントであるため、利用には十分に気をつける必要がある。
日常的には、利用しないことが推奨される。### 2. IAMユーザーアカウント
AWSのサービスの利用者に対して、権限を付与したアカウント。
ユーザーの権限を正しく制限することで、より安全にAWSを利用できるようになる。
日常的に
会員制ライブ動画配信サイトの骨組をAWSで作ろう
こんにちは?
今日は、タイトルのことを↓のような方法で実現してみます。—-
* S3にHLS動画を置く。パブリックアクセスは許可しない。
* CloudFront経由でのみ、その動画を再生できるようにする。
ただしCloudFrontの暗号鍵で署名したCookieが必要とするよう設定する。
* CloudFrontにドメインを割り当てる。
* AWS SDKのCloudFrontクライアントが使えて署名Cookieを操作できる言語(本記事ではPHP)で、動画配信WEBアプリケーションを作る。
* WEBサーバーに、CloudFrontとセカンドレベルドメインまで同じドメインを割り当てる。
またCloudFrontの暗号鍵を持たせる。(これでCloudFrontとWEBサーバーで署名Cookieを共有できる)
* あとは署名Cookie発行をWEBアプリケーションの業務ロジックでコントロールすれば、会員制動画配信が実現可能!(これ以降は本記事では割愛します。)ついでにCORS対応を施して、
Safari以外のブラウザ(本記事ではChrome)でHLS動画
AWS無料枠のつもりが請求が来てしまった話
# ある日
Gmailに気になるメールが。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/266454/94318fdd-709d-25c8-8ae3-d1605e2ea3c6.png)請求メール?
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/266454/6892e1bf-772b-c026-5ca3-86953fb57bb2.png)
5000円くらい請求されてる!?
AWSアカウントはいくつか持っているが、EC2のみ利用しており、アカウント作成から1年経っていない、かつ無料枠内におさめているはず…(t2.micro×1台のみ)
なんでだ!?# 原因
__AWS Organizations__ を設定していることが原因でした。
下記みたいな組織構成です。“`
マスターAWSアカウント・・・2017年あたりに作成
├ メンバーAWSアカウント1・・・2020年初
【RDS/Rails】Railsサーバ(AWS Cloud9で構築)とRDS(MySQL)間の接続を確立する
##目標
Railsサーバ(AWS Cloud9によって構築)とRDS(MySQL)間の接続を確立する##はじめに
ほぼメモです。
Railsはデフォルトでsqlliteをデータベースとして利用する設定になっているので、
それをRDSで構築したMySQLを利用するよう設定変更しました。##前提
・RailsサーバがCloud9によって構築済みであること(※)。※以下記事の「Cloud9にチャレンジ!」までを実施する
[[初心者向け]Cloud9で五分でできる、”Yay! You’re on Rails!”(Cloud9にチャレンジ!)](https://qiita.com/Kouch/items/26330d544b5d815986bb#cloud%EF%BC%99%E3%81%AB%E3%83%81%E3%83%A3%E3%83%AC%E3%83%B3%E3%82%B8)##作業の流れ
| 項番 | タイトル |
|:—-:|:————-|
| 1 | [RDSを構築する](#1rdsを構築する) |
| 2 | [Railsサーバから接続する](
AWS SAA対策メモ(EC2, Lambda & IAM編)
SAA対策の自分用のメモ。
どんどん更新して加筆修正していく予定。## EC2
インスタンス起動時にパブリックIPアドレスを自動振り分けするか、無効にするのか選べる
パブリックIPアドレスはECインスタンスを再起動すると変わる
EC2の課金はrunningの時のみ**プライマリプライベートIPアドレス**
最初に付与するプライベートIPアドレス
指定しなくても自動割り当て
EC2インスタンスを削除しない限りずっと同じ**セカンダリプライベートIPアドレス**
ENI(Elastic Network Interface)をEC2にアタッチすることで、を割り当てることができる。
取り外し自由であり、他のEC2インスタンスにも付け替え可能– **オンデマンドインスタンス**
デフォルト。初期費用などなし。従量課金。
– **リザーブドインスタンス**
1 or 3年間、最大75%引き、全額/一部前払いか前払いなしで割引率は変わる。– **スタンダード** リージョンやAZを指定、その中でなら配置転換可能。他へは手続きが必要。
– **コンバーティブル
CDKでLambda作ってSAMでローカルで動作確認したメモ
最近仕事でCDKを触り始めたので、個人でも適当なSlack botでも作ってみようとかと思って触ってみてます。デプロイがとてもラクとはいえ、Lambdaを動作確認しながら作っていくのに毎回デプロイするのはつらみです…
調べてみると、CDKで作ったLambdaでもSAMを使ってローカルで動かす方法があるようなので、スタックの作成からLambdaのローカル実行まで一通り試してみました。
# 環境
* OS
* Windows10 WSL(Ubuntu 18.04 LTS)
* macOS Mojave
* CDK 1.46.0
* SAM 0.53.0
* Docker 19.03.11
* VirtualBox上のUbuntu 18.04 LTS# CDKでLambdaの作成
## CDKインストール
npmでインストール。
“`sh
# CDKインストール
npm install -g aws-cdk
/home/hotaru/.anyenv/envs/nodenv/versions/12.16.3/bin/cdk -> /home/hotar
初めての共同執筆で学んだことと失敗談
縁あって会社の同僚と技術本を共同執筆することになりました。
全員執筆は初めてだったのでてんやわんやになりながらもなんとか無事書き終えはしましたが、「ああすればよかったのかな」と思う事もそれなりにありました。
これから技術書の執筆にチャレンジする方や、次の機会(といっても今のところ予定はなし)のためにメモを残します。
これから執筆にチャレンジされる方の参考になれば嬉しいです。## 執筆時の心情とやったこと
### 執筆準備期間
執筆の話が出たのが昨年の夏頃で内容は AWS 関連の入門書でした。
まずは、出版社の方と大綱スケジュールと執筆内容の認識合わせを行い、大まかな計画(本の章などをどうするか)をたてます。
僕らは年末に re:Invent が控えているので年明けから本格的に書き出す計画でそれまではかるく作業をすすめることにしました。
振り返るとこのあたりで決めごとをきちんと抑えずにふわっと始めたのが後半のバタバタに繋がった気がします・・### 執筆初期
re:Invent の影響を受けなさそうなところから執筆していく。
.md 形式で執筆してファイルを GitLab のリポジ
[AWS] AWS 利用費 の変遷をふり返ってみる
# はじめに
\_s\_\_o\_ です。2019 年 1 月頃から (個人的に) AWS 利用 (運用) を開始しました。今月 (2020 年 7 月) で約 1 年半。費用としては、現在は、だいたい「6 \$ 強/月」におさまっています。自身の備忘も兼ねて、初期から今までのコスト変遷を追うとともに、コスト変動タイミングで何をしたか、少し振り返っていきたいと思います。
# AWS 利用の動機
そもそも、なぜ AWS 利用をしようと思ったのか。理由は主に下記 3 点です。– 2018 年 11 月末に結婚。妻と家計を共有できる Web アプリが欲しかった
– 2018 年 12 月時点、AWS 絡みの案件にアサインされる目処が立っており、自己研鑽をしたかった
– サーバ運用も生業としていたので、仕事勘を養いたかった一番上の理由が主です。夫婦間でしか利用しない Web アプリのため、サービス (サーバ) の要件は下記程度でした。
– 簡単な Web アプリが動く程度のスペックで OK
– 夜間帯は停止していて OK
– 何かあっても、最悪 1 日前に戻せれば OK
– で