- 1. module化したterraformをfor eachでリファクタリング →moved block で再作成防ぐ
- 2. Lambdaのレイヤーの参照方法
- 3. 第4回 The Twelve-Factor App on AWS & Django(AWSのアカウントを作成しよう)
- 4. AWS入門用にEC2-ApacheでHP公開してからやったこと
- 5. ECS上で運用中のシステム向け、メンテンナンスモード導入
- 6. AWS Direct Connect ゲートウェイとは
- 7. Security Hub の AWS Foundational Security Best Practices を眺めた感想
- 8. 【AWS】Cognitoのユーザープール作成後にカスタム属性が消えたお話
- 9. AWSのDBの種類まとめ(LTの記事起こし)
- 10. [社内勉強会資料] CloudFormationで構築する自動デプロイ環境 ~ 6/6
- 11. [社内勉強会資料] CloudFormationで構築する自動デプロイ環境 ~ 5/6
- 12. [社内勉強会資料] CloudFormationで構築する自動デプロイ環境 ~ 4/6
- 13. [社内勉強会資料] CloudFormationで構築する自動デプロイ環境 ~ 3/6
- 14. [社内勉強会資料] CloudFormationで構築する自動デプロイ環境 ~ 2/6
- 15. [社内勉強会資料] CloudFormationで構築する自動デプロイ環境 ~ 1/6
- 16. Amazon CloudFrontおよびAWS WAFを用いてエッジサービスを構築する
- 17. AWSでEC2でWebページを公開メモ
- 18. 【初心者】HTTP/3の特徴を調べてみた
- 19. AWS周りのツール一覧
- 20. 初めてのWAFの導入時に参考にした記事たち
module化したterraformをfor eachでリファクタリング →moved block で再作成防ぐ
前提:module化してある
概要:再作成防ぐ楽な方法ないのか模索
①for eachのリファクタリングで関連するリソースをすべてmoved blockで定義 → 王道
②module 名を無理やり変えてmoduleで作成されるリソースはすべてmovedで切り替えるといった手法を取る → 楽にできたら神
https://www.terraform.io/language/modules/develop/refactoring#enabling-count-or-for_each-for-a-module-call
結論:結局①に落ち着いた### 本編
#### module側
変更前
“`
“`変更後
“`
resource “aws_efs_file_system” “a-efs” {
for_each = var.efs-list
encrypted = true
performance_mode = “generalPurpose”
throughput_mode = “bursting”
tags = {
Lambdaのレイヤーの参照方法
Layerに配置したファイルは `/opt`で参照可能。
試しに表示してみる。Google fontから[Noto Sans Japanese](https://fonts.google.com/noto/use#how-are-noto-fonts-organized)をダウンロードし、`.font.zip`にしてLayerにアップロード。
Lambda側でLayer参照の設定をしてから以下を実行“`js
const fs = require(‘fs’);exports.handler = function(event, context){
fs.readdir(‘/opt/’, function(err, files){
console.log(files);
context.done(null, err);
});
}
“`Cloud Watchに以下のように出力される
“`
[ ‘.font’ ]
“`さらに`.font`ディレクトリの中身を表示してみる
“`js
const fs = requir
第4回 The Twelve-Factor App on AWS & Django(AWSのアカウントを作成しよう)
# 目次
– [第1回 The Twelve-Factor App on AWS & Django(The Twelve-Factor Appとは)](https://qiita.com/satsuma0711/items/3b928d0e5670a633f9d8)
– [第2回 The Twelve-Factor App on AWS & Django(バックエンドAPIを作ろう)](https://qiita.com/satsuma0711/items/850d57ad1557d0f8dddb)
– [第3回 The Twelve-Factor App on AWS & Django(フロントエンドSPAを作ろう)](https://qiita.com/satsuma0711/items/67d35253a237c976415f)
– 第4回 The Twelve-Factor App on AWS & Django(AWSのアカウントを作成しよう) ← 今回# はじめに
[前前回](https://qiita.com/satsuma0711/items/850d57ad15
AWS入門用にEC2-ApacheでHP公開してからやったこと
# AWS入門用にEC2-ApacheでHP公開してからやったこと
## 記事の内容
[初めてEC2を触ってみたので手順をまとめた](https://qiita.com/gnk263/items/27323fe3103a2a59ba27)
こちらの記事を参考にEC2でApacheを起動し簡単なページを表示した後にやったことをまとめた。## 目的
セキュリティを強化する。
勉強用にいくつかのサービスを触ってみる。## 背景
業務系アプリケーションエンジニアが私用で簡単なHPを公開する必要があった。
加えて近日中にCertified Cloud Practitioner 認定を受験する予定だが、似たような名前のサービスが多く覚えるのが大変だったため、勉強がてらAWSで環境構築することにした。
静的WEBサイトの公開だけならS3でもできるが、本業がwebアプリのSEなので、後学のためApacheで公開した。
– __できるだけプラクティスに沿ったものの、あくまで勉強用ということで、そのまま本番環境で使う類のものではないことをご理解ください。__
– __料金はよく確認し
ECS上で運用中のシステム向け、メンテンナンスモード導入
## 入る前に
こんにちは:) アプリケーションエンジニアのキムです。
今日は現在チームで運用中のECS Fargateベースのシステムに新たにメンテモードを作った経験談を残してみたいと思います。
この機能については、すでに様々な方法が存在して、たくさんいろんな方法を導入して運用してると思います。
今回案内する方法は、その中のただ一つの方法に過ぎないと思います。
このような方法を選択して運用してるところもあるんだーレベルでの受け入れでお願いします。## 前提条件
現在、私と私たちのチームが運用中のサービスの場合、基本的にはメンテナンスモードがあえて存在する必要がない構造です。
今回このような作業を行うことになった背景は、当サービスより上位にあるサービスが一定期間ベースでメンテナンス作業を行っていますが、その際、影響を受けるいくつかの状況が発生したため、当チームでもその対応が必要となりました。
そのため、巨大なサービス、アプリケーションに比べて比較的簡単に作業できる方法を採用したことを予めお知らせします。## システム運用状況
![image.png](https://qiita
AWS Direct Connect ゲートウェイとは
## オンプレミスとAWS VPCを接続するもの
ひとつのVIFを用いたプライベート接続で世界の全リージョンの複数のVPCと閉域で通信することができる。追加の費用は不要であり無料で利用することができる。ロケーションと同一リージョンへの通信の遅延などは心配はありません。
複数のデータセンターをDXGWに接続することはできるがDXGWを経由して他のデータセンターへ繋ぐことはできない。
※日本拠点DRMC→DXGW→シンガポール拠点DC
×これはできないよ。## Direct Connectのパートナー経由のタイプ
パートナの提供サービスは(占有型・共有型)の二つがあります。・占有型
connectionははお客様へお渡しするもの、その中で自由でVIFを設定することができます。
物理帯域は1G,10Gを占有しているのでVIFはシェアする形になります。
帯域制御が必要な場合はそれは顧客側の機器で実現する。・共有型
connectionはパートナーが所有している。パートナーの機能拡張で、帯域保証型でベストエフォートが様々である。またAWSが認可しているパートナー制度もあり、
Security Hub の AWS Foundational Security Best Practices を眺めた感想
# はじめに
Security HubのルールのAWS Foundational Security Best Practicesの内容を眺める機会がありました。
https://docs.aws.amazon.com/ja_jp/securityhub/latest/userguide/securityhub-standards-fsbp-controls.html
こういうルールがあるのかぁと意識できていなかった部分もあるので、それらを中心に感じた分類分け書いてみます
なお、セキュリティ要件やシステム要件と照合し、適切に設定することが本筋ではあるので、一旦、個人の感想と思ってもらえればと思います。# 書く内容
ルールを個人的な観点として以下3個にグループ化してみました。– だいたい組み込んでいるんじゃないか系
– あんまり意識されていなくてやってないんじゃないか系
– へぇこれもベストプラクティスに含まれるんだ系またこれらに分類されていないものは特段コメントはいらないかな、と思ったものです。
主に含めていないものは、暗号化、パブリックIPやパブリックセグメントへの配置、
【AWS】Cognitoのユーザープール作成後にカスタム属性が消えたお話
概要
以前インフラエンジニアとして働いていた現場での出来事。アプリチームからの依頼でCognitoのユーザープールを作成。アプリチームに引き渡し、帰ったらゲームをしようと思いながら休んでいたら…アプリチーム「ユーザープールのカスタム属性1つ足りなかったので追加してください」
自分「ごめんなさい、今すぐ追加しますorz」こんな感じでユーザープール作成時にカスタム属性を1つ入れ忘れミスしちゃったーと思いつつ、心の中のもう1人の自分がこんな事を思っていた。
「いや、そのカスタム属性の設定した記憶があるぞ…」
思い立ったが吉日、Slackでそのカスタム属性を検索すると、、以前にも同じカスタム属性が足りないとアプリチームから指摘されている人を発見!
これは単なるヒューマンエラーじゃないと思い検証の結果、とある条件下においてCognitoのユーザープール作成後にカスタム属性が消える現象を確認したので以下に記す。環境・条件
・AWS Console (CLIは試してないです)
・AWS Cognitoのユーザープール作成時
・標準属性として存在する属性をあえてカスタム属性として設定し
AWSのDBの種類まとめ(LTの記事起こし)
[JAWS-UG 朝会 #33](https://jawsug-asa.connpass.com/event/240120/) で DB の種類についてのまとめ LT をしました。
資料は公開していますが、LT内で喋った内容の補足を含めて記事公開します。
(だいぶ期間空いてしまいましたが…)## はじめに
### この記事で紹介する内容について
前述の通り、 [JAWS-UG 朝会](https://jawsug-asa.connpass.com/) でお話しした内容の補足記事です。
AWSのDBそれぞれについて、1枚絵レベルで説明していきます。
なお、この整理は [AWS エバンジェリストシリーズ AWSの基礎を学ぼう](https://awsbasics.connpass.com/) での学びの復習を目的としたものです。これに興味を持った方は、こちらの受講もお奨めします。
登壇時の資料は、こちらから確認できます。
https://twitter.com/98lerr/status/1523813119088152576?s=20&t=QiiAHAhY
[社内勉強会資料] CloudFormationで構築する自動デプロイ環境 ~ 6/6
# 第6回 終わりに(自動デプロイの動作確認と作成したリソース削除)
第6回は、自動デプロイの動作確認と作成したリソース削除について記述します。
それからオープントーンで行った卒業試験について説明します。前回:[[社内勉強会資料] CloudFormationで構築する自動デプロイ環境 ~ 5/6](https://qiita.com/toru-yamagishi/items/52e1d2719edbefdcc73e)
## 自動デプロイの動作確認
1. デプロイ前のWebページを確認します。
– 自動デプロイが完了したら、AWSマネジメントコンソールから、EC2の画面へ移動します。
– 左メニューから「ロードバランサー」を選択します。
– fargate.yaml実行時に作成したALBを選択して、「DNS名」をコピーします。
– コピーしたDNS名のURLにアクセスして画面を表示し、Hello Worldが表示されていることを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com
[社内勉強会資料] CloudFormationで構築する自動デプロイ環境 ~ 5/6
# 第5回 CloudFormationテンプレートの実行(CodePipeline)
さて第5回の今回は、本記事に記載のCloudFormationテンプレートを用いて、自動デプロイ(CodePipeline)を構築していきます。前回:[[社内勉強会資料] CloudFormationで構築する自動デプロイ環境 ~ 4/6](https://qiita.com/toru-yamagishi/items/801612fd72347e98bcd7)
## CloudFormationで作成するリソース
* CloudFormationテンプレートを使って、以下のAWSリソースを作成します
* IAM
* Role
* S3
* Bucket
* CodePipeline
* CodeBuild## CloudFormationテンプレート
### deploy-backend.yaml
“`yaml
AWSTemplateFormatVersion: “2010-09-09”
Description: “Buil
[社内勉強会資料] CloudFormationで構築する自動デプロイ環境 ~ 4/6
# 第4回 CloudFormationテンプレートの実行(IAM)
さて第4回の今回は、本記事に記載のCFnテンプレートを用いて、自動デプロイの実行に必要な権限(IAMロール)を構築していきます。前回:[[社内勉強会資料] CloudFormationで構築する自動デプロイ環境 ~ 3/6](https://qiita.com/toru-yamagishi/items/c9a2d877a5de553a4c4f)
## CloudFormationで作成するリソース
* CloudFormationテンプレートを使って、以下のAWSリソースを作成します
* IAM
* ManagedPolicy
* S3
* Bucket## CloudFormationテンプレート
### policy.yaml
“`yaml
AWSTemplateFormatVersion: “2010-09-09”
Description: “Policy for pipeline works”Parameters:
ProjectName:
[社内勉強会資料] CloudFormationで構築する自動デプロイ環境 ~ 3/6
# 第3回CloudFormationテンプレートの実行(ECS)
さて第3回の今回は、本記事に記載のCloudFormationテンプレートを用いて、自動デプロイのデプロイ先となるECSとECRを構築していきます。前回:[[社内勉強会資料] CloudFormationで構築する自動デプロイ環境 ~ 2/6](https://qiita.com/toru-yamagishi/items/580f49d158aecfc52473)
## CloudFormationで作成するリソース
* CloudFormationテンプレートを使って、以下のAWSリソースを作成します。
* ECR
* ALB
* Listener
* TargetGroup
* ECS
* Cluster
* Service
* TaskDefinition
* IAM
* Role
* CloudWatch
* LogGroup## CloudForma
[社内勉強会資料] CloudFormationで構築する自動デプロイ環境 ~ 2/6
# 第2回 CloudFormationテンプレートの実行(Network)
さて第2回の今回は、本記事に記載の「CloudFormationテンプレートを用いて、自動デプロイで利用するVPCを構築していきます。前回:[[社内勉強会資料] CloudFormationで構築する自動デプロイ環境 ~ 1/6](https://qiita.com/toru-yamagishi/items/deb79c9a3f0040b6f8ad)
## CloudFormationで作成するリソース
* CloudFormationテンプレートを使って、以下のAWSリソースを作成します
* VPC × 1
* Public Subnet × 2
* InternetGateway × 1
* セキュリティグループ
* CommonSecurityGroup:SSH(port:22)アクセス用
* PublicSecurityGroup:HTTP(port:80)、HTTPS(port:443)アクセス用## CloudFormati
[社内勉強会資料] CloudFormationで構築する自動デプロイ環境 ~ 1/6
こんにちは。AWSのCloudFormationはとっても便利ですよね。
ただ、開発エンジニアの方だと実は使ったことないという方もいらっしゃると思います。昨年、弊社でもそのような方向けにCloudFormationの社内ハンズオンを全3回で行いました。
今回はその内容や資料を公開します。
CloudFormationによるデプロイ自動化をテーマとしており、CodePipeline等の内容を含みます。
# 想定参加者
ハンズオン参加者の募集に際してはAWSのコンソールで作業できる方で、CloudFormationには触ったことがない方を想定しました。# 使用する環境
AWSのほか、GitHub、Dockerを使用します。# 以降の進め方
* CloudFormation概要
* 構築する対象の概要
* AWS CodePipelineのGitHubへの接続
* CloudFormationテンプレートの実行:テンプレートの編集
* CloudFormationテンプレートの実行①:VPCの構築
* CloudFormationテンプレートの実行②:ECR+ECSの設定
Amazon CloudFrontおよびAWS WAFを用いてエッジサービスを構築する
## はじめに
この記事は”AWS Hands-on for BeginnersAmazon CloudFrontおよびAWS WAFを用いて エッジサービスの活用方法を学ぼう”を
参考に記事にしました。## 今回構築するアーキテクチャ
今回構築するアーキテクチャは以下のようになっている。![AWS Cloud (5).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2040882/2c24658a-763e-8a2e-547d-3d1f2d1178c1.png)
## AWSグローバルインフラストラクチャとエッジサービスについて
AWS クラウドは、全世界 26 の地域にある 84 のアベイラビリティーゾーンにまたがっており、オーストラリア、カナダ、インド、イスラエル、ニュージーランド、スペイン、スイス、およびアラブ首長国連邦 (UAE) に 24 アベイラビリティーゾーンと 8 AWS リージョンを追加する計画が発表されている。(2022年8月現在)AWSのサービスは大きく2つに分けら
AWSでEC2でWebページを公開メモ
昔 AWSでEC2でWordPressやEC-Cubeで色々やっていたのですが
違う業界(?)に行っていたので忘れてしまった気がするので再設定のメモ失礼します。イ)まずルートユーザーのアカウント作成
ロ)EC2起動っ
ハ)Puttyでアクセス出来るようにする。
(以下コメントで追記予定)
【初心者】HTTP/3の特徴を調べてみた
# 背景・目的
CloudFrontでHTTP/3がサポートされた[ブログ](https://aws.amazon.com/blogs/aws/new-http-3-support-for-amazon-cloudfront/)を見つけました。
HTTP/3をあまり良くわかっていないので、このタイミングで概要を学ぼうと思います。# まとめ
– HTTP/3はQUICという技術を使用している。
– 転送はバイナリで行われる。
– ハンドシェイクが1回だけで済む。(従来はTCPやTLSでは複数回のハンドシェイクが必要とされていた)
– UDPを基盤として使用している。
– メタデータを含めて完全に暗号化され、通過するNATデバイス、ファイアウォールなどで参照、操作がされない。
– TLS1.3を必須としている。
– 低速NW、遅延の影響を受けやすい接続で実行速度が向上する。# 概要
## What is HTTP/3?
> HTTP/3 は QUIC を使用し、TCP の制限の多くを克服し、それらの利点を HTTP にもたらします。 TCP および TLS で既存の HTTP/2
AWS周りのツール一覧
## はじめに
こんなツールあったのかっていう発見をたまにするので一覧化しておきたかった
使ってて便利そうなものは適宜追加予定## 一覧
### AWS公式
| ツール名 | 概要 | 言語 | リンク |
|:-:|:-:|:-:|:-:|
| AWS-SDK | ソースコード上からAWSの各サービスのAPIを簡単に呼び出せるようにしたもの。
環境変数などから認証情報を取得してトークンを発行してAPIをコールしている。
Goはv2、Javascriptはv3が出ている | Go
Typescript
Javascript
Java
.NET
PHP
Python | [リポジトリリンク](https://github.com/aws/aws-sdk) |
| AWS-CDK | プログラミング言語よりCloudformationのテンプレートを生成してデプロイできるようにしたツール | Go
Typescript
Java
.NET
Python | [リポジトリリンク](https://github.c
初めてのWAFの導入時に参考にした記事たち
# はじめに
アプリケーションへの脆弱性攻撃対策として、候補にあがるのがWAFの導入かと思います。
ですが、いざWAFを導入しようかどうかと思ったときに、知見が全くと言っていいほどありませんでした。WAFにも多くの種類があり、最初はどのWAFが良いのか悩むと思います。
今回は、AWS WAFを導入しましたが、導入にあたり色々な偉大な先輩方の記事を読み漁り、
自分で手を動かしながら`導入→運用`まで持っていけるぐらいの知見を獲得することができました。そんな、初めてのWAF導入において、助けになった記事を一挙ご紹介します。
もし同じような境遇の人の助けになれば幸いです。
# ▼参考記事一覧
## AWS WAF
`AWS WAFとは?`という疑問を解消してくれた記事https://dev.classmethod.jp/articles/fully-understood-aws-waf-v2/
https://www.wafcharm.com/blog/how-to-choose-aws-managed-rules/
`AWS WAFマネージドルール`の詳細
http