- 1. 【IT未経験向け】インフラエンジニアのキャリアパス【現役インフラエンジニアが解説】
- 2. あなたのAWS S3は安全ですか?
- 3. ROSAクラスタの構築(自前のVPC内、且つ、STSモードで、Private Linkを添えて)
- 4. AWS SNS/SQSによるメッセージ送受信のサンプル(Go言語)
- 5. cloudfrontのフィールドレベル暗号化とは
- 6. EC2インスタンス起動/停止をLambdaで自動化してみた
- 7. Dockerでamazonlinuxを利用してnodejsの環境を作成する
- 8. samでlambdaのデプロイ
- 9. CDKでFargate&ECS Exec
- 10. Lightsailで独自ドメインを付けてSSL認証にする。
- 11. EKS の LoadBalancerController で http → https のリダイレクト
- 12. 【AWS】AWS Codeシリーズ
- 13. AWS利用して栃木県コロナデータのレポート出力を自動化する構成を考えてみた
- 14. 【AWS】Terraformでアクセスを分散、WebサーバーをHTTPS化する その2(Route53)
- 15. MENTAでインフラ/サーバー周りをコーチングしてもらったことを振り返る
- 16. API Gateway でLambda実行後、特定のページにリダイレクトする ②
- 17. terraformでec2サーバーのキーペアを設定して起動する
- 18. AWS SecretsManager motoを使用してpytest する方法
- 19. AWS(EC2 + RDS) でLaravel環境構築
- 20. [Python]ローカルPCからSSHトンネリングを行いDB接続する方法 メモ
【IT未経験向け】インフラエンジニアのキャリアパス【現役インフラエンジニアが解説】
# はじめに
* インフラエンジニアとしてどうキャリアを積んでいけばよいか悩んでいる
* そもそもインフラエンジニアとして何がしたいか、どんな職種があるのか分からない
* 最短で効率よくキャリアをアップさせる方法を知りたい
このような悩み、疑問に答えます。
本記事を読むと下記についてのことが分かります。* インフラエンジニアのキャリアを知る
* インフラエンジニアとして目指すべきキャリアの方向性が分かる
* 結論はクラウド(AWS)エンジニアを目指すべき
# 記事の信頼性
筆者はAWS経験5年程度です。AWS資格は5冠達成しました。
現在は大規模ECサイトのAWS運用を任されるようになっています。# インフラエンジニアの職種
まずはインフラエンジニアとしてどんな職種があるのか、その職種でどんな知識が必要かをざっくり紹介します。
## 職種共通知識
基本情報処理技術者レベルの基礎知識は必須です。
[基本情報技術者試験(FE) ~ ITエンジニアの登竜門~](https://www.jitec.ipa.go.jp/1_11seido/fe.html)ど
あなたのAWS S3は安全ですか?
## はじめに
みなさま、超ウキウキするイベントが開催されていることはご存知でしょうか。
TrendMicro社が開催する以下の**イベントで大賞を取ると、超大盤振る舞い、アマゾンギフト券10万円分が手にできます!!**
TrendMicro社が誇るクラウドセキュリティ製品について学びを深めることができて、なおかつ商品ゲットのチャンスもあるということで、参加するしかない…!!と本記事を執筆するに至りました。https://qiita.com/official-events/21bbb48549a4a68172a4
ギフト券を取るぞという気持ち半分、公平な目線でTrendMicroの製品を評価していき、より良い記事にしたいと考えています。
**アプリケーションでAWS S3を利用している方に、ぜひご覧いただけますと幸いです。
まだ利用されたことがない方も、AWS S3をアプリケーションを利用する機会も増えていると思いますので、ぜひ未来のためにご参考ください。**## AWS S3のセキュリティって意識できてますか?
突然ですが、AWS S3のセキュリティについて、しっ
ROSAクラスタの構築(自前のVPC内、且つ、STSモードで、Private Linkを添えて)
## ROSAのカスタマイズ
ROSAは愚直にインストール手順を実行すると、以下のような仕様となる。
* インストーラが作ったVPC内にクラスタが作られる
* Red Hat SRE Team用のIAM Userが勝手に作られる
* Red Hat SRE Teamからのアクセスはインターネット経由になるところが、色々アップデートが入り、以下のようなアレンジが効くようになった模様。
* 自前のVPCにクラスタを作れる
* IAM Userは不要で、AssumeRoleでSTSから一時トークンもらってSRE活動をしてくれる(たぶん)
* Red Hat SRE TeamからのアクセスはPrivate Link経由になるとまぁ、規定のLanding Zoneでしか活動が認められていない民にとっては、尊い機能がリリースされたんですって。
ところが、[インストール手順をなぞってみてもうまく行かなくて死んだ](https://qiita.com/1ksen/private/cf83324d5fa3f1c69b3e)ので、~~ビアを呷りながら~~きれいな心でリトライするんだ!(*^◯
AWS SNS/SQSによるメッセージ送受信のサンプル(Go言語)
## 前準備
1. SNSのトピックを作る
– 名前は適当
– タイプは標準
– 他はすべてデフォルト値でOK。
1. SQSのキューを作る。名前は適当、他は
– 名前は適当
– タイプは標準
– 他はすべてデフォルト値でOK。
1. SQSを作ったら、そのSNSサブスクリプションに最初に作ったSNSを追加する## SNSでメッセージを送信
“`go
package mainimport (
“flag”
“fmt”
“github.com/aws/aws-sdk-go/aws/session”
“github.com/aws/aws-sdk-go/service/sns”
“os”
)func main() {
profile := flag.String(“p”, “”, “AWSの認証に使うProfile。未指定ならdefault”)
msgPtr := flag.String(“m”, “”, “The message to send to the subscribed users of the topic”)
topi
cloudfrontのフィールドレベル暗号化とは
## 勉強前イメージ
フィールドレベルということはhttpの分野別の暗号化してるって感じ?
## 調査
### フィールドレベル暗号化 とは
cloudfrontの機能のフィールドレベル暗号化は
個人を特定できる情報などの機密データのセキュリティをより強化できるようになりました。
ユーザが決めたフィールド固有の暗号化キーを使用して、
リクエストがオリジンに転送される前にhttps内で機密データを更に暗号化します。### フィールドレベル暗号化の設定
以下の手順でフィールドレベル暗号化を行います。
– 1. RSA キーペアの作成
フィールドレベル暗号化の前のパブリックキーの設定を行います。
– 2. パブリックキーを CloudFront に追加する
設定したパブリックキーをcloudfrontに追加します。
– 3. フィールドレベル暗号化のプロファイルを作成する
フィールドレベル暗号化のプロファイルで暗号化するフィールドの定義を行います。
– 4. 設定を作成する
特定のデータフィールドの暗号化に使用するプロファイルを指定します。
いろんなシナリオでオ
EC2インスタンス起動/停止をLambdaで自動化してみた
## はじめに
Lambdaを使ったEC2インスタンスの自動起動/自動停止の環境を構築したので紹介します
きっかけは業務でcrontabファイルを使用しており`Lambdaに移行できるのでは?`と思い実装しました
一回構築してしまえばめんどくさい手作業が自動化できますしヒューマンエラーも防げるのでおすすめです## 対象読者
* 個人アプリのサーバー費用節約したい人
* EC2は触ったことあるけどLambdaは触ったことがない人
* 自動化に興味のある人## 前提
* AWSアカウント作成済み
* EC2インスタンス作成済み## 実装の概要
**実装時間: 30~60分**
1. IAMロールの作成
2. LambdaでEC2インスタンスの起動・停止処理を実装
3. Amazon EventBridgeで Lambdaを実行する時間を指定する## IAMロールの作成
AWSにログインして `IAM > ポリシー > ポリシーを作成 > JSONタブ`に進むとポリシー作成画面が表示されます
![スクリーンショット 2021-08-23 9.16.25.png](http
Dockerでamazonlinuxを利用してnodejsの環境を作成する
##Dockerfileの書き方
参考記事https://qiita.com/pottava/items/452bf80e334bc1fee69a
##amazonlinuxをイメージにコンテナを作成
なるべくEC2と同じ環境で作業したいためamazonlinuxでの環境構築を行う“`
ローカルの作業ディレクトリ> docker run -it amazonlinux
Unable to find image ‘amazonlinux:latest’ locally
latest: Pulling from library/amazonlinux
85ee02fe1a09: Pull complete
Digest: sha256:2e42b5d170dbb6d54d35b3b64627480de9687b52cfbab2086267a0fd2acd7bef
Status: Downloaded newer image for amazonlinux:latest
bash-4.2# ls -lta
total 60
drwxr-xr-x 5 root root 36
samでlambdaのデプロイ
# 目次
・samの導入
・sam init
・sam build
・samconfig.tomlの作成
・sam deploy# samの導入
brewによるインストール“`
$ brew tap aws/tap
$ brew install aws-sam-cli
“`もしくはpipによるインストール
“`
$ pip install aws-sam-cli
“`# sam init
対話形式でプロジェクトを作成します。“`
$ sam init
Which template source would you like to use?
1 – AWS Quick Start Templates
2 – Custom Template Location
Choice: 1
What package type would you like to use?
1 – Zip (artifact is a zip uploaded to S3)
2 – Image (artifact is an
CDKでFargate&ECS Exec
# CDKでFargate&ECS Exec
## はじめに
### 内容
CDKでECS Execが有効なコンテナーを作成しようとしたら、躓いてしまったのでその紹介しながら、CDKでECS Execできるまでの最小構成のテンプレートを記述しています。### 環境
| 日付 | 2021年8月22日 |
| ————- | ————- |
| aws cli | 2.2.27 |
| @aws-cdk/core | 1.117.0 |### ECS Execとは
AWSのDockerコンテナの実行サービスであるECSで実行中のコンテナに対してコマンドを実行できるという機能です。簡単にいうとAWS上のコンテナに対してローカルのコンテナと同じように`dokcer exec`や`docker-compose exec`が実行できます。もちろんbashを起動することで対話的なコマンドラインで作業することもできます。[参考 Amazon ECS Exec](https://aws.amazon.c
Lightsailで独自ドメインを付けてSSL認証にする。
### 前提
あいからわず自分用メモに近い記事です。読む方のために、スクリーンショットやコマンドを細かく記載していきますので、参考資料というより
実際にやらなくてもやったつもりになれる記事を目指していきます。Route53で直接ドメインを取れば簡単なのかもしれませんが、今回は別のGoogleDomainsで取得中のドメインを使ってLightsail上のnginxに紐づけてrailsアプリを起動させるところまでやっていきます。
なお、モザイクや黒塗りが好きではないですが、スクリーンショットは加工してあり、
独自ドメインの部分に`mydomain.app`
静的IPのところを`99.83.154.118`と直しています。### 現在までの状態
LightsailでAmazonLinux2インスタンスを作ります。![AmazonLinux.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285882/f70ddf96-500e-6b6a-38fd-70cb6daeeb1c.jpeg)
その後A
EKS の LoadBalancerController で http → https のリダイレクト
## やりたいこと
EKS の LoadBalancerController で http を https にリダイレクトさせたい## よくある方法
https://kubernetes-sigs.github.io/aws-load-balancer-controller/v2.2/guide/tasks/ssl_redirect/“`
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
namespace: default
name: ingress
annotations:
kubernetes.io/ingress.class: alb
alb.ingress.kubernetes.io/certificate-arn: arn:aws:acm:us-west-2:xxxx:certificate/xxxxxx
alb.ingress.kubernetes.io/listen-ports: ‘[{“HTTP”: 80}, {“HTTPS”:443}]’
alb.ing
【AWS】AWS Codeシリーズ
#はじめに
AWS認定試験取得に向けてAWSの知識を整理するためのまとめです。
今回はAWS Codeシリーズについてまとめます。ソフトウェアやアプリを開発してリリースするまでは下記のような流れになると思われます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/718108/e7f5682c-c89f-dddf-277c-114d1fb7a665.png)
AWSで各工程のサービスと、この一連の流れ(CI環境)を実現できるのがCodeシリーズになります。# AWS Codeシリーズとは
AWSではコードシリーズと呼ばれる、下記の4つのサービスが提供されています。
AWS CodeCommit、AWS CodeBuild、AWS CodeDeploy、AWS CodePipeline
一つ一つ見ていきましょう。# AWS CodeCommit
ソースコードを管理するサービスです。
完全マネージド型なので、ソースコード管理サーバのバックアップやスケールなどを
気にすることなく利用
AWS利用して栃木県コロナデータのレポート出力を自動化する構成を考えてみた
## はじめに
栃木県のコロナのデータは以下サイトにデータの公開と可視化がされています.
しかし, データはいつ公開されているかはわからず比較的全体的な
データの可視化しかされていません.
そこで, コロナの感染状況のデータを自動的に取得してレポートとして公開する方法を考えましたので
ご覧いただけると幸いです.
※あくまでも, レポートとして公開することを目的としているので内容等の考察は行いません.また, 今回は栃木県のコロナデータをもとにノートブックアウトプット資料の自動化を行っていますが,
他の形式データでも応用可能なので栃木県のコロナの状況には興味のない人にも適応できる内容かな
と思います.※これはあくまでも個人で作成したものです.
## データセット
https://www.pref.tochigi.lg.jp/e04/welfare/hoken-eisei/kansen/hp/coronakensahasseijyoukyou.html上記, URLのExcelデータを使用しています.
## 使用技術
開発環境* macbook air (2020) in
【AWS】Terraformでアクセスを分散、WebサーバーをHTTPS化する その2(Route53)
## 概要
TerraformでAWSサービスを使用して、– 負荷分散
– 独自ドメインの設定
– SSL証明書を作成してHTTPS化上記の3つを含めた構成を作成する手順をまとめました。
## 目次
本記事は「2. Route53でDNS設定」について記述。
「1. ALBの作成」まではこちら → [【AWS】Terraformでアクセスを分散、WebサーバーをHTTPS化する その1(ALB) ](https://qiita.com/ramunauna/items/250d1dfc16468c5b8522)1. アプリケーションロードバランサー(ALB)の作成
– ALBの作成
– ターゲットグループの作成 / ターゲットの登録
– リスナーを設定
– ALBのDNS名からHTTPアクセス確認
1. Route53でDNS設定 __←本記事はここから__
– ドメインの取得(例はfreenomの無料ドメイン)
– ホストゾーンの作成
– DNSレコードの定義
– ネームサーバーの設定を加える
– 取得したドメインへHTTPアクセス確認
MENTAでインフラ/サーバー周りをコーチングしてもらったことを振り返る
## 背景
AWSのデプロイで詰まっていたところ、MENTAでお声掛け頂いてから8月の1ヶ月間MENTAにてメンターの@adachin0817にコーチングの下、インフラ周りの実装を行いました。その成果物としては以下のインフラ構成図の通り。
![Tamari-Baインフラ構成図_Qiita用](https://user-images.githubusercontent.com/69702983/130358185-61db1a10-eee2-4b77-8503-5583eaa2b27b.png)
具体的にはCircleCIによる自動デプロイ、EC2の本番環境、Dockerによる開発環境構築を行いました。
ちなみに今回はポートフォリオということもあり、AWSはコスト削減のためALBやRDSは利用していません。リポジトリ: https://github.com/Hiroto-Iizuka/Tamari-Ba
内容は以下に全てまとめているので是非ご覧いただければ幸いです。
#### アウトプット
– [【CircleCI】AWSにデプロイしたRails6アプリをCircleCI
API Gateway でLambda実行後、特定のページにリダイレクトする ②
#はじめに
前回の続きですが、題名の内容だけ知りたい方も参考になる書き方をします。前回の続きだと、⑧htmlから起動などのLambda実行後、htmlページにリダイレクトするよう設定します。
[APIGateway+Lambdaで、WebページからEC2の起動・停止・スペック変更を操作する①](https://qiita.com/holdout0521/items/f0cb3182bfb3785388a0)#事前準備
・Lambda作成
・ApiGateway作成
・S3などにhtmlを設置#やりたいこと
##初見の方用
`https:aaa.bbb.html`からLambdaを実行し(apiを叩き)、apiをリクエストしますが、レスポンス時`https:aaa.bbb.html`にリダイレクトさせます“`html:https//aaa.bbb.htmlページ
terraformでec2サーバーのキーペアを設定して起動する
# 概要
過去にterraformによりAWSのec2インスタンスを作成したhttps://qiita.com/kazato110tm/items/59d4a780d2262ab96aaa
しかし、これではssh接続の際のキーペアが設定されていないため、terraformでec2にキーペアを設定する方法をまとめる
terraformのためには認証キーの登録が必要なため別途以下で対応
https://qiita.com/kazato110tm/items/3a581f156f51fd257f76
# キーペアなしでEC2インスタンスを構築
## EC2を起動するEC2をterraformで起動するための最低限のスクリプトは以下の通り
リージョンとAMI, インスタンスタイプを`main.tf`に記載する
今回はAmazon Linuxを使用“`main.tf
provider “aws” {
region = “ap-northeast-1”
}resource “aws_instance” “default” {
ami = “ami-09
AWS SecretsManager motoを使用してpytest する方法
#secretsmanager motoを使用してのpytest
pytestをする必要があったので検索しましたがあまり日本語がなさそうな雰囲気。。。
別にmoto使用しなくても全てmockにしてしまってもいいけどね。
なんとなく知的好奇心が沸いたので試してみました。
なので記事にしてみました。##必要モジュール
boto3
moto
pytest##実装箇所
“`secrets_manager.py
import json
import boto3
import logging# log_level
logging.getLogger().setLevel(logging.INFO)class SecretsManagerClass:
def __init__(self, secret_name):
logging.info(secret_name)
self.secret_name = secret_namedef _open_boto_session(self):
return b
AWS(EC2 + RDS) でLaravel環境構築
![スクリーンショット 2021-08-21 11.04.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/620908/9d5b0f0f-ac4f-587f-c72e-f25e51314eec.png)
AWS EC2のインスタンス作成〜Laravelのマイグレーション実行までの備忘録です。実行環境
MACOS#EC2インスタンスの作成
##リージョン選択
画面右上のリージョンを選択します。今回は「東京リージョン」を選択します。
詳しい違いは以下のサイトが参考になりました。
https://www.t3a.jp/blog/infrastructure/aws-best-region/簡単にいうと、
スピード重視:東京、大阪
金額重視:バージニアなど
を選ぶとよいです。![スクリーンショット 2021-08-21 10.04.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/620908/292
[Python]ローカルPCからSSHトンネリングを行いDB接続する方法 メモ
* Pythonで踏み台サーバー経由でDB接続する方法についてメモする。
## 環境構成
* ローカルPCから踏み台サーバー(EC2)を経由し、DB(Aurora)に接続するようなケースを想定
![python_db_tunnel.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/586535/86c562fa-9e65-17fd-f7fb-ac715eab8e43.png)
## コード
* `conf/setting.conf`
* 踏み台サーバーとDBの接続情報を記述する。
“`conf
# 踏み台サーバー接続情報
[BASTION]
BASTION_HOST = YOUR_BASTION_HOST_IP
BASTION_PORT = 22
BASTION_HOST_KEY = None
BASTION_USERNAME = YOUR_BASTION_USERNAME
BASTION_PASSWORD = YOUR_BASTION_PASSWOR