問題一覧
1
IaC(Infrastructure as Code)とは?
アーキテクチャ構成をコードで管理し、コードを実行して作成する方法。同じような環境を複数構築することができる。必要な時にリソースを用意し、不要になったらすぐに破棄することができる。
2
なぜサブネットやルーティング設定をする際に、各サブネットに割り当てるIPv4CIDRブロックを検討しておくべき?
新規サブネット割り当てに必要なIPアドレスがいつのまにか枯渇していたり、拡張時にレンジが飛び飛びになってアドレスの管理負荷が高くなるケースがあるから。 Fargate上で稼働するコンテナは、コンテナごとにENIがアタッチされ、そのENIごとにIPアドレスが割り当てられるため、スケールアウト時のIPアドレス消費も考慮しておく必要がある。ある程度CIDRプロックに余力を持たせておくべき。
3
なぜAZ間で対称構造となるように各サービスを設計する?
単一AZ障害時でも耐えうる高可用な設計とするため
4
インターネットゲートウェイとは?
VPC内のリソースがインターネットと通信する際に必要となるネットワークリソース。VPCごとに1つだけ紐付けが可能。ルートテーブルやセキュリティグループの適切な設定をすると、通信可能になる。
5
ルートテーブルとは?
ネットワーク経路を設定するためのリソース。サブネットごとに経路を制御できる。新規のルートテーブルではVPC内リソース間の通信しか設定されていない
6
セキュリティグループとは?
VPC(Amazon Virtual Private Cloud:AWSの仮想ネットワーク)上に構築したAmazon EC2などのリソースに対して適用できる仮想ファイアウォール機能。セキュリティグループに関連付けられたリソースへのインバウンド・アウトバウンドのトラフィックを制御できる。
7
EnableDnsHostnamesとは?(cfn-vpc)
VPC 内のインスタンスがパブリック IP を持つときに、そのインスタンスにパブリック DNS ホスト名を自動でアタッチするかを制御する属性
8
enableDNSsupportとは?(cfn-vpc)
AWS Provided DNS が、 VPC 内インスタンスの名前解決をサポートするかを制御する属性
9
InstanceTenancyとは?(cfn-vpc)
インスタンスを立てるAWSのハードウェアを他のユーザと共有するか、専有するかを選ぶ。デフォルトは共有。 専有すると、以下のメリットがあるが、ホスト自体の料金がかかる。 ・オンプレで使用していたライセンスを持ち込める(※持ち込めないライセンスもある) ・セキュリティ面を考慮し、他のアカウントと同居しなくてよい
10
Fn::Select(cfn)とは?
配列から指定したインデックスの値を返す
11
Fn:GetAZsとは?(cfn)
指定されたリージョンで使用可能なアベイラビリティゾーン(以下、AZ)の配列を返す
12
MapPublicIpOnLaunchとは?
このサブネットで起動されたインスタンスが起動時にパブリック IP アドレスを設定するか
13
セキュリティグループのソースにセキュリティグループを設定する際は?
SecurityGroupのプロパティに設定するのではなく、SecurityGroupIngressとして、SecurityGroupとは別リソースとして外出しする。 理由は自分自身のセキュリティグループをソースに設定した際の自己参照を防いだり、お互い参照し合う形でソースをセキュリティグループにした際のデッドロックを防ぐため
14
Blitz.jsとは?
Railsにインスパイアされて作られたフルスタックReactフレームワーク。データベースからフロントエンドまで1つのアプリケーション内で完結。ルーティング、ディレクトリ構成、認証などのデフォルトの設定や規約が提供され、本質的な部分の開発に集中できる。
15
フレームワークとは?
ウェブサイトを速く、簡単に作るためのツールセットのこと。より速く、より安全に、より簡単にウェブサイトを作ることができる。
16
Reactとは?
Facebook が開発した JavaScript のライブラリ(部品集)で、ユーザーインターフェイス(UI)を作るのに特化したツール。 UI を簡単に作れる ・ウェブサイトの見た目(UI)をシンプルなコードで表現できる ・UIの作り方が分かりやすいので問題が起きてもすぐに直せる コンポーネントで部品化 ・UIをボタンやメニューなどの部品(コンポーネント)に分けて作る ・作ったコンポーネントは他のページでも繰り返し使える 仮想 DOM でサクサク動く ・「仮想 DOM」技術でページの表示を高速に切り替えられる ・ページの一部だけを更新できるので効率的
17
仮想DOMとは?
UI の変更をサクサク反映させるための仕組み。UI に変更があるとまず仮想 DOM に変更を加える。そして変更前後の仮想 DOM を比べて、変更が必要な部分だけを実際のウェブページ(実際の DOM)に反映させる。こうすることで、ページ全体を読み込み直すことなく、高速に表示を切り替えられる。
18
Next.jsとは?
React の機能を拡張したフレームワーク。サーバーサイドレンダリング(SSR)と静的サイト生成(SSG)という技術を使って、ウェブサイトの表示速度を高速化したり、検索エンジン対策(SEO)を強化したりできる。 表示が速い ・ページを表示する前にサーバー側で HTML を作る(SSR) ・ページの表示が高速になり SEO にも強くなる 事前に HTML を作れる ・ページを表示する前に HTML ファイルを作っておくこともできる(SSG) ・更新頻度の低いページ(ブログ記事など)の表示が超高速になる 簡単なページルーティング ・React ではページルーティング(ページ遷移)を実装するために追加のライブラリが必要だが Next.js ではページ間のリンクを自動で作ってくれる ・ページ間の移動がスムーズになる 必要なコードだけ読み込む ・各ページに必要なコードだけを読み込むので無駄がない CSS を簡単に書ける ・CSS を書くための便利な機能が用意されている バックエンドとの連携が楽 ・サーバーとのデータのやり取りを簡単に書ける ・サーバーとクライアントのコードを一つのプロジェクトで管理できる
19
サーバーサイドレンダリングとは?(SSR)
ページを表示する前に、サーバー側で HTML を作る技術。これにより、ページの表示が高速になり SEO にも強くなる。
20
静的サイト生成とは?(SSG)
ページを表示する前に、HTML ファイルを作っておく技術。更新頻度の低いページ(ブログ記事など)の表示が超高速になる。
21
git cloneとは?
既存のリポジトリをローカル環境(カレントディレクトリ)に複製するコマンド
22
git branchとは?
ローカルのブランチを確認するコマンド
23
git checkoutとは?
ブランチを切り替えるコマンド
24
リモートリポジトリとは?
専用のサーバに配置して複数人で共有するためのリポジトリ
25
npmとは?
Node.jsのパッケージを管理するシステム、いわゆるパッケージ管理システム
26
nvmとは?(NodeVersionManager)
ひとつのシステム内に 複数のバージョンの Node.js をインストールしておき、必要に応じてバージョンを切り替えて使えるようになる
27
yarnとは?
npmに代わるパッケージマネージャーであり、パッケージのインストール、アンインストール、更新、スクリプトの実行などを行うことができる
28
O\Rマッパーとは?
オブジェクト指向プログラミング言語におけるオブジェクトとリレーショナルデータベース(RDB)の間でデータ形式の相互変換を行うこと。そのための機能やソフトウェア。
29
sedコマンドとは?
Stream EDitorの略で、「sed スクリプトコマンド ファイル名」で、指定したファイルをコマンドに従って処理し、標準出力へ出力する。ファイル名を省略した場合は、標準入力からのデータを処理する。 例↓ $ echo '一郎くんおはようございます。' | sed 's/一郎/二郎/' 二郎くんおはようございます。
30
#!/bin/bashとは?
実行するシェルスクリプトのインタプリタを指定している。 記載することで、シェルスクリプトがbashを使用して実行されるようになる。
31
--queryとは?
AWS CLIで情報の取捨選択や加工に活用できる
32
シェルのwhile文とは?
while 文は始めに指定された条件式の終了ステータスを判定し、結果が真である場合のみループ処理を継続する。ループ毎に条件式を評価し真であれば処理を実行する。これを繰り返し、条件式が偽になった時点でループ処理を終了する。 while 条件式 do 処理 done
33
sleepコマンドとは?
指定した時間だけスクリプトの実行を停止する
34
aws ec2 describe-instancesとは?
awscliでリージョン内で稼働している全インスタンスの情報を取得するコマンド
35
aws ec2 modify-volumeとは?
ebsのボリュームサイズを変更するコマンド
36
aws ec2 describe-volumes-modificationsとは?
EBSボリュームの変更ステータスを確認するコマンド
37
readlinkコマンドとは?
シンボリックリンクのリンク先を確認できるコマンド。-f を付けると階層の途中にあるすべてのシンボリックリンクを解決して、絶対パスにしてくれる。
38
sudoとは?
あるユーザが他のユーザ、または他のグループの権限を用いて、プログラムなどを実行できるようにするコマンド
39
growpartとは?
EBSのパーティション拡張を行う時に使うコマンド
40
catコマンドとは?
ファイルの中身を確認するコマンド
41
cat /etc/os-releaseとは?
OSのバージョンを表示するコマンド
42
xfs_growfsとは?
マウントされたxfsファイルシステムのサイズを増加できるコマンド
43
resize2fsとは?
ext4ファイルシステムのサイズ変更を行うコマンド
44
shコマンドとは?
シェルスクリプトファイルを実行するコマンド
45
dfコマンドとは?
現在マウントされている各ファイルシステムごとにディスクの空き容量を表示するコマンド
46
Cloud9でのEC2の認証設定とは?
デフォルトではログインしたAWSユーザーの権限で自動的に認証権限が設定される仕組みがある
47
docker image buildコマンドを実行するとどうなる?
Dockerファイルの中で言語のビルドに必要なOSライブラリや言語のライブラリのダウンロードが行われ、その言語のアプリケーションのビルド処理が行われる。また、コンテナイメージサイズの最適化処理も行われる。ビルドが完了すると、作成されたその言語のバイナリはランタイム用の別のdockerベースイメージ上に追加され、実行可能な状態でコンテナイメージが作成される。
48
AWS CLIでECRにログインする時は?
aws ecr get-login-password を使う。aws ecr get-login-password コマンドはログイン用のパスワードのみが標準出力されます。 docker login コマンドは --password-stdin というオプションが利用可能でパスワードを標準入力から読み込ませることができます。 以下のように aws ecr get-login-passwordの結果を渡すことで、履歴やログにパスワードを残さず済む。
49
ECSonFargateの動作イメージとは?
①ECRにコンテナイメージを登録する ②ECSのコンテナ定義のアップデート ③ECSのコンテナ定義に従い、ECSがFargateにコンテナのデプロイを指示 ④Fargateがコンテナをデプロイする
50
Blue/Greenデプロイメントとは?
現状の本番環境(ブルー)とは別に新しい本番環境(グリーン)を構築した上で、ロードバランサーの接続先を切り替えるなどして新しい本番環境をリリースする運用方法のこと。新しい本番環境に切り替えて問題が生じた場合、すぐに現状の本番環境に切り戻せるのも利点の1つ。これもシステムの可用性向上につながる。
51
Blue/GreenデプロイメントをECSに組み込む際何ができる?
プロダクションリスナーの他にテストリスナーをALBへ設定できる。プロダクションリスナーに紐付くターゲットグループをBlueとして扱い、テストリスナーに紐付くターゲットグループをGreenとして扱う
52
アドオンとは?
ebブラウザーをより便利に使用するための機能のことで、Webブラウザーの検索機能の効率を上げたり、Webサイトの画面を保存したりするなど、さまざまな機能を追加することができる
53
ヘルスチェックパスとは?
ヘルスチェックのための接続試行やpingでの接続テストを行う先となるパス
54
コンテナタイムアウトとは?
タスク内に複数コンテナがあり起動に依存関係を持たせる際の待ち時間を指定する
55
CloudWatchContainerInsightsとは?
ECSタスクに関する詳細なメトリクスを取得できる。基本的なCPUやメモリ使用率以外に、ネットワーク使用率やコンテナ起動失敗情報等の有益な情報を取得できる
56
ローリングアップデートとは?
システム全体を同じ機能を持った複数のコンピュータで構成している場合によく用いられる方式で、システムの稼動状態を維持したまま一台ずつ順番に更新する。更新中の機材は運用を停止するが、他の機材でシステムの稼動状態を維持する。
57
カナリアリリースとは?
新バージョンのアプリケーションをリリースする際に、従来バージョンのアプリケーションを並行稼働させ、一部のユーザーだけを新バージョンにアクセスさせる展開(デプロイ)手法。最初は5%や10%といった少ない割合のリクエストだけを新バージョンのアプリケーションに振り分け、問題が起きないことを確認しながら段階的に割合を増やしていく。全リクエストを新バージョンのアプリケーションに振り分けるようになったら、従来バージョンのアプリケーションを削除する。
58
AWS Cloud Mapとは?
あらかじめ設定した自分の好きな名前で、あらゆるAWSリソースに対してアクセスできる。 Cloud Mapへの問い合わせ方式は、2種類。 ・DNSクエリ IPアドレスでアクセスできるリソースに対して付与 A,AAAA,SRV,CNAMEに対応 適用例)EC2、RDS ・APIコール AWSのARN(Amazon Resource Name)などでアクセスするリソースに対して付与 あらかじめ付与した任意の属性でクエリ、および値の取得が可能 適用例)Lambda、DynamoDB、SQS、Kinesisなどなど
59
サブネットグループとは?
AuroraDBクラスターをVPC内で動作させるための、VPC内で作成したサブネットをDBクラスター側から識別させるための関連付け
60
DBパラメータグループとは?
複数のDBサーバーに適用可能な設定を保存しておく場所で、設定情報は複数のパラメーターとそれに対応する値として保存される。 DB パラメーターグループを指定せずにDBサーバーを作成した場合、デフォルトのDBパラメーターグループが適用される。