- 1. Google Apps Scriptで、S3のCSVをGoogleスプレッドシートに書き出す
- 2. AWSハンズオン_6_VPCの1_VPC、サブネット、NATゲートウェイの構築およびインスタンスとの連携
- 3. Finchのイメージ格納先ディレクトリを変更する
- 4. CloudFormationを使ってセキュリティグループを作成する方法
- 5. Docker、Amazon EC2を学んで、Amazon ECS(Fargate)にDockerを用いたアプリをデプロイできるようになるまでの学習ロードマップ
- 6. Datadogの無料トライアルを利用して監視設定してみた
- 7. [SQLAlchemy] 神速の爆裂理解!!!コンソールログ上のパラメータをマスキングする方法!!!
- 8. AWSにおけるインシデント発生時のフローと概要
- 9. Lambdaのメモリサイズの設定値について考える
- 10. CloudFormationを使ってIAMロールを作成する方法
- 11. IAMポリシーのARNを特定する方法
- 12. AmazonLinux2でIPv4/IPv6対応のNATインスタンス作成する
- 13. Amazon Linux2でネットワーク帯域制御と遅延追加をやってみた
- 14. 「AWS Code サービス群を活用して、CI/CD のための構成を構築しよう!」のハンズオンを実施したのでまとめてみた
- 15. 【Serverless Framework】serverless-offlineでcannot get nullが返ってきて表示されないときの対処法
- 16. IAMが複数のMFAデバイスをサポート
- 17. TerraformをインストールしてTerraformでAWS上にEC2作ってみる
- 18. SSM Run Commandを使ってEC2(Windows OS)上でAWS CLIを実行しようとしたときにつまずいた話
- 19. AWS CodeCommitへの接続方法一覧(2022年度版)
- 20. Docker Desktop の代わりになるかも。AWS が OSS として公開した「Finch」を使ってみた。
Google Apps Scriptで、S3のCSVをGoogleスプレッドシートに書き出す
# はじめに
Google Apps Script(GAS)を用いて、GoogleスプレッドシートからS3のCSVを取得する必要があったため、色々調べていました。
古いライブラリの情報等がヒットするなどで情報収集が大変でしたので、自分が調べた時点での方法を記事にしました。# 参考
https://zenn.dev/tentel/articles/9fddc0c78ee8c9
https://tonari-it.com/gas-dialog-csv-parse-spreadsheet/
# やったこと
## AWS
### バケット、ユーザー作成
S3のバケットと接続用のユーザを、以下のCFnで作成します。
“`yaml:createBucketAndUser.yaml
AWSTemplateFormatVersion: 2010-09-09Resources:
InputfileBucket:
Type: AWS::S3::BucketUserForGas:
Type: AWS::IAM::User
Properties:
AWSハンズオン_6_VPCの1_VPC、サブネット、NATゲートウェイの構築およびインスタンスとの連携
AWSの初心者のさとしです
ハンズオンで勉強メモとして投稿いたします。
ご覧になったみんなさんにお役に立てればうれしいです
※:間違ったところがあれば、ご指摘していただければ幸いです#始まる前に
本日のハンズオン内容は
まず、VPCウィザードを使って、下記のVPCを構築していきます。
そして、パブリックサブネットとプライベートサブネットに1つずつインスタンスを設置します。
その後、NATゲートウェイを構築する前後に、パブリックサブネットのEC2インスタンスからプライベートサブネットのEC2インスタンスに接続する状況を確認していきましょう※:最後に、NATゲートウェイやElaspipなどお金が掛かるサービスを削除しましょう
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/488091/45892113-f055-6a4e-dd4b-f99a397c688f.png)
#本文
さあ、始まりましょう
1,VPCを作成
![image.png](https://qiita-image-
Finchのイメージ格納先ディレクトリを変更する
# はじめに
Docker Desktop の代替となる Finch というアプリケーションが AWS より発表された。
選択肢が増えることは非常に嬉しいニュースであり、期待を持って受け入れている。https://github.com/runfinch/finch
Dockerを使用していると、いつの間にかコンテナイメージが肥大化していてメインストレージを圧迫しているなんてことはありがちだと思う。Docker DesktopであればGUIから格納先を変更することも可能であるが、いかんせん `v0.1.0` としてリリースされたばかりのFinchにはそんな機能はない。
そんなFinchのイメージ格納先ディレクトリを変更する手順について記載する。
## 注意
内容は私の環境での調査結果であり、 `v0.1.0` とまだまだ開発の途上にあるアプリケーションであるため、十分な知識のもと自己責任において操作して欲しい。
# 結論
コンフィグファイルとおぼしきファイルを一通り見たが、イメージの格納先に関する設定項目は見当たらなかった。
イメージの場所を特定し、外付けSSDにシンボ
CloudFormationを使ってセキュリティグループを作成する方法
# CloudFromationとは
CloudFormationはプログラミング言語やYAML,JSONを使用してAWSリソースを構築出来るサービスです。
AWS環境をテンプレート化しておくことで、同じ環境を作成する時間を削減することができます。今回はYAMLで作成していきますので、JSONに変換したい方は次の記事をご参照下さい。
YAMLからJSONに変換する方法## 構成
![スクリーンショット 2022-11-26 18.38.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2983197/0ad6391a-d508-4674-d548-3806f7036f46.png)## 完成したテンプレート
“`:テンプレート
AWSTemplateFormatVe
Docker、Amazon EC2を学んで、Amazon ECS(Fargate)にDockerを用いたアプリをデプロイできるようになるまでの学習ロードマップ
このロードマップ/学習記録は[ProadMaps](https://proadmaps.com/1506616851853242371/roadmaps/40)で作成しました。
ロードマップの作成、共有から、作成したロードマップをマークダウンで出力ができるので、Qiita等の外部サイトや、個人ブログへの転記にも便利です。
https://proadmaps.com/1506616851853242371/roadmaps/40
# Docker、Amazon EC2を学んで、Amazon ECS(Fargate)にDockerを用いたアプリをデプロイできるようになるまでの学習ロードマップ
**概要**
Rails(APIモード)を、ECSにデプロイできるようになるまでに学習した内容をまとめました。振り返って、今ならこの順番で実施すればよかったという順番に並び替えています。細かいオプションはわからないけれども、大枠を理解して、何かエラーがあった時に調べつつなんとか対応出来るようにはなったかなと思います。インフラを理解したというのは程遠いですが。。
**タグ**
ECS,AW
Datadogの無料トライアルを利用して監視設定してみた
今回の環境はAmazonLinux2です。
セッションマネージャにて接続し、コマンドを実行しています。
# Datadog-AgentをインストールするDatadogAgentをインストールするにあたり、Datadogの無料トライアルを開始する際に自身のAPIキーが発行されますので、そのコマンドを入力してください。
DatadogAgentのYUMパッケージをインストールすることができるようです。パッケージのインストールが正常に終了すると下記画像のように出力されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2230506/65a2468a-6e69-ce71-5b78-93cdc600e125.png)※注意
Amazon Linux 2022 インストールの場合はlibxcrypt-compat パッケージが必要なため、下記コマンドを実行してください。
“`
dnf install -y libxcrypt-compat
“`ここまで完了すると、datad
[SQLAlchemy] 神速の爆裂理解!!!コンソールログ上のパラメータをマスキングする方法!!!
## 実装の目的
– AWSのCloudWatchなどのコンソールログ上でお客様の個人情報を開発者の目に触れるのを防ぐため
– SQLAlchemyではデフォルトでマスキングの設定はされていないため
## 説明しないこと
– DBへの接続方法
## DBセッティングファイルに以下の記述を追記
↓最初のログはこんな感じ
“`
2022-11-02 16:37:03,292 INFO sqlalchemy.engine.Engine [generated in 0.00014s] (2151, 1, 99, ‘20220101’, 1, 20)
INFO:sqlalchemy.engine.Engine:[generated in 0.00014s] (2151, 1, 99, ‘20220101’, 1, 20)
2022-11-02 16:37:03,297 INFO sqlalchemy.engine.Engine INSERT INTO workplace (customer_id, company_name, kana_company_name, business_t
AWSにおけるインシデント発生時のフローと概要
# はじめに
前回からの続きです。
AWSにおける、インシデント発生時のフローと概要をまとめます。https://qiita.com/Regryp/items/0e402d18d1a8ad0d3057
# フロー
基本は以下のような基本的なフローとなります。
次節で詳細を解説します。
![スクリーンショット 2022-11-26 15.59.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/584167/0c2c24f4-2a88-da70-0b33-bdc3910f298b.png)# 各種サービスと確認タイミング
| No | フェーズ | 概要 |
| :—: | :—: | :— |
| 1 | インシデント検知 | CloudWatchやEventBridgeを利用し、各種セキュリティイベントの通知を行います。メール、SNS、Slack等々確認が容易なものに送付することが望ましいです。また、インシデント管理として、SSM IncidentManagerやServi
Lambdaのメモリサイズの設定値について考える
## 概要
– Lambdaでのパラメータ値であるメモリサイズについての選択についての記事です
– Lambdaをあまり使ったことのない人、チュートリアルで使ったことのある人向けに記事です## tl;dr
– Lambdaは実行時間課金なのでメモリサイズを大きくする=ランニングコストが高くなるわけではない
– コスパの良いメモリサイズを選択するために、「AWS Lambda Power Tuning」で測定してみましょう
– 並列処理(CPU依存)をしている場合にはメモリサイズとコア数の関係を意識してメモリサイズを選択しましょう## Lambdaの課金体系
Lambdaの利用料金は、「リクエスト数」×「実行時間」によって決まります。
ここでいう実行時間は、「何MBのメモリサイズで何秒実行されたか」というような計算で決まります。
つまり、EC2などのサービスとは異なり、リソースサイズが大きいほど利用料金が高くなるというわけではありません。例: メモリサイズを2倍にすることで実行時間が1/2になる場合は、利用料金としては変わらなくなります(変わらないということは
CloudFormationを使ってIAMロールを作成する方法
# CloudFromationとは
CloudFormationはプログラミング言語やYAML,JSONを使用してAWSリソースを構築出来るサービスです。
AWS環境をテンプレート化しておくことで、同じ環境を作成する時間を削減することができます。今回はYAMLで作成していきますので、JSONに変換したい方は次の記事をご参照下さい。
YAMLからJSONに変換する方法## 構成
![スクリーンショット 2022-11-26 10.21.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2983197/f129accb-1004-5d0f-1450-0ef75783d445.png)## 完成したテンプレート
“`:テンプレート
AWSTemplateFormatVe
IAMポリシーのARNを特定する方法
## IAMポリシーコンソール移動
IAMポリシーのコンソールに移動して`検索バーにポリシー名を入力`する
![スクリーンショット 2022-11-26 10.38.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2983197/7d8c48bd-3cbb-58dc-15ff-256e38314a2a.png)## ARNを特定する
ポリシーを選択したらARNが記載してあります。コピーが必要な方は右端の`□`をクリック!
![スクリーンショット 2022-11-26 10.41.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2983197/bb5727da-e40b-d7fb-39a2-6e9ea650d0a1.png)
AmazonLinux2でIPv4/IPv6対応のNATインスタンス作成する
:::note warn
注意事項
IPv6初心者のため、記載内容に理解不足・誤りがある可能性があります。
:::# 目的
IPv6はIPv4と異なり、インターネットに直接ルーティング可能なアドレスがアサインされるようです。
とはいえ、特殊な環境要件においてIPv6でもNATしたいという場合の方法を考えました。# 概要
* 環境はAmazonLiunx2を利用。
* AmazonLiunx2のIPフォワーディングを有効にし、パケットの中継ができるようにする。
* IPv4ではiptables、IPv6ではip6tablesを利用して変換設定を行う。# 環境概要
パブリックサブネット側にNAT用のEC2インスタンスを配置し、プライベートサブネットに配置されたEC2とインターネット間の通信を中継するケースを想定。
![diagram.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309202/ace0e935-4e3a-1c9f-7927-7b37fe55e986.png)#
Amazon Linux2でネットワーク帯域制御と遅延追加をやってみた
# 目的
ネットワーク上で制約のある環境を疑似的に再現し、通信の挙動を確認したい。
* 通信帯域の上限を設定する
* 通信の遅延を設定する# やってみた方法
* AmazonLinux2でip forwardを有効にし、ルーターとして利用。
* 通信帯域の上限設定
* iptablesのlimit(hashlimit)
* iprouteのtcコマンド
* 通信の遅延
* iprouteのtcコマンド# ネットワーク構成
![bandwidth_diagram.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309202/7482ed38-dcb6-fd28-4b08-bd46474316b1.png)EC2(A)—EC2(NAT)(ルーター用)—EC2(B)
* VPCを作成
* サブネットを2つ作成
* EC2(A), EC2(B)をそれぞれのサブネットへ配置
* EC2(NAT)をEC2(A)と同じサブネットで作成。
* EC2(NAT)
「AWS Code サービス群を活用して、CI/CD のための構成を構築しよう!」のハンズオンを実施したのでまとめてみた
# やったこと
AWS公式のハンズオン「AWS Code サービス群を活用して、CI/CD のための構成を構築しよう!」を実施したので私になりにまとめてみました。
私自身がこれからCI/CDスキルを身につけようと思って実施したハンズオンですので、誤っている点はご指摘いただければ幸いです。感想やハートをいただけますと励みになります。# この記事の想定している読者
– AWSに興味がある方
– CI/CDに興味がある方
– 紹介しているハンズオンに興味はあるが、実施している時間が無い方# ハンズオンへのリンク
[AWS Code サービス群を活用して、CI/CD のための構成を構築しよう!](https://pages.awscloud.com/JAPAN-event-OE-Hands-on-for-Beginners-cicd-2022-reg-event.html?trk=aws_introduction_page “AWS Code サービス群を活用して、CI/CD のための構成を構築しよう!”)# 記事の目的
– 記事を書くことでAWSサービスを用いた CI/CD の理
【Serverless Framework】serverless-offlineでcannot get nullが返ってきて表示されないときの対処法
## はじめに
私はExpressアプリケーションをコストが低いサーバレス(API Gateway/Lambda/DynamoDB)にデプロイしようと考えました。
パブリッククラウドに慣れていない+従量課金制に恐怖があったので、できる限りデプロイ前に**ローカルでテスト**できないか調査し、Serverless Framework+プラグインを使用してローカルでテストできる環境を構築することにしました。
Serverless Framework+Serverless-offline+Expressでローカルにサーバレス環境を構築したところ、***ルートディレクトリ***にアクセスしたときに、cannot get null というエラーが発生しました。このエラー解決に時間がかかったので、記事にしておこうと思いました。
### この記事の対象者
– 同じエラーが出て困っている人
– Serverless Frameworkを使っている人
– サーバレスをローカル環境に構築したい人### **実行環境**
– OS:Windows 11 Home 21H2
– 言語
IAMが複数のMFAデバイスをサポート
## 概要
2022年11月16日、AWSはIAMユーザに対して複数のMFAデバイスをサポートするようになりました。
https://aws.amazon.com/about-aws/whats-new/2022/11/aws-identity-access-management-multi-factor-authentication-devices## 何がうれしいのか
今まではIAMユーザ毎で、単一のMFAデバイスのみのサポートでした。
その場合、万が一MFAデバイスを紛失した場合にログイン出来なくなる、MFAデバイスを家に忘れたため取りに帰らないといけない、など困るケースがありました。今回のアップデートによって、複数のMFAデバイスの割り当てが出来るようになり、利便性が増しました。
:::note warn
便利になった反面、複数登録できるようになったことによるセキュリティリスクもありますので、その点も踏まえてご検討ください。
:::## 試してみた
では、実際に試してみます。
:::note info
なお、今回はMFAデバイスとして、Chrome拡張機能
TerraformをインストールしてTerraformでAWS上にEC2作ってみる
# はじめに
Terraformの勉強を始めたので備忘録を兼ねて行ったことを投稿しようと思います。# Terraformの実行環境構築
Terraformはtfenvでバージョン管理ができるようなので今回はtfenvでTerraformをインストールします。### tfenvのインストール
macなのでbrewコマンドでインストールします。
“`
brew install tfenv
“`### tfenvでTerraformをインストール
最新バージョンのterraformをインストールします。
“`bash
tfenv install latest
“`### インストールしたTerraformのバージョンを確認します
“`bash
❯ tfenv list
1.3.5
No default set. Set with ‘tfenv use‘
“`### インストールしたTerraformのバージョンがデフォルトバージョンとなるように設定します
“`bash
❯ tfenv use 1.3.5
Switching defa
SSM Run Commandを使ってEC2(Windows OS)上でAWS CLIを実行しようとしたときにつまずいた話
## 環境
“`
OS:Windows Server 2016 Datacenter
SSM Agentバージョン:2.3.542.0
“`## やりたかったこと
SSM Run Commandを実行してEC2(Windows OS)上にあるファイルをS3にアップロードしたい。
実行したドキュメントはAWSが用意している `AWS-RunPowerShellScript`
commandsパラメータとして
“`
“aws s3 cp s3://hogehoge/fugafuga.csv {file_to_path}/fufafuga.csv”
“`を渡して、`{file_to_path}/fufafuga.csv`を S3バケット `hoghoge`上にアップロードしたいという非常にシンプルなもの。
## 事前準備
EC2上でRun Commandを実行するために必要な
1. SSエージェントのインストール
1. EC2への権限の付与などは
[【AWS】【SSM】Systems Manager の SSM エージェントをインストールその他設定して
AWS CodeCommitへの接続方法一覧(2022年度版)
## はじめに
AWS CodeCommit利用にあたって複数の接続方法が存在しているため、
それぞれ違い/利点をまとめた記事になります。## AWS CodeCommitとは
Gitベースのリポジトリを安全にホストする、
フルマネージドサービス型のソース管理サービスこと**CodeCommit**### CodeCommitのメリット
– 認証情報にIAMユーザが利用できるため、余分な認証情報の保持が不要となり認証制御が円滑に行える
– フルマネージドサービスにつきインフラの管理が不要
– 自動的に保管時/転送時にデータ暗号化
– セキュリティリスク低下/運用コスト低下## 前提知識のおさらい
### Gitについて
Gitはオープンソースのソースコード管理システム。Gitではブランチと呼ばれるリポジトリ(データの格納場所)のコピーが作成できる。
ブランチを使用することで、マスターバージョンのコードからコピーして自分の変更を加えることが可能になります。
ブランチのコードを変更したら、コミットという操作を行い差分として変更を登録したり、
共同作業者に変更点を通知して
Docker Desktop の代わりになるかも。AWS が OSS として公開した「Finch」を使ってみた。
# 概要
* 2022/11/23 に唐突に公開された [Finch](https://github.com/runfinch/finch) なるOSSがAWSより公開されました。
* どうやら、Docker Desktopの代わりとなりそうな、ローカルマシン上に仮想環境とコンテナランタイム、ビルドツールなど一式を楽〜に導入できるツールっぽいので試してみたという内容です。Today we are happy to announce a new open source project, Finch. ?
Finch is a command line client for building, running, and publishing Linux containers.
Learn more in this blog from @estesp and @ChrisShort ➡️ https://t.co/5qDdio806E#AWSCloud #containers #opensource pic.twitter.com/TDfcYlwwIs
— AWS Open Source (@AWSOpen) November 22, 2022
# Finchとは
* つい先日(2022/10/27)に、Docker社が、Docker の Team プラン、Business プランを値上げするニュースが発表された。期限も短く、急いで対応に追われた企業も多いのではないでしょうか・・・
https://www.itmedia.co.jp/news/articles/2210/18/news133.html
* まさかこのタイミングでという感じですが、AWS よりローカルマシン上に仮